معماری لامبدا برای پاسخگویی به تقاضای رو به رشد برای دسترسی به دادهها و تحلیل آنها بهصورت بلادرنگ طراحی شده است. این معماری با ترکیب پردازش دستهای و جریانی در یک چارچوب واحد، به سازمانها امکان میدهد تا حجم عظیمی از دادههای حساس به زمان را با سرعت و قابلیت اطمینان مدیریت کنند.
بررسی اجمالی
برای بسیاری از موارد استفاده پیشرفته در تحلیل دادهها و علوم داده امروزی، داشتن یک معماری ارائه داده که بتواند دادهها را برای پرسوجو لحظاتی پس از تولید آماده کند، بسیار حیاتی است. چه در مورد حجم عظیم دادههای حساس به زمان مربوط به رفتار مصرفکننده در یک وبسایت تجارت الکترونیک، تراکنشهای بانکی یا کارت اعتباری، معیارهای کنترل کیفیت، یا دادههای ردیابی لجستیک باشد، برخی موارد استفاده به دادههایی وابسته هستند که تاریخ انقضای بسیار کوتاهی دارند. اقدام سریع به سازمانها امکان میدهد تا از دادههایی که جمعآوری میکنند، بهطور کامل بهرهمند شوند. معماری لامبدا یک مدل استقرار محبوب با پیکربندی منحصربهفردی است که برای ارائه سریع این نوع دادهها طراحی شده است. در این مقاله، نحوه عملکرد آن و مزایا و معایب استفاده از این معماری داده بررسی خواهد شد.
معماری لامبدا چیست؟
معماری لامبدا یک مدل استقرار داده برای پردازش است که شامل یک خط لوله داده دستهای سنتی و یک خط لوله داده جریانی سریع برای مدیریت دادههای بلادرنگ است. علاوه بر لایههای دستهای و جریانی، معماری لامبدا شامل یک لایه ارائه خدمات داده برای پاسخ به پرسوجوهای کاربران نیز میشود. این رویکرد ترکیبی برای بهرهبرداری از حجم عظیمی از دادههایی که بهسرعت تولید میشوند طراحی شده است و به کسبوکارها امکان میدهد تا از دادهها سریعتر استفاده کنند.
معماری لامبدا چگونه کار میکند؟
معماری لامبدا پیچیده است. لایههای دوگانه آن بهصورت همزمان عمل میکنند تا دادهها را سریعتر از رویکرد سنتی پردازش دستهای در دسترس قرار دهند. در ادامه نحوه عملکرد آن توضیح داده شده است:
منابع داده
معماری لامبدا برای دسترسی سریع به دادههای بلادرنگ برای پرسوجو استفاده میشود. در این مدل ارائه داده، دادهها بهصورت مداوم از منابع مختلف به سیستم وارد میشوند. دادههای جدید بهطور همزمان به لایههای دستهای و جریانی ارسال میشوند.
لایه دستهای
در لایه دستهای، تمام دادههای ورودی بهعنوان نمایهای دستهای ذخیره میشوند تا برای نمایهسازی آماده شوند. این لایه دو هدف مهم را دنبال میکند. اول، مدیریت مجموعه داده اصلی که در آن دادهها غیرقابلتغییر و فقط قابل افزودن هستند، یک رکورد تاریخی قابلاعتماد از دادههای ورودی از تمام منابع را حفظ میکند. دوم، نمایهای دستهای را از پیش محاسبه میکند.
لایه ارائه خدمات داده
لایه ارائه خدمات داده، نمایهای دستهای را از لایه دستهای بر اساس یک برنامه زمانی از پیش تعیینشده دریافت میکند. این لایه همچنین نمایهای نزدیک به بلادرنگ را که از لایه جریانی وارد میشوند، دریافت میکند. در اینجا، نمایهای دستهای نمایهسازی میشوند تا برای پرسوجو در دسترس قرار گیرند. در حالی که یک کار نمایهسازی در حال اجرا است، لایه ارائه خدمات دادههای تازهوارد را برای گنجاندن در اجرای بعدی نمایهسازی در صف قرار میدهد.
لایه جریانی
لایه دستهای بهطور ذاتی تأخیر بالایی دارد و معمولاً نمایهای دستهای را یک یا دو بار در روز به لایه ارائه خدمات تحویل میدهد. وظیفه لایه جریانی کاهش فاصله زمانی بین تولید داده و در دسترس قرار گرفتن آن برای پرسوجو است. لایه جریانی این کار را با نمایهسازی تمام دادههای موجود در کار نمایهسازی کنونی لایه ارائه خدمات و همچنین تمام دادههایی که از زمان شروع آخرین کار نمایهسازی وارد شدهاند، انجام میدهد. پس از اتمام یک کار نمایهسازی توسط لایه ارائه خدمات، تمام دادههای شامل در آن کار دیگر در لایه جریانی موردنیاز نیستند و حذف میشوند.
پرسوجو
از آنجا که دادههای قابلپرسوجو در هر دو لایه ارائه خدمات و جریانی ذخیره میشوند، پرسوجوها باید به هر دو لایه ارسال شوند و نتایج قبل از ارائه به کاربران نهایی ادغام شوند.
مزایای ارائه خدمات داده در معماری لامبدا
معماری لامبدا با ترکیب قابلیتهای خط لوله دستهای سنتی و خط لوله جریانی بلادرنگ، بهترین ویژگیهای هر دو سیستم را ارائه میدهد.
مدیریت بدون سرور
معماری لامبدا یک سیستم بدون سرور است. این بدان معناست که نیازی به نصب، بهروزرسانی یا نگهداری نرمافزار سرور نیست. بهعنوان یک مزیت اضافی، حتی در صورت خرابی سیستم، خطر بروز خطا بسیار کم است. این به این دلیل است که لایه دستهای تمام دادههای تاریخی را با استفاده از ذخیرهسازی توزیعشده مقاوم در برابر خطا مدیریت میکند.
دسترسی به دادهها در زمان واقعی
پردازش دستهای سنتی برای پذیرش دادههای جریانی مانند دادههای تراکنشی طراحی نشده است. اما گنجاندن یک خط لوله داده جریانی سریع و لایه ارائه خدمات داده در لامبدا، امکان پرسوجوی دادهها را همزمان با تولید آنها فراهم میکند.
مقیاسپذیری
ماهیت توزیعشده معماری لامبدا به آن امکان میدهد تا بهطور خودکار با نیازهای کنونی کسبوکار مقیاسپذیر شود. ذخیرهسازی مبتنی بر ابر انعطافپذیر به منابع محاسباتی از پیش تعیینشده در تنظیمات سرور داخلی وابسته نیست.
معایب معماری لامبدا
معماری لامبدا روشی خلاقانه برای دسترسی به دادههای بلادرنگ و نزدیک به بلادرنگ است، اما محدودیتهایی نیز دارد.
تکرار منطق
پشتیبانی از دو پایگاه کد جداگانه برای لایههای دستهای و جریانی نیازمند زمان و منابع اضافی برای نگهداری است. استفاده از دو لایه متمایز میتواند نگهداری مداوم را پیچیده و زمانبر کرده و تلاشهای اشکالزدایی را پیچیدهتر کند.
ناکارآمدیهای پردازش دستهای
برای برخی موارد استفاده، نیاز به پردازش مجدد هر چرخه دستهای بسیار ناکارآمد است. اجرای یک لایه دستهای و جریانی موازی نیازمند اختصاص زمان و منابع محاسباتی اضافی است.
پیچیدگی
معماری لامبدا به اجزای متعددی وابسته است. پیچیدگی اجرای این مدل ارائه داده چالشهای متعددی را به همراه دارد. با وجود اجزای متعدد که هر کدام نرمافزار متفاوتی را اجرا میکنند، بارهای نگهداری بالا هستند. نیازهای پردازشی سنگین شامل کدنویسی پیچیده است، در حالی که دادههای مدلشده با استفاده از این معماری نیازمند تلاش گسترده برای سازماندهی مجدد یا مهاجرت است.
