پیشپردازش و تبدیلها
دادههای به دست آمده از دستگاهها به شکل خام لزوماً برای تجزیه و تحلیل مناسب نیستند. دادهها ممکن است گم شوند یا به مرحله غنیسازی نیاز داشته باشند یا اینکه برخی از مقادیر برای نمایش، نیازمند تبدیل باشند. (این موضوع اغلب برای مواردی که نوشتن زمان و تاریخ در آنها ضروری است، موضوعیت پیدا میکند.) این بدان معناست که شما برای مدیریت این غنیسازیها و تبدیلهای مکرر، به یک مرحله پیشپردازش نیاز دارید. همچنین به ذخیرهسازی دادههای تبدیل شده به همراه دادههای منبع خام هم نیاز دارید. چندین روش برای سازماندهی این فرآیندها وجود دارد.
در حال حاضر، ممکن است با خود اینگونه تصور کنید: چرا باید این کار را انجام دهم، درصورتیکه هر زمان به تکراری نیاز داشته باشم میتوانم مقدار مدنظر خود را دوباره تبدیل کنم؟ اما در جواب باید بگوییم مسئله مهم زمان است. همانطور که کاملاً مشهود است، تبدیلها و غنیسازیها میتوانند عملیات هزینهبری باشد و تأخیر قابل توجهی را به جریان کلی کار اضافه کنند. اگر شما دنبالهای از رویدادها را دوباره اجرا میکنید، بهترین کار اجتناب از نیاز به تکرار تبدیلهاست. تبدیلها را میتوان به چند روش انجام داد. اگر شما بر روی تجزیه و تحلیل حالت دستهای متمرکز شدهاید و در حال نوشتن دادهها در HDFS به عنوان جریان کار اصلی خود هستید، بنابراین Pig استفاده حتیالامکانی از توابع دستی تعریف شده توسط کاربر را برای این منظور در اختیار شما قرار میدهد، بهطوری که پاسخگوی نیازهای شما در این زمینه خواهد بود. با وجود این، آگاه باشید در حالی که Pig اینکار را انجام میدهد، دقیقاً به منظور داشتن شاخصههای زمان تأخیر کم طراحی نشده است. اجرای دنبالهای از چندین Pig، موجب ایجاد زمان تأخیر بسیاری در جریان کار خواهد شد. حتی اگر شما فینفسه به دنبال «تجزیه و تحلیل زمان واقعی» هستید، گزینه بهتر ممکن است استفاده از Storm تنها برای مرحله پیشپردازش جریان کار باشد.
تجزیه و تحلیل ترافیکی جهت دستیابی به بینش کسب و کار
هنگامی که دادههای شما به شکلی مناسب تبدیل شده و برای استفاده در آینده ذخیره شدند، میتوانید کار تجزیه و تحلیل را آغاز کنید. (شکل1) اگر برای این کار از Kafka استفاده نمیکنید در نتیجه از Apache Storm استفاده میکنید. Apache Storm برای مدیریت جریان مستمری از دادهها به روشی مقیاسپذیر طراحی شده است؛ دقیقاً همان چیزی که سیستمهای IoT تمایل به ارائه آن دارند. Storm در مدیریت جریانهای دادهای با حجم بالا و انجام عملیات بر روی آنها، همانند همبستگی پیشامد، محاسبات متریک و آمار دادههای یکپارچه سرآمد است. Storm، همچنین، امکان اجرای هر گونه الگوریتمی را که ممکن است به آن نیاز داشته باشید در اختیارتان قرار میدهد. تجربه ما تا به امروز این است که Storm گزینه بسیار خوبی برای کار با دادههای IoT در جریان است. اجازه دهید نگاهی به چگونگی عملکرد آن به عنوان عنصر کلیدی سیستم تحلیلیتان داشته باشیم. در Storm، بهطور پیش فرض، "توپولوژیها" برای همیشه اجرا میگردند؛ به طوری که هر گونه محاسبهای را که میتوانید روی جریانی نامحدود از پیامها کدگذاری کنید اجرا میکند. توپولوژیها ممکن است شامل هر تعداد از مراحل پردازش، bolt (پردازشگر جریان)، که بر روی گرهها در یک خوشه توزیع میشوند باشند. Storm، توزیع پیام را برای شما مدیریت میکند. Boltها میتوانند وضعیت را به گونهای که برای انجام محاسبات "پنجره لغزان ” (sliding window) و انواع دیگر متریکها نیاز است، حفظ کنند.
شکل 1: سیر تجزیه و تحلیل دادههای به دست آمده از دستگاهها و حسگرها در اینترنت اشیا
Bolt مزیت ویژهای دارد؛ زمانیکه باید تنها بر یک رویداد در یک زمان متمرکز باشد، میتواند بدون وضعیت نیز باشد (بهطور مثال، محرک آستانه). در این حالت، متریکهای محاسبه شده در توپولوژی Storm میتوانند به منظور مطابقت با ملزومات کسب و کار استفاده شوند. در اینجا، برخی از مقادیر ممکن است موجب ایجاد یک اعلان زمان ـ واقعی از طریق پست الکترونیک یا XMPP شده یا داشبورد زمان ـ واقعی را به روزرسانی کنند. مقادیر دیگر ممکن است فوراً دور انداخته شود، در حالی که در مورد بعضی از مقادیر نیاز دارید تا آنها را برای همیشه ذخیرهسازی کنید. البته اینکه چه دادههایی باید دور انداخته شوند و چه دادههایی باید نگهداری شوند به برنامه کاربردی شما بستگی دارد. به عبارت دیگر در بعضی مواقع حجم دادههای دور ریختنی شما در مقایسه با حجم دادههایی که باید نگهداری شوند، حتی مقادیر با ارزش متوسط، بسیار کم است و این مورد منطقی تلقی میشود، اما چرا؟ به دلیل اینکه در نهایت باید دادهها را از هرگونه bolt حالتمند در یک توپولوژی Storm به دست آورید؛ تنها در صورتی میتوانید از این راهکار صرفنظر کنید که میزان حافظه اصلی (RAM) سیستم شما بینهایت بوده یا فضای مبادله (swap) موجود، بسیار زیاد باشد. حتی در بعضی موارد ممکن است برای کاهش زمان، نیازمند یک فرآیند "فراتحلیلی" باشید. فرآیندی که روی آن گروه از مقادیر سطح متوسطی که قبلاً محاسبه شدهاند انجام میشود. اگر این مقادیر را ذخیره کرده باشید، میتوانید بدون نیاز به تکرار time-window پیشامدهای منبع اصلی، این فرآیند فراتحلیلی را انجام دهید. اما سؤال اصلی این است که چگونه باید نتایج حاصل از محاسبات Storm را ذخیره کنیم؟ برای شروع، باید دریابید که شما میتوانید در یک bolt هر کاری نظیر، نوشتن در پایگاه دادهها را انجام دهید.
تعریف یک توپولوژی Storm که متریکهای محاسبه شده را در محل ذخیرهسازی دائمی ذخیره میکند بهسادگی اضافه کردن کد به boltهای مختلفی است که به پایگاه دادههای شما متصل شده و مقادیر به دست آمده در محل ذخیرهسازی را در آن وارد میکنند. در واقع، به منظور پیروی از اصل پرهیز از نگرانیها، بهتر است bolt جدیدی را به جریان توپولوژی boltای که محاسبات را انجام میدهد اضافه کرده و تنها مسئولیت مدیریت مقاومت را به آن محول کنید. توپولوژیهای Storm بسیار انعطافپذیر هستند؛ به گونهای که به شما قابلیت ارسال خروجی از یک bolt به هر تعداد bolt دیگر را ارائه میکنند. اگر در نظر دارید دادههای منبعی را که به توپولوژی ارسال شدهاند ذخیره کنید، این کار به آسانی نوشتن یک bolt مقاومتی بهطور مستقیم در منبع (منابع) جریان است. از آنجایی که منابع جریان میتوانند دادهها را به boltهای متعددی ارسال کنید، میتوانید هم رویدادهای منبع را ذخیره کرده و هم آنها را به هر تعداد از مراحل پردازشی دیگر ارسال کند.
برای ذخیرهسازی این نتایج، شما میتوانید از هر پایگاه دادهای استفاده کنید، ما دریافتیم که Couchbase بهخوبی در این برنامههای کاربردی کار میکند. نکته کلیدی برای انتخاب یک پایگاه داده این است که میتوانید Storm ای را که دارای هیچگونه امکانات جستجو یا پرسش نبوده و میتواند مقدار محدودی از دادهها را در حافظه اصلی ذخیره کند، با سیستمی که قابلیتهای پرسوجو و بازیابی قدرتمندی را ارائه میدهد، تکمیل کنید. هر پایگاه دادهای که انتخاب کنید، مادامی که متریکهای محاسبه شده شما را ذخیره میکند، باید برای استفاده از امکانات پرسو جو در پایگاه داده برای تولید گزارشهای قابل دسترس، آماده باشد. در این جا، شما این توانایی را دارید تا از Tableau، BIRT، Pentaho، JasperReports، یا ابزارهای مشابهی که برای ایجاد هر نوع گزارش یا تصاویر به آنها نیاز دارید، استفاده کنید. ذخیرهسازی دادهها به این روش این توانایی را در اختیار شما قرار میدهد تا تجزیه و تحلیل ترافیک اضافی را هر زمان که به آن نیاز دارید با استفاده از این ابزارها انجام دهید.
اگر یکی از boltها دادهها را به HDFS وارد کند، این توانایی را دارید تا از تمامی ابزارهای هادوپمحور برای پردازش و تجزیه و تحلیل استفاده کنید. ایجاد راهحلهای تحلیلی که قابلیت اداره گسترشپذیر در سیستمهای IoT را داشته باشند، کار چندان آسانی نیست، اما به کارگیری فناوری صحیح موجب میشود تا این چالش چندان دلهرهآور نباشد. اگر عاقلانه تصمیم بگیرید، سیستمی ایجاد خواهید کرد که با استفاده از دادههای تولید شده توسط انبوهی از دستگاههای IoT، بینش ارزشمندی را پیرامون کسب و کار و محیط اطراف به شما ارائه کند.
==============================
شاید به این مقالات هم علاقمند باشید:
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟