معماری های بنیادین جریان داده ها: Lambda و Kappa
مقدمه
تو این مقاله از سری مقالات فنیِ مجله آنلاین مدرسه علم داده و بیگ دیتا، قرار هست با هم با معماری های بنیادین داده ها یعنی Lambda و Kappa آشنا بشیم.
تولید سرسام آور داده ها در عصر حاضر، نیاز به پایش لحظه ای اطلاعات در کنار ذخیره آنها برای تسک های تحلیلی، ما را به سمت ساختاری سوق می دهد که بتواند هر دو مورد از این نیازمندی یعنی پردازش جریان لحظه ای داده و فاقد تاخیر وپردازش های کلان را پاسخگو باشد. برنامههایی که در حوزه کلانداده یا همان Big Data توسعه مییابند نیاز دارند تا از الگوهایی تبعیت نمایند که امکان پردازش لحظهای حجم زیادی از دادهها را داشته باشند. معماری داده از جمله مسائل مهم در سیستم های تحلیل کلان داده ها تلقی می شود که در صورت عدم طراحی صحیح می تواند صدمات جبران ناپذیری به کسب و کار وارد کند. باید توجه داشت که انتخاب معماری نرمافزاری منطقی و درست، فَرای دانش علمی، در اکثر اوقات بر اساس تجربه شخصی و تیم و آزمون و خطا شکل میگیرد و گاها از چند الگوی معروف معماری نرمافزاری به صورت ترکیبی استفاده می شود و ممکن است از هیچکدام از الگوها به صورت مستقیم استفاده نشود.
یکی از مهمترین چالشهایی است که کسبوکارهای داده محور با آن دست و پنجه نرم می کنند، عدم داشتن استراتژی صحیح به منظور پیاده سازی معماری فضای مدیریت داده در سازمان های مقیاس وسیع تلقی می شود.
آشنایی با معماری Lambda Architecture
توییتر مثال خوبی از معماری لامبدا است. در این معماری، جریان دادهای از بالا به پایین سرازیر میشود و دادههای جریانی واردشونده به سیستم بهمنظور تغذیه دولایه دسته و سرعت مورد استفاده قرار میگیرند. هدف از ارائه این معماری که توسط Nathan Marz از متخصصین داده شرکت توئیتر مطرح شده ارائه یک چارچوب معماری برای پاسخگویی به انواع مختلف دادهها، قابلیت مقیاسپذیری افقی و مدیریت خطا است.
Lambda Architecture از سه لایه مختلف تشکیل شده است:
- لایه پردازش انبوه یا Batch
- لایه سرعت بخشی یا Speed
- لایه سرویس دهی یا Serving
لایه دسته یا Batch
این لایه وظیفه بسته به نیاز کاربربه صورت موردی ویا در زمان های مشخص اقدام به پردازش انبوه داده های ذخیره شده کرده و نتایج مورد نظر کاربر را تولید می کند و وظیفه انباشت اطلاعات را به عهده دارد. تکنولوژیهایی مانند Hadoop و Hive در این لایه مورد استفاده قرار میگیرند که قابلیت مقیاس پذیری افقی را نیز دارد. مثال: استخراج آمار روزانه خرید یک دوره آموزشی
لایه سرعت بخشی یا Speed
این لایه مجموعه پردازشهای مبتنی بر ماشین لرنینگ یا تحلیل های لحظه ای را پشتیبانی میکند. مثال: محاسبه آمار لحظه ای یک وب سایت، پیشنهاد در لحظه یک محتوای مرتبط با پست آموزشی به کاربر بر اساس سوابق مطالعاتی وی،
لایه سرویس دهی یا Serving
این لایه پرس و جوهای لازمه را برای استخراج اطلاعات بر عهده دارد و با دو لایه قبلی در ارتباط خواهد بود. ارتباط با ابزارهای هوش تجاری و داشبوردینگ نظیر Power BI در این لایه صورت می گیرد.داده هایی که در دولایه پردازش سریع و پردازش زمانمند قبلاً ذخیره شده اند، توسط سرویسهایی که در این لایه ایجاد میشوند، در اختیار کاربران مختلف که هرکدام قالب و شکل خاصی از داده ها و گزارشات را نیاز دارند، قرار میگیرد.
این سه لایه، حداقل نیازمندی هایی است که یک سامانه پردازش اطلاعات باید داشته باشد.
مزایای استفاده از معماری Lambda
- حذف بخش مدیریت سرور و نصب و پشتیبانی نرم افزارهای مختلف
- مقیاس پذیری منعطف
- دسترسی پذیری حداکثری خودکار
- چابکی کسب و کار به لطف پاسخ در لحظه نسبت به سناریوهای مختلف سازمان
چالش های استفاده از معماری Lambda
- پیچیدگی بالا: نیاز به مدیریت هر دو لایه دسته ای و جریانی که همین امر، خطایابی را دشوار می کند.
- نیاز به پردازش مجدد سیکل های دسته ای
این چالشها باعث شده است تا معماریهای دیگری نظیر معماری Kappa مطرح شوند که در آن لایه Batch عملا حذف می شود و با استفاده از Messaging Services، که فرآیند دریافت اطلاعات را بصورت همزمان انجام داده و سپس با پردازش آنها، دادههای پالایش شده را به لایه سرویس دهی یا Serving ارسال کند.
معماری Kappa
در این معماری برای ساده تر شدن مدیریت سامانه، تمام پردازشها در لایه پردازش سریع انجام میگیرد و هرکاری که قرار است روی داده ورودی انجام شود، به صورت آنی صورت خواهد پذیرفت.
چهار اصل معماری Kappa عبارتند از:
- هرچیزی، یک Stream است.
- داده ها به صورت Stable ذخیره میشوند
- یک چارچوب برای پردازش کافی است
- عملیات پردازش داده تکرار پذیر است
پس نتیجه می گیریم معماری Kappa بیشتر برای برنامه هایی مناسب است که منطق سازمانی حاکم بر آنها کاملاً مشخص و تقریباً بدون تغییر است. باید توجه داشت معماری Kappa شکل خلاصه شده ای از معماری لامبدا است. در صورتی که قصد راه اندازی پلتفرم آمایش و تحلیل شبکه های اجتماعی را دارید، این معماری پیشنهاد می شود.
مثال: بررسی وضعیت سرورهای سازمان
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.