دادههای جریانی دادههایی هستند که پیوسته و با حجم بالا منتشر میشوند و هدف از آنها کاهش تاخیر در پردازش است. سازمانها دارای هزاران منبع داده هستند که معمولاً بهطور همزمان پیامها، رکوردها یا دادههایی با اندازههای متفاوت از چند بایت تا چند مگابایت را منتشر میکنند. دادههای جریانی شامل دادههای موقعیت، رویداد و حسگری هستند که شرکتها برای تحلیل بی درنگ و بررسی جنبههای مختلف کسبوکار خود از آنها استفاده میکنند. مثلا، شرکتها میتوانند با تحلیل مداوم دادههای دریافتی از کلیک ها و پستهای مشتریان، احساسات عمومی نسبت به برندها و محصولات خود را دنبال کرده و سریعا به آن ها پاسخ دهند.
ویژگیهای دادههای جریانی
جریان داده دارای ویژگیهای خاصی است:
اهمیت زمانی
عناصر یک جریان داده حاوی زمانسنجی هستند. اهمیت جریان داده هم ممکن است پس از طی یک بازه زمانی خاص کمرنگ شود. مثلا، بر اساس موقعیت فعلی کاربر، برنامه پیشنهاد رستوران میدهد. باید بر اساس دادههای جغرافیایی کاربر بی درنگ وارد عمل شد تا دادهها اهمیت خود را از دست ندهند.
تداوم جریان
یک جریان داده آغاز و پایان مشخصی ندارد. این جریان تا وقتی لازم است، دادهها را جمع میکند. مثلا، لاگهای فعالیت سرور، تا زمانی که سرور مشغول کار است، جمعآوری میشوند.
منحصر به فرد
انتقال مجدد یک جریان داده بهدلیل حساسیت زمانی دشوار است. بنابراین، پردازش دقیق دادههای بی درنگ مسئله بسیار مهمی است. متأسفانه، امکان ارسال مجدد در بیشتر منابع دادههای جریانی محدود است.
ناهمگن
برخی منابع ممکن است دادهها را در فرمتهای مختلفی مانند JSON، Avro و مقادیر جداشده با کاما (CSV) با دادههایی از جمله رشتهها، اعداد، تاریخها و انواع باینری، استریم کنند. سیستمهای پردازش جریان باید قابلیتهای لازم برای مدیریت چنین تنوع دادهای را داشته باشند.
ناقص
خطاهای موقتی ممکن است منجر عناصر آسیبدیده یا گمشده در دادههای جریانی به وجود آورند. بهدلیل ماهیت پیوسته جریان، تضمین ثبات دادهها میتواند چالشبرانگیز باشد. سیستمهای پردازش و تحلیل جریان معمولاً شامل منطق اعتبارسنجی دادهها برای کاهش یا به حداقل رساندن این خطاها هستند.
اهمیت داده های جریانی
سیستمهای پردازش داده قدیمی، دادهها را در یک پایگاه داده مرکزی جمعآوری کرده و آنها را بهصورت گروهی یا دستهای پردازش میکنند. این سیستمها از پیش برای جذب و ساختاردهی دادهها طراحی شده اند. با این حال، در سالهای اخیر، ماهیت دادههای سازمانی و سیستمهای پردازش آن ها تغییر زیادی کرده است.
حجم داده نامحدود
حجم دادههای تولید شده از منابع جریانی میتواند بسیار کلان باشد. نتیجه، چالشهای حفظ یکپارچگی دادههای جریانی (اعتبارسنجی)، ساختار (تکامل) یا سرعت (توان عملیاتی و تأخیر) در تحلیل های بی درنگ است.
سیستمهای پیشرفته پردازش داده
مقیاس پذیری بالا و استفاده از منابع محاسباتی از خدمات زیرساخت های ابری هستند. ما دقیقاً آنچه را که نیاز داریم استفاده میکنیم و تنها برای آنچه که استفاده میکنیم، هزینه پرداخت میکنیم. گزینههای فیلتر کردن یا جمع بندی آنی قبل و بعد از ذخیره دادههای جریانی وجود دارند. ساختار دادههای جریانی در صورت نیاز از فناوریهای ابری برای مصرف، غنیسازی، تحلیل و ذخیرهسازی دائمی دادههای جریانی استفاده میکند.
موارد استفاده از دادههای جریانی
یک سیستم پردازش جریانی در اکثر مواردی که دادههای جدید و متغیر تولید میشوند، کاربردی است که این شرایط شامل اکثر بخشهای صنعتی و موارد استفاده از دادههای کلان می شود.
شرکتها معمولاً با برنامههای سادهای مانند جمعآوری لاگهای سیستم و پردازش ابتدایی مانند محاسبات حداقل و حداکثر شروع میکنند. سپس این برنامهها به پردازشهایی نزدیک تر به پردازش بی درنگ تبدیل می شوند.
چند نمونه دیگر از دادههای جریانی:
تحلیل داده
برنامهها، جریانهای داده را پردازش میکنند تا با تولید گزارش، پاسخ مناسب به شرایط دهند، مثل صدور هشدارها زمانی که معیارهای کلیدی از آستانه خاصی فراتر میروند. برنامههای پیشرفتهتر پردازش جریان، با استفاده از الگوریتمهای یادگیری ماشین، دیدگاه های عمیقتری از فعالیتهای تجاری و کاربران ارائه می دهند.
برنامههای IoT
دستگاههای اینترنت اشیا (IoT) مورد دیگری از استفاده از دادههای جریانی هستند. حسگرها در وسایل نقلیه، تجهیزات صنعتی و ماشینآلات کشاورزی دادهها را به یک برنامه جریانی ارسال میکنند. این برنامه بر عملکرد نظارت کرده، نقصهای احتمالی را پیشبینی می کند، سفارش قطعات یدکی را خودکار ثبت میکند و از خرابی تجهیزات جلوگیری میکند.
تحلیل مالی
مؤسسات مالی از دادههای جریانی برای ردیابی تغییرات بی درنگ در بازار سهام، محاسبه ارزش در معرض خطر و متعادل کردن خودکار سبدها بر اساس نوسانات قیمت سهام استفاده میکنند. یک مورد استفاده مالی دیگر، تشخیص تقلب در تراکنشهای کارت اعتباری با استفاده از نتیجه گیری بی درنگ بر اساس دادههای جریانی تراکنشها است.
پیشنهادات بی درنگ
برنامههای املاک و مستغلات، دادههای جغرافیایی را از دستگاههای موبایل کاربران ردیابی کرده و پیشنهادات بی درنگی از املاک موجود ارائه میدهند. برنامههای تبلیغاتی، غذایی، خردهفروشی و مصرفی هم میتوانند از پیشنهادات بی درنگ برای رضایت بیشتر مشتری را در کار خود استفاده کنند.
ضمانت خدمات
پردازش جریان داده برای ردیابی و حفظ سطح خدمات در برنامهها و تجهیزات پیادهسازی می شود. مثلا، یک شرکت انرژی خورشیدی باید یا توان عملیاتی خاصی را به مشتریان خود عرضه کند و یا جریمه شود. این شرکت یک برنامه داده جریانی اجرا میکند که با نظارت تمام پنل ها، خدمات بی درنگ برنامهریزی میکند. به این ترتیب، میتواند درصد توان عملیاتی پایین هر پنل و در نتیجه پرداخت جریمه را به حداقل برساند.
رسانه و بازی
ناشران رسانهای، میلیاردها رکورد کلیک را از داده های آنلاین خود جریانی میکنند، آن ها را با اطلاعات جمعیتی کاربران جمع بندی و محتوا را بهینهسازی میکنند. این مسئله به ناشران کمک میکند تا تجربهای بهتر و مرتبطتر به مخاطبان خود ارائه دهند. شرکتهای بازی آنلاین هم از پردازش رویدادهای جریانی برای تحلیل تعاملات بازیکن-بازی استفاده کرده و تجربیات جذابی برای بازیکنان فراهم می کنند.
کنترل ریسک
پلتفرمهای زنده و اجتماعی دادههای رفتار کاربر را بی درنگ برای کنترل ریسک فعالیتهای مالی کاربران مثل شارژ، بازپرداخت و جوایز ضبط میکنند و برای انعطاف در تنظیم استراتژی های ریسک، داشبوردهای بیدرنگ را بررسی می کنند.
تفاوت بین دادههای دستهای و دادههای جریانی
پردازش دستهای روش مورد استفاده رایانهها برای تکمیل دورهای مشاغل داده-محور تکراری و با حجم بالا است و می توان از آن برای بررسی پرسشهای دلخواه در مجموعههای مختلف داده استفاده کرد. این روش معمولاً نتایج را از تمام دادهها استخراج کرده و کلان دادهها را تحلیل میکند. سیستمهای مبتنی بر MapReduce، نمونههایی از پلتفرمهایی هستند که از پردازش دستهای استفاده میکنند.
در مقابل، پردازش جریانی نیاز به یک توالی داده و بهروزرسانی تدریجی معیارها، گزارشها و آمار خلاصه در پاسخ به هر داده ورودی دارد. این روش برای تحلیلهای بی درنگ و پاسخدهی مناسبتر است.
پردازش دستهای | پردازش جریانی | |
دامنه داده | پرسشها یا پردازش روی تمام یا اکثر دادهها در مجموعه داده | پرسشها یا پردازش روی دادهها در یک پنجره زمانی متحرک یا فقط روی آخرین رکورد داده |
اندازه داده | دستههای بزرگ داده | رکوردهای جداگانه یا میکرودستههایی که شامل چند رکورد هستند |
عملکرد | تأخیر در حد دقیقه تا ساعت | نیاز به تأخیر در حد ثانیه یا میلیثانیه |
تحلیل | تحلیلهای پیچیده | پاسخدهی ساده، جمع بندی ها و معیارهای متحرک |
بسیاری از سازمانها در حال تولید یک مدل ترکیبی از دو رویکرد برای حفظ یک لایه بیدرنگ و یک لایه دستهای هستند. میتوان ابتدا دادهها را در یک پلتفرم داده جریانی پردازش کرد تا دیدگاه های بیدرنگ به دست آیند و سپس آنها در یک ذخیرهسازی که در آن امکان تغییر شکل به انواع پردازش دستهای و بارگذاری وجود دارد، حفظ کرد.
چگونه میتوان دادههای جریانی را پردازش کرد؟
ساختار دادههای جریانی دو مؤلفه اصلی دارد:
تولیدکنندگان جریان
تولیدکنندگان جریان، داده ها را در برنامهها و سیستمهای IoT جمع میکنند. آنها رکوردهایی شامل نام جریان، مقدار داده و شماره توالی به پردازشگر جریان ارسال میکنند. پردازشگر یا دادههای رکوردها را بر اساس نام جریان بافر میکند یا آن ها را موقتاً دستهبندی میکند. این پردازشگر از شماره توالی برای پیگیری موقعیت هر رکورد و پردازش زمانی دادهها استفاده میکند.
مصرف کنندگان جریان
مصرف کنندگان جریان مؤلفههای نرمافزاری هستند که دادههای جریانی بافر شده در پردازشگر را پردازش و تحلیل میکنند. هر مصرفکننده قابلیتهای تحلیلی مانند همبستگی، جمعبندی، فیلترکردن، نمونهگیری یا یادگیری ماشین دارد. هر جریان میتواند چند مصرفکننده داشته باشد و هر مصرفکننده هم میتواند چند جریان را پردازش کند. مصرفکنندگان همچنین میتوانند دادههای تغییریافته را به پردازشگر ارسال کنند تا جریانهای جدیدی برای سایرین ایجاد کنند.
اجرای ساختار
برای اجرای ساختار دادههای جریانی، نیاز به لایههای ذخیرهسازی و پردازش است. لایه ذخیرهسازی باید از ترتیب رکوردها و ثبات قوی پشتیبانی کند تا خواندن و نوشتن سریع، کمهزینه و قابلپخش مجدد از جریانهای داده کلان امکانپذیر باشد. لایه پردازش مسئول مصرف دادهها از لایه ذخیرهسازی، انجام محاسبات روی آن دادهها و سپس اطلاعرسانی به لایه ذخیرهسازی برای حذف دادههای بیفایده است.
چالشها در کار با دادههای جریانی چیست؟
ساختار دادههای جریانی بهدلیل ماهیت و حجم دادهها اهمیت خاصی دارد.
دسترسپذیری
برنامههای داده جریانی نیازمند ثبات، تأخیر کم و دسترسپذیری بالا هستند. مصرفکنندگان دائم دادههای جدیدی را از جریان برای پردازش دریافت میکنند. تأخیر از سمت تولیدکننده میتواند سیستم را دچار مشکل کرده و منجر به خطا شود.
مقیاسپذیری
جریانهای داده خام میتوانند ناگهانی و سریع افزایش یابند. مثلا، پستهای رسانههای اجتماعی در یک رویداد ورزشی بزرگ بهطور چشمگیری اضافه میشوند؛ بنابراین، سیستم باید حتی در زمان اوج بار اولویت را به ترتیب صحیح دادهها، دسترسپذیری و ثبات بدهد.
دوام
به دلیل حساسیت زمانی دادهها، سیستم پردازش جریان باید نسبت به خطا مقاوم باشد. در غیر این صورت، دادهها در یک قطعی یا خرابی برای همیشه از بین خواهند رفت.