کلان داده

امروزه حجم داده‌ها هم زمان با پیشرفت فناوری‌های ذخیره‌سازی و پردازش اطلاعات روز به روز و عموماً به‌خاطر تولید داده‌‌ توسط تجهیزات و ابزارهای مختلف دیجیتال در حال افزایش است. وجود گوشی‌های موبایل، حسگرهای محیطی، لاگ‌ نرم‌افزارهای مختلف، دوربین‌ها، دستگاه‌های تشخیص RFID، شبکه‌های حسگر بی‌سیم، ایستگاه‌های هواشناسی، سامانه‌های امواج رادیویی، مبادلات شبکه‌های اجتماعی آنلاین، متون و اسناد اینترنتی، اطلاعات پزشکی و سلامت بیماران، اطلاعات سامانه‌های مدیریت فروشگاه‌ها و … نمونه‌هایی از داده‌ها در مقیاس کلان هستند. مقیاسی که امروزه از گیگابایت و ترابایت به پتابایت و اگزابایت و زتابایت در حال حرکت است. لذا نیازمند توسعه زیرساخت‌های فنی برای مدیریت داده و رشد آن در بخش‌هایی نظیر جمع آوری، ذخیره‌سازی، جستجو، به اشتراک‌گذاری و تحلیل می‌باشیم. به کار گیری بستر آنالیز کلان داده این توانایی را به ما می دهد تا در زمانی که با اطلاعات بی شمار مواجه می شویم با بازدهی بالاتری شرایط را ارتقا دهیم و هنگامی که خطرات امنیتی افزایش پیدا می‌کند، سطح امنیت بیشتری را فراهم کنیم، یا وقتی که با رویدادهای بیشتری روبرو هستیم، توان پیش‌بینی دقیق‌تر و بهتری به دست آوریم. در دنیایی که تعداد تراکنش‌های بانکی، بیمه و مالی رو به افزایش است، تقلب کمتری را شاهد باشیم و بسیاری موارد دیگر از این دست که اهمیت کلان داده را نشان می‌دهد.
تا کنون چالش‌های زیادی در حوزه کلان داده مطرح شده است. این چالش ها در ابتدا سه بعد اصلی حجم داده، نرخ تولید و تنوع مطرح شدند ولی در ادامه با چالش‌های بیشتری روبرو شدیم:

حجم داده (Volume)

حجم داده‌های درون سازمان و خارج آن به دلیل وجود اینترنت، دستگاه‌های الکترونیکی و موبایل‌ها، زیرساخت‌های شبکه و سایر منابع هر ساله رشد نمایی دارد و پیش‌بینی شده است که تا سال ۲۰۲۰ تا ده زتابایت داده در جهان تولید شود.

نرخ تولید (Velocity)

داده‌ها از طریق برنامه‌های کاربردی و سنسورهای بسیار زیادی که در محیط وجود دارند با سرعت بسیار زیاد تولید می شوند که اغلب باید در لحظه پردازش و ذخیره شوند.

• تنوع (Variety)

انواع منابع داده و تنوع در نوع داده بسیار زیاد می‌باشد که در نتیجه ساختارهای داده‌ای بسیار زیادی وجود دارد و بیشتر حجم داده دنیا هم بی‌ساختار و بسیار متنوع است. بخشی از داده‌¬ها در بانک‌های اطلاعاتی، بخشی به صورت XML و JSON و سایر داده‌ها نیز در فایل‌ها با قالب‌های متفاوت ذخیره شده‌اند که عمل پردازش آنها را پیچیده می کند.

• صحت (Veracity)

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

• اعتبار (Validity)

با فرض اینکه داده صحیح باشد، ممکن است برای برخی کاربردها مناسب نباشد یا به عبارت دیگر از اعتبار کافی برای استفاده در برخی از کاربردها برخوردار نباشد.

• نوسان (Volatility)

سرعت تغییر ارزش داده‌های مختلف در طول زمان می‌تواند متفاوت باشد. اگرچه نگهداری اطلاعات در زمان طولانی به منظور تحلیل داده‌ها حائز اهمیت است. افزایش دوره نگهداری اطلاعات، هزینه‌های پیاده‌سازی زیادی را در بر خواهد داشت که باید در نظر گرفته شود.

• نمایش (Visualization)

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

• ارزش (Value)

آیا هزینه‌ای که برای نگهداری داده و پردازش آنها می‌شود، ارزش آن را از نظر تصمیم‌گیری دارد یا نه؟

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

کلان داده می‌توانند بر اساس ویژگی‌های زیر تعریف شود:

  • اندازه

اندازه داده‌های آزانیده (تولید شده) و انباریده (ذخیره شده). اندازهٔ داده در شناسایی ارزش یا کلانگی داده کلیدی است. اگر داده خُرد باشد، کلان داده خوانده نمی‌شود.

  • تنوع

گونهٔ داده. دسته‌بندی داده‌ها به گونه‌ها به شناخت بهتر می‌انجامد.

  • نرخ تولید

همان سرعت تولید داده‌است. نرخ بالای تولید داده، چالش‌هایی را در زمینه ذخیره‌سازی و پردازش داده پدید می‌آورد.

  • تغییرپذیری

ناپایداری داده می‌تواند پردازش‌ها را از رسیدگی و مدیریت داده بازدارد.

  • صحت داده

کیفیت داده گردآوری شده می‌تواند بر داده‌کاوی دقیق داده اثر بگذارد.

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

به طور کلی، تفاوت‌های اصلی کلان داده و داده‌های سنتی در جدول زیر بیان شده است:

معیار داده‌های سنتی کلان داده
اندازه گیگابایت تا ترابایت پتابایت تا اگزابایت
معماری متمرکز توزیع شده
ساختار دارای ساختار بی­‌ساختار یا نیم­‌ساختار
مدل داده مدل داده ثابت بدون شِمای مشخص
ارتباط داخلی ارتباطات پیچیده بین رکوردها فاقد ارتباطات داخلی پیچیده

منابع کلان داده به خودی خود هیچ‌گونه اطلاعاتی را در اختیار ما نمی‌گذارند، در واقع شخصی باید باشد که مفهوم این اطلاعات را دریابد. در واقع کل کاری که در تجزیه و تحلیل کلان داده باید انجام شود به این صورت است:

بررسی حجم زیادی از اطلاعات غیر قابل فهم و سپس فهمیدن آن‌چه می‌توان از آن استخراج کرد.

اجرای سامانه‌های مبتنی بر پلتفرم Big Data یکی دیگر از فعالیت‌های سان از چند سال گذشته می‌باشد. رویکرد این سامانه‌ها بیشتر برای داده‌های انباشته و گاهی متنوع با حجم بالا و به‌منظور پردازش‌های سریع و Real Time و پیچیده مناسب است. از تکنولوژی‌هایی که در این سامانه‌ها استفاده می‌شود می‌توان به موارد زیر اشاره نمود:

یک چارچوب محاسباتی برای داده‌­های عظیم است. اسپارک از MapReduce به عنوان موتور اجرای خودش، استفاده نمی­‌کند؛ اما به‌خوبی با هادوپ یکپارچه است. درواقع اسپارک می‌­تواند در Yarn اجرا شود و با فرمت داده­‌های هادوپ و HDFS کار کند. اسپارک بیشتر به خاطر توانایی نگه‌داشتن مجموعه‌­های داده­‌ای بین کارها در حافظه شناخته می‌­شود. این قابلیت، سبب می­‌شود تا سریع‌تر از جریان کاری MapReduce معادل که مجموعه­‌های داده­ای همیشه از دیسک بار می­‌شوند، عمل کند. دو نوع کاربردی که از مدل پردازشی اسپارک بهره می­‌برند، الگوریتم‌­های تکرارشونده (که یک تابع بر روی مجموعه داده‌­ای به‌صورت تکراری تا حصول شرط خروج، اعمال می‌­گردد و تحلیل تعاملی که یک کاربر مجموعه‌ای از پرس‌وجوهای اکتشافی تک‌کاره را بر روی مجموعه­ داده‌­ای، اعمال می‌­کنند) است. همچنین اسپارک APIهایی در زبان‌­های Java،Scala  و Python، ارائه می‌­کند. پروژه Apache Spark شامل ماژول­‌هایی یادگیری ماشین (MLlib)، پردازش گراف (GraphX)، پردازش جریانی (Spark Streaming) و SQL (Spark SQL) است.

یکی از ویژگی‌های اصلی Spark که برای سرعت ارائه می‌دهد، اجرای پردازش‌ها در حافظه است، اما این سیستم همچنین در اجرای برنامه در دیسک هم از  MapReduce کاراتر است. Spark می‌تواند در کلاسترهای هادوپ اجرا شود و به هر منبع داده‌ای هادوپ مانند Cassandra دسترسی داشته باشد.

  • spark Core

هسته Spark شامل قابلیت‌های اساسی Spark از قبیل اجزایی برای زمان‌بندی وظیفه، مدیریت حافظه، ترمیم خطا، تعامل با سیستم‌های ذخیره‌سازی و دیگر اجزا است. همچنین هسته Spark مکان API است که مجموعه داده‌ای توزیع‌شده ارتجاعی (resilient distributed datasets-RDD) که انتزاع برنامه‌نویسی اصلی Spark است را تعریف می‌کند. RDDها مجموعه اقلام توزیع‌شده در چندین گره پردازشی که می‌توانند به‌طور موازی استفاده شوند را نشان می‌دهد.

  • Spark SQL

این بسته برای کار کردن با داده‌های دارای ساختار است. ما را قادر می‌سازد تا از داده‌ها با SQL مانند زبان پرس و جوی Hive، پرس‌وجو بگیریم. Spark SQL از چندین منبع داده‌ای شامل جداول Hive، Parquet و JSON پشتیبانی می‌کند. همچنین می‌توان پرس‌وجوهای SQL را با عملیات دیگری که توسط RDD ها در پایتون، جاوا و اسکالا انجام می‌شود، در یک برنامه واحد انجام داد که منجر به ترکیب SQL با تحلیل‌های پیچیده می‌شود.

Shark نسخه قدیمی Spark SQL بود که اکنون توسط Spark SQL جایگزین شده است.

  • Spark Streaming

جزء جریانی Spark، به ما امکان پردازش زنده جریان‌هایی از داده را می‌دهد. مثال‌هایی از داده‌های جریانی شامل فایل­‌های نگاره تولیدشده توسط سرویس‌دهنده‌های وب یا صف‌های پیام‌هایی شامل به‌روزرسانی وضع و حالت که توسط کاربران یک سرویس وب ارسال می‌شوند؛ است.

  • Mllib

این بسته شامل قابلیت‌های یادگیری ماشین متداول است. Mllib شامل چندین نوع الگوریتم یادگیری ماشین از قبیل کلاس‌بندی، رگرسیون، خوشه‌بندی و پالایش گروهی و همچنین شامل قابلیت‌های ارزیابی مدل و ورودی داده‌هاست. تمام این روش‌ها طراحی‌شده‌اند تا در یک کلاستر مقیاس‌پذیر باشند.

  • GraphX

GraphX، کتابخانه‌ای برای پردازش گراف‌ها (گراف دوست شبکه اجتماعی) است؛ مانند جریان و SQL، این کتابخانه نیز Spark RDD API را توسعه می‌دهد و ما را قادر می‌سازد تا یک گراف جهت‌دار با مشخصه‌های دلخواه ضمیمه‌شده به هر لبه و رأس را ایجاد کنیم.

Spark طراحی شده است تا به‌صورت کارا از یک تا چند هزار گره پردازشی مقیاس یابد. برای حصول این قابلیت درحالی‌که قابلیت انعطاف‌پذیری نیز به حداکثر برسد، Spark می‌تواند بر روی انواعی از مدیران خوشه از قبیل Hadoop YARN، Apache Mesos و مدیر خوشه ساده‌ای که در خود Spark به نام زمان‌بند مستقل است، پردازش کند.

  • متمایز بودن از رقبا به دلیل تجربه فراوان با ورود اطلاعات با حجم بیش از ۶ میلیارد رکورد و ظرفیت بیش از ۲ پتابایت
  • استفاده از تکنولوژی‌های روز دنیا در مدیریت و آنالیز کلان‌ داده
  • مدیریت کلان داده در حوزه‌های بانکی و مخابراتی
  • تحول در عملیات برای دستیابی به برتری تجاری و سرویس‌دهی
  • طراحی مقیاس‌پذیر