پردازش جریان داده‌ها (Data Stream Processing) چیست؟

مدرس: مسعود کاویانی

بسیاری از الگوریتم‌های داده‌کاوی و یادگیری ماشین، برای این طراحی شده‌اند تا با مجموعه‌ای از داده‌های موجود یا همان data setها کار کنند. فرض در الگوریتم‌های مرسوم داده‌کاوی و یادگیری ماشین این است که هر مجموعه داده ما، هر موقع که ما خواستیم در اختیار ما قرار می‌گیرد. مثلا یک مجموعه داده می‌تواند بر روی دسک سخت (Hard Disk) ذخیره گردد و در هنگام نیاز به حافظه موقت (RAM) آورده شده و از آن استفاده شود. ولی یک سری از داده‌ها به این صورت همیشه در اختیار ما نیستند.

برخی از داده‌ها به سرعت میآیند و می‌روند. به این معنی که اگر آن‌ها را در هنگام رسیدن پردازش نکنیم از دست رفته و دیگر نمی‌توان آن‌ها را برای کارهایی مانند محاسبات فراخوانی کرد. در واقع داده‌هایی که باید به محض دریافت سریعا پردازش شوند و اگر این کار انجام نشود، این داده‌ها از دست خواهند رفت. این گونه داده‌ها به دلیل سرعت تولید بسیار بالا و به طبع آن حجم زیادشان، قادر به ذخیره سازی در پایگاه داده‌ها نیستند و نمی‌توان آن‌ها را به صورت یک data set بر روی دیسک سخت (Hard Dist) ذخیره کرد.

یک نکته را در پردازش جریان داده‌ها به یاد داشته باشید. در الگوریتم‌های جریان داده‌ها، سعی بر این است که داده‌ها خلاصه یا همان Summarize شوند. در واقع می‌خواهیم خلاصه‌ای از داده‌ها را داشته باشیم تا به وسیله این خلاصه بتوانیم تصمیمات درست (یا نزدیک به درست) را انتخاب کنیم.

برای این‌که میتوجه شوید جریان داده‌ها چیست اجازه بدهید چند مثال ساده بیاوریم:

فرض سازمان محیط زیست می‌خواهد دمای آب یک محدوده از دریا و تغییرات دمایی آن را داشته باشد. برای این کار نزدیک به ۱میلیون سنسور را در سطح آب رها می‌کند و هر کدام از این سنسورها نزدیک به ۱۰بار اطلاعات را در ثانیه برای یک مرکز مخابره می‌کنند. اگر بخواهیم دقیق‌تر ببینیم هر کدام از سنسورها روزانه نزدیک به ۳مگابایت اطلاعات به مرکز می‌فرستند. حال فرض کنید که ۱میلیون سنسور هر کدام ۳مگابایت در روز اطلاعات تولید کنند. یعنی چیزی نزدیک به ۳ترابایت اطلاعات در روز. قاعدتا نگهداری یک همچین حجم عظیمی از اطلاعات شاید نتواند توجیه اقتصادی داشته باشد.

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

مثال ساده‌تری که می‌توان از این حوزه زد، مثال داده‌های کاربران وب است. برای مثال یک موتور جستجو مانند گوگل در هر روز چند صد میلیون پرس و جو توسط کاربران را پردازش می‌کند. این هم نمونه‌ای از جریان داده‌ها می‌تواند باشد که امکان ذخیره تمامی آن‌ها جهت عملیات داده‌کاوی‌های بعضی شاید وجود نداشته باشد.

تا اینجا با مفهوم جریان داده‌ها یا همان Data Stream آشنا شدید. به طور خلاصه داده‌هایی که باید در لحظه پردازش شوند و نمی‌توان آن‌ها را برای پردازش و پاسخ به پرس و جو‌های بعدی ذخیره کرد، جریان داده‌ها نام داشته و کاربرد وسیعی در کسب و کار‌ها دارند.

منابع این بحث و اطلاعات بیشتر

» فصل چهارم کتاب Mining Of Massive Datasets دانشگاه استنفورد

در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

4 دیدگاه دربارهٔ «پردازش جریان داده‌ها (Data Stream Processing) چیست؟»

  1. سلام و خدا قوت توضیحات فصل ۴ را در صورت امکان لازم دارم برای من ارسال کنید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *