پردازش بلادرنگ و پردازش جریان

رویکرد نگاشت کاهش (MapReduce) از آغاز کار خود برای پردازش داده ها با مقیاس بزرگ به صورت آسان و کارامد طراحی شده است. اما با این وجود نگاشت کاهش برای پردازش دسته ای (Batch Processing) کلان داده ها استفاده می شود. از طرفی تقاضاهای امروزی در برگیرنده پردازش بلادرنگ (Real Time) و برخط (Online) داده ها است، پس اگر هدوپ تنها شامل رویکرد نگاشت کاهش باشد، دیگر پاسخ گوی اینگونه تقاضاها نیست، بنابراین در نسخه ۲ به بعد هدوپ، ویژگی ها و قابلیت هایی برای پشتیبانی از پردازش بلادرنگ اضافه شده است.

چارچوب نگاشت کاهش با توجه به اینکه برای پردازش دسته ای کلان داده ها مناسب و کارآمد است ولی چون پردازش چندین دقیقه یا حتی چندین ساعت زمان می برد، بنابراین دیگر نمی توان در پردازش های بلادرنگ که می بایست در طول یک زمان مشخص (بر حسب ثانیه) صورت گیرد، از چارچوب نگاشت کاهش استفاده کرد. از این رو دو رویکرد پردازش بلادرنگ و پردازش جریان (Stream Processing) در مقابل پردازش دسته ای وجود دارد.

چارچوب نگاشت کاهش با توجه به اینکه برای پردازش دسته ای کلان داده ها مناسب و کارآمد است ولی چون پردازش چندین دقیقه یا حتی چندین ساعت زمان می برد، بنابراین دیگر نمی توان در پردازش های بلادرنگ که می بایست در طول یک زمان مشخص (بر حسب ثانیه) صورت گیرد، از چارچوب نگاشت کاهش استفاده کرد. از این رو دو رویکرد پردازش بلادرنگ و پردازش جریان (Stream Processing) در مقابل پردازش دسته ای وجود دارد.

یک مثال برای پردازش بلادرنگ، پرس و جو (Query) بر روی کلان داده ها است که در آن می بایست کاربر نتیجه پرس و جو در زمانی در حد چندین ثانیه دریافت کند. در واقع نتیجه زمانی برای یک واکنش مفید خواهد بود که در یک زمان تعیین شده و در حد چندین ثانیه حاصل شود. اصولا هدف از پردازش های بلادرنگ برای این است که راهکارهایی را فراهم کنیم تا بتوان کلان داده ها را بسیار سریع پردازش کنیم.

پردازش جریان با این مسئله سر و کار دارد که پردازش به صورت برخط (Online) و بدون نیاز به ذخیره سازی داده، بر روی داده هایی که در جریان هستند صورت گیرد. از جمله موارد پردازش جریان می توان به یادگیری ماشین (Machine Learning) و محاسبات مستمر (Continuous Computation) اشاره کرد.

دوره یادگیری ماشین با پایتون و کتابخانه Scikit-Learn

برخی از کاربرد های کلان داده ها برای افزایش عملکرد سرویس، عملیات یا برای افزایش سود، نیاز دارند تا تصمیم سازی ها (Decision Making) را به صورت بلادرنگ انجام دهند. به طور مثال می توان به مواردی همچون سیستم ترابری هوشمند (Intelligent Transportation) ، معامله و نظارت بازار مالی (Financial Market) ، کاربردهای نظامی (Military) ، مراقبت از سلامت (Healthcare) و شبکه هوشمند (Smart Grid) اشاره کرد.

در این گونه از کاربردها برای آنکه انجام تحلیل ها منجر به تصمیم های قوی شود، نیاز دارند تا به انبوهی از داده های فعلی و سابقه ای از داده ها سر و کار داشته باشیم. کند و به موقع نبودن جمع آوری و تحلیل داده ها، منجر به تصمیم های با تاخیر می شود که به نوبه خود باعث کاهش عملکرد می شود.