جداسازی لایه OLTP و OLAP با موتور کافکا
آپاچی کافکا یک پلتفرم اپن سورس برای ساخت اپلیکیشنها و خطوط لوله ارسال داده به روش بلادرنگ است. شرکتهای متعددی از این پلتفرم در ارسال دادهها و محصولات آنالیزگر خود استفاده میکنند. کافکا به منظور جریان فعالیت و فیدِ اخبار در لینکدین توسعه داده شد، اما بعداً برای برای استفاده عمومی اپن سورس شد. این مطلب خلاصهای از چگونگی پردازش بلادرنگ دادهها با کافکا را توضیح میدهد.
برای شروع، لازم است بدانیم که کافکا یک پلتفرم جریان (استریم) رویداد است.
جریان رویداد چیست؟
توانایی ضبط/پردازش دادهها به شیوه بلادرنگ از طریق دستگاهها و اپلیکیشنهای متعدد IoT (اینترنت اشیاء) را جریان رویداد مینامند.
کافکا برای جریان رویداد، سه قابلیت کلیدی را ترکیب میکند:
- انتشار (نوشتن) و اشتراک (خواندن) جریان رویدادها، از جمله ورود/خروج مداوم دادههای خود از سیستمهای دیگر.
- ذخیره جریان رویدادها به صورت دائمی و با اطمینان پذیری بالا تا هر مدتی که بخواهید.
- پردازش جریانی از رویدادها، همانطور که رخ میدهند یا به صورت گذشتهنگر.
برای سادهتر کردن توضیح کاری که کافکا انجام میدهد، بیایید تصور کنیم که شما در حال تماشای یک مسابقه کریکت در یک پلتفرم پخش ورزشی مانند Hotstar هستید. به عنوان یک بیننده، شما در طول پخش زنده مسابقه، آمار زنده و سایر اینفوگرافیها مانند چت رسانههای اجتماعی، بازیها، تبلیغات و نکات مهم را مشاهده میکنید.

شما تمام اطلاعات را از Hotstar دریافت میکنید. این شبکه تمام کارهای میانی را انجام میدهد. شما از نحوه دریافت اطلاعات، از الف تا ی، راضی هستید. همه اینها به واسطه کافکا امکانپذیر است. Hotstar با ارائه ویدئوی زنده به شما، ذخیره دادهها و پردازش دادههای زنده به طور همزمان، برای ارائه آمار و سایر نکات مهم که حتی پس از پایان مسابقه در دسترس باقی میمانند، از تمام قابلیتهایی که در بالا ذکر شد استفاده میکند.
چگونه همه اینها اتفاق میافتد؟
برای درک این موضوع، بیایید روی Hotstar زوم کنیم. اما قبل از آن، اجازه دهید این ویدئو را تماشا کنیم تا سیستمهای OLTP و OLAP را بشناسیم و تفاوتهای آنها را درک کنیم.
حال اجازه دهید به جریان ساده سازی شده زیر نگاهی بیندازیم:

لایه OLTP یک فید زنده و لایه OLAP آمار و دادههای دیگر را در اختیار شما قرار میدهد. نکته قابل توجه این است که همه اینها به شیوه بلادرنگ اتفاق میافتد. تغذیه (فید) ویدئوی زنده یک چیز و تغذیه دادههای زنده یک چیز دیگر است. پردازش دادههای عظیم زمانبر است و همه اینها نمیتواند در چند ثانیه اتفاق بیفتد. پس چه اتفاقی میافتد؟ با به مشکلی نگاه میکنیم که شامل اعمال الگوریتمها برای حجم عظیمی از دادهها است. این دادهها میتوانند یک فایل یک سطحی، یک پیام چت یا یک فایل ویدئویی باشند.
پس این فرآیند چگونه به صورت بلادرنگ رخ میدهد؟

وقتی دادهها وارد انبار میشوند، کافکا مانند یک اتوبوس عمل میکند که پیام را به سیستمهای مختلف میرساند. فرآیندی به نام Kafka Connect برای کپی کردن دادهها در خوشه کافکا و ارسال آن به منابع دیگر تعبیه شده است. تولیدکننده Kafka Connect، زمانی که داده جدید وارد خوشه کافکا شود، داده را (در بستههای کوچک با مقیاس کیلوبایت) ارسال میکند. Kafka Connect Sink نیز در فعالیتی مشابه، زمانه که دادهها به خوشه کافکا برسند، آنها را به سیستمهای OLTP و OLAP ارسال میکند.
فرآیندی که Sink انجام میدهد تنها شامل ارسال دادههای لازم و مربوطه به لایه OLTP و OLAP است. حال پرسشی که باقی میماند در مورد آماری است که فرد در این پلتفرم میبیند.
این کار به دو صورت انجام میشود: بلادرنگ و تاریخی.
بلادرنگ
پردازش بلادرنگ دادهها را میتوان با استفاده از سرویسی به نام Kafka Stream انجام داد. نیازی نیست که همه دادهها به صورت بلادرنگ پردازش شوند. جریان کافکا را میتوان برای جمعآوری دادههای مهم و اجرای الگوریتمها و پرسوجوهای پیشنهادی تنظیم کرد. جریانها دادهها را مستقیماً از خوشه میکشند.
تاریخی
همچنین، تمام دادهها میتوانند به یک دیتابیس جداگانه برای اجرای مجموعه پیچیدهای از اعمال هوش مصنوعی، یادگیری ماشین و پرسوجوهای تحلیلی ارسال شوند. سپس میتوان آنها را در قالب داشبورد یا آمار، پردازش نمود و یا به تصویر کشید.لطفا توجه داشته باشید که تنها کپی دادهها است که به صورت بلادرنگ انجام میشود. پردازش برای تعیین نتایج، فاکتورها و پیشبینیها زمان میبرد. دادههای بلادرنگ فقط زیرمجموعهای از این دادهها را پردازش میکنند.
موتور کافکایی که در بالا توضیح دادیم را میتوان با نصب کافکا در هر سیستمی تکرار کرد. کافکا در همه سیستمها، چه در فضای داخلی و چه در فضای ابری باشد، منبع باز است. همچنین فرمی از آن در کلودهای معروف مانند Google Cloud Platform، Azure و AWS وجود دارد.
پینوشت:
جریانهای فوق نسخههای بسیار ساده شده موتور کافکا و پلتفرمهای جریان داده به صورت بلادرنگ هستند. ولی ممکن است یک جریان بلادرنگ نباشد و از کافکا استفاده کند.
منبع: مدیوم نویسنده: Kshitij Gaikar
Leave feedback about this