مدیریت و آنالیز کلان داده (Big Data Management)
کلان داده (بیگ دیتا) Big Data یا داده های عظیم تاکنون با چالشهای زیادی روبرو بوده است. امروزه حجم دادهها هم زمان با پیشرفت فناوریهای ذخیرهسازی و پردازش اطلاعات و به دلیل تولید داده توسط تجهیزات و ابزارهای مختلف دیجیتال روز به روز در حال افزایش است.
وجود گوشیهای موبایل، حسگرهای محیطی، لاگ نرمافزارهای مختلف، دوربینها، دستگاههای تشخیص RFID، شبکههای حسگر بیسیم، ایستگاههای هواشناسی، سامانههای امواج رادیویی، مبادلات شبکههای اجتماعی آنلاین، متون و اسناد اینترنتی، اطلاعات پزشکی و سلامت بیماران، اطلاعات سامانههای مدیریت فروشگاهها و … نمونههایی از دادهها در مقیاس کلان هستند.
مقیاسی که امروزه از گیگابایت و ترابایت به پتابایت و اگزابایت و زتابایت در حال حرکت است. لذا نیازمند توسعه زیرساختهای فنی برای مدیریت داده و رشد آن در بخشهایی نظیر جمع آوری، ذخیرهسازی، جستجو، به اشتراکگذاری و تحلیل میباشیم. به کار گیری بستر آنالیز کلان داده این توانایی را به ما می دهد تا در زمانی که با اطلاعات بی شمار مواجه می شویم با بازدهی بالاتری شرایط را ارتقا دهیم و هنگامی که خطرات امنیتی افزایش پیدا میکند، سطح امنیت بیشتری را فراهم کنیم، یا وقتی که با رویدادهای بیشتری روبرو هستیم، توان پیشبینی دقیقتر و بهتری به دست آوریم. در دنیایی که تعداد تراکنشهای بانکی، بیمه و مالی رو به افزایش است، تقلب کمتری را شاهد باشیم و بسیاری موارد دیگر از این دست که اهمیت کلان داده را نشان میدهد.
در ابتدا چالش های کلان داده ( داده های عظیم ) در سه بعد اصلی حجم داده، نرخ تولید و تنوع داده مطرح شدند، ولی در ادامه با موارد بیشتری روبرو شدیم:
• حجم داده (Volume)
حجم دادههای درون سازمان و خارج آن به دلیل وجود اینترنت، دستگاههای الکترونیکی و موبایلها، زیرساختهای شبکه و سایر منابع هر ساله رشد نمایی دارد و پیشبینی شده است که تا سال ۲۰۲۰ تا ده زتابایت داده در جهان تولید شود.
• نرخ تولید (Velocity)
دادههای بزرگ از طریق برنامههای کاربردی و سنسورهای بسیار زیادی که در محیط وجود دارند، با سرعت بسیار زیاد تولید می شوند که اغلب باید در لحظه پردازش و ذخیره شوند.
• تنوع (Variety)
انواع منابع داده و تنوع در نوع داده در کلان داده بسیار زیاد میباشد که در نتیجه ساختارهای دادهای بسیار زیادی وجود دارد و بیشتر حجم داده دنیا هم بیساختار و بسیار متنوع است. بخشی از داده ها در بانکهای اطلاعاتی، بخشی به صورت XML و JSON و سایر دادهها نیز در فایلها با قالبهای متفاوت ذخیره شدهاند که عمل پردازش آنها را پیچیده می کند.
• صحت (Veracity)
با توجه به اینکه دادهها از منابع مختلف دریافت میشوند، ممکن است نتوان به همه آنها اطمینان کرد، موضوعی که نمی توان به سادگی از کنار آن در حجم بسیار زیادی از اطلاعات گذشت.
• اعتبار (Validity)
با فرض اینکه داده صحیح باشد، ممکن است برای برخی کاربردها مناسب نباشد یا به عبارت دیگر از اعتبار کافی برای استفاده در برخی از کاربردها برخوردار نباشد.
• نوسان (Volatility)
سرعت تغییر ارزش دادههای بزرگ ، مختلف و در طول زمان میتواند متفاوت باشد. اگرچه نگهداری اطلاعات در زمان طولانی به منظور تحلیل دادهها حائز اهمیت است. افزایش دوره نگهداری اطلاعات، هزینههای پیادهسازی زیادی را در بر خواهد داشت که باید در نظر گرفته شود.
• نمایش (Visualization)
یکی از کارهای مشکل در حوزه کلان داده یا Big Data ، نمایش اطلاعات است. اینکه بخواهیم کاری کنیم که حجم عظیم اطلاعات با ارتباطات پیچیده، به خوبی قابل فهم و قابل مطالعه باشد؛ از طریق روشهای تحلیلی و بصریسازی مناسب اطلاعات امکانپذیر است.
• ارزش (Value)
آیا هزینهای که برای نگهداری داده و پردازش آنها میشود، ارزش آن را از نظر تصمیمگیری دار
کلان داده
کلان داده ( داده عظیم ) یا بیگ دیتا Big Data ، دادههایی با اندازه بزرگ هستند. کلان داده اصطلاحی است برای توصیف مجموعهای از اطلاعات در اندازه بزرگ و در حال تغییر که نرخ تولید و تنوع آن به طور روزافزون درحال رشد است. بخشی از این دادهها به طور خودکار توسط ماشینها تولید و بخش دیگر توسط کاربران تولید میشود.
کلان داده میتوانند بر اساس ویژگیهای زیر تعریف شود:
- اندازه
اندازه دادههای آزانیده (تولید شده) و انباریده (ذخیره شده). اندازهٔ داده در شناسایی ارزش یا کلانگی داده کلیدی است. اگر داده خُرد باشد، کلان داده خوانده نمیشود.
- تنوع
گونهٔ داده. دستهبندی دادهها به گونهها به شناخت بهتر میانجامد.
- نرخ تولید
همان سرعت تولید دادهاست. نرخ بالای تولید داده، چالشهایی را در زمینه ذخیرهسازی و پردازش کلان داده پدید میآورد.
- تغییرپذیری
ناپایداری داده میتواند پردازشها را از رسیدگی و مدیریت داده بازدارد.
- صحت داده
کیفیت داده گردآوری شده میتواند بر داده کاوی دقیق داده اثر بگذارد.
اگر بخواهیم تعریفی از کلان داده ارائه کنیم، می توانیم آن را مجموعه دادههایی بدانیم که اندازه آنها فراتر از حدی است که با نرمافزارها و روشهای معمول بتوان آنها را در یک زمان قابل قبول، دریافت، ذخیره، مدیریت و پردازش کرد.
به طور کلی، تفاوتهای اصلی کلان داده و دادههای سنتی در جدول زیر بیان شده است:
معیار | دادههای سنتی | کلان داده |
اندازه | گیگابایت تا ترابایت | پتابایت تا اگزابایت |
معماری | متمرکز | توزیع شده |
ساختار | دارای ساختار | بیساختار یا نیمساختار |
مدل داده | مدل داده ثابت | بدون شِمای مشخص |
ارتباط داخلی | ارتباطات پیچیده بین رکوردها | فاقد ارتباطات داخلی پیچیده |
منابع کلان داده به خودی خود هیچگونه اطلاعاتی را در اختیار ما نمیگذارند، در واقع شخصی باید باشد که مفهوم این اطلاعات را دریابد. در واقع کل کاری که در تجزیه و تحلیل کلان داده باید انجام شود به این صورت است:
بررسی حجم زیادی از اطلاعات غیر قابل فهم و سپس فهمیدن آنچه میتوان از آن استخراج کرد.
اجرای سامانههای مبتنی بر پلتفرم Big Data یکی دیگر از فعالیتهای سان از چند سال گذشته میباشد. رویکرد این سامانهها بیشتر برای دادههای انباشته و گاهی متنوع با حجم بالا و بهمنظور پردازشهای سریع و Real Time و پیچیده مناسب است. از تکنولوژیهایی که در این سامانهها استفاده میشود میتوان به موارد زیر اشاره نمود:
Apache Spark
یک چارچوب محاسباتی برای دادههای عظیم است. اسپارک از 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 را توسعه میدهد و ما را قادر میسازد تا یک گراف جهتدار با مشخصههای دلخواه ضمیمهشده به هر لبه و رأس را ایجاد کنیم.
Cluster Mangers
Spark طراحی شده است تا بهصورت کارا از یک تا چند هزار گره پردازشی مقیاس یابد. برای حصول این قابلیت درحالیکه قابلیت انعطافپذیری نیز به حداکثر برسد، Spark میتواند بر روی انواعی از مدیران خوشه از قبیل Hadoop YARN، Apache Mesos و مدیر خوشه سادهای که در خود Spark به نام زمانبند مستقل است، پردازش کند.
- متمایز بودن از رقبا به دلیل تجربه فراوان با ورود اطلاعات با حجم بیش از ۶ میلیارد رکورد و ظرفیت بیش از ۲ پتابایت
- استفاده از تکنولوژیهای روز دنیا در مدیریت و آنالیز کلان داده
- مدیریت کلان داده در حوزههای بانکی و مخابراتی
- تحول در عملیات برای دستیابی به برتری تجاری و سرویسدهی
- طراحی مقیاسپذیر
