آیا تا بهحال اصلاح کلان داده به گوشتان خورده است؟ البته که این اصطلاح را شنیدهاید. در 4 یا 5 سال اخیر، همه جا سخن از کلان داده است. اما به راستی کلان دادهها چیست!؟ در این مقالهی آموزشی پیرامون کلان داده، سعی داریم با این مفهوم آشنا شویم و تعاریف و خصوصیات این محیط را بررسی کنیم. اجازه بدهید موضوع کلان داده را با داستان کوتاهی شروع کنم.
داستان کلان داده
در روزگاران قدیم مردم با ارابههایی که توسط اسب کشیده میشدند، از روستایی به روستای دیگر سفر میکردند، اما با گذشت زمان، روستاها تبدیل به شهر شدند و جمعیت پراکنده گشت. همچنین فاصلهی یک شهر تا شهر دیگر برای سفر کردن طولانیتر شد. در نتیجه سفر کردن بین شهرها، آنهم با وجود چمدانها و اثاثیه به معضلی تبدیل شد. در این اثنا، یکمرتبه شخص باهوشی برای حل این مشکل پیشنهاد داد که اسبها را تیمار کرده و غذای بیشتری به آنها داده شود. وقتی به این راهحل نگاه میکنیم، میبینم آنقدرها هم بد نیست، اما به نظر شما یک اسب میتواند تبدیل به یک فیل شود؟ شخص باهوش دیگری گفت بهجای آنکه یک اسب، ارابه را بکشد، بیایید از 4 اسب استفاده کنیم تا ارابه را بکشند. این راه نیز بهبودهایی را نسبت به قبل ایجاد میکرد. حالا مردم میتوانستند فاصلههای بیشتری را در زمانی کمتر و حتی با اثاثیهی بیشتر، به قصد سفر کردن طی کنند. و این بهبود تا به امروز ادامه داشته است که دیگر بجای اسب، از وسایل نقیلهایی نظیر خودرو، قطار و یا هواپیما استفاده میکنیم.
چنین برداشت مشابهی دربارهی کلان داده هم کاربرد دارد. طبق تعریفی که کلان داده ارائه داده، تا کنون با ذخیره کردن دادهها در سرورهایمان مشکلی نداشتیم، چراکه حجم دادهها نسبتاً محدود بود و همچنین مدت زمان مورد نیاز برای پردازش این دادهها کافی بود. اما امروزه، در این دنیای مملو از تکنولوژی، دادهها به سرعت در حال افزایش هستند و مردم هم به مراتب بیشتر به این دادهها وابسته هستند. با این سرعتی که دادهها در حال رشد هستند، ذخیره کردن دادهها بر روی هر نوع سروری امکانپذیر نیست و پردزاش دادهها به روشهای سنتی پاسخگوی نیازهای ما نیست.
عوامل مؤثر بر روی کلان دادهها
بنا به دلایل زیادی، حجم دادهها بر روی کرهی زمین، بهطور تصاعدی در حال افزایش است. منابع متعدد و فعالیتهای روزانهی ما، منجر به تولید حجم وسیعی از دادهها شده است. با اختراع وب، سرتاسر دنیا به صورت آنلاین درآمده و کوچکترین کاری که انجام میدهیم، اثری دیجیتال از خود بهجای میگذارد.
با وجود اشیاء هوشمندی که آنلاین میشوند، نرخ رشد دادهها هم به سرعت در حال افزایش است. منابع عمدهی کلان دادهها را میتوان سایتهای شبکههای اجتماعی، شبکههای حسگر، ویدئوها و تصاویر دیجیتال، تلفنهای همراه، سوابق تراکنشهای خرید، لاگ وبسایتها، سوابق پزشکی، آرشیوها، سیستمهای نظارت نظامی، سایتهای تجارت الکترونیک، تحقیقات علمی پیچیده و غیره برشمرد. تمام این حجم از اطلاعات شاید چیزی در حدود چند کوانتیلیون[1] بایت داده باشند و پیشبینی میشود تا سال 2020، حجم دادهها حدوداً 40 زتابایت خواهد شد.
کلان داده چیست؟
برای ارائه تعریفی صحیحی از کلان داده شاید بهتر باشد در ابتدا خصوصیات این محیط را بشناسیم ( این خصوصات معمولا توسط کلماتی که با حرف V شروع میشوند عنوان میشوند). هر یک از این خصوصیات یکی از ابعاد محیط کلان داده را معرفی میکند و به ما در درک بهتر این محیط کمک میکند. در ادامه خصوصیات محیط کلان داده را بررسی میکنیم.
اما در یک تعریف مختصر شاید بیراه نگفته باشیم که کلان داده اصطلاحی است که برای مجموعه دادههای بزرگ و با تنوع نوع دادهای زیاد استفاده میشود که ذخیره و پردازش این مجموعه از دادهها، با تکیه بر ابزارهایِ قابل دسترس موجود مدیریت پایگاه داده و یا راهحلهای سنتی پردازش داده، مشکل است. چالشی که کلان داده با آن روبهرو است ثبت کردن، سازماندهی، ذخیرهسازی، جستجو، اشتراک گذاری، انتقال، تجزیه و تحلیل و مصورسازی این دادهها میباشد.
ویژگیهای کلان دادهها
همانطور که پیشتر نیز اشاره شد معمولا کلان داده را همراه با خصوصیات آن معرفی میکنند. پژوهشگران، سازمانها و افراد فعال در حوزه کلان داده ویژگیهای متفاوتی از کلان داده ارائه دادهاند. برای مثال موسسه گارتنر سه ویژگی حجم[2]، نرخ تولید[3] و تنوع[4] را به عنوان خصوصیات محیط کلان داده معرفی میکند. شرکت IBM علاوه بر این سه خصوصیت، صحت[5] را نیز به عنوان یکی دیگر از خصوصیات محیط کلان داده معرفی کرده است. و یا در تعریفی دیگر علاوه بر خصوصیات بالا از ارزش[6] نیز به عنوان یکی از ابعاد کلان داده یاد میشود. شرکت مایکروسافت هم 6 ویژگیهای حجم، تنوع، نرخ تولید، صحت، تغییر پذیری[7] و قابل نمایان[8] بودن دادهها را نیز به عنوان خصوصیات محیط کلان داده معرفی کرده است. هریک از این ویژگیها بعد جدیدی از دنیای کلان داده را برای ما مشخص میکند. ما در اینجا در مورد پنج ویژگی حجم، نرخ تولید، تنوع، صحت و ارزش دادهها صحبت خواهیم کرد:
حجم: منظور از حجم “اندازه دادهها” میباشد، که با سرعت فزایندهای روز به روز در حال گسترش است. اندازهی دادههایی که توسط انسانها، ماشینها و تعامل آنها در رسانههای اجتماعی تولید میشود، به تنهایی بسیار بزرگ است. پژوهشگران پیشبینی کردهاند که تا سال 2020، 40 زتابایت (40000 اگزابایت) داده تولید خواهد شد، که نسبت به سال 2005، 300 برابر افزایش خواهد داشت.
نرخ تولید: منظور از نرخ تولید، میزان سرعتی است که منابع مختلف بهطور روزانه، داده تولید میکنند. این حجم از جریانِ داده بسیار عظیم بوده و پیوسته در حال تولید است. در حال حاضر 1.03 میلیارد “کاربرِ فعالِ روزانه” فیسبوک وجود دارند که از موبایل استفاده میکنند و سالانه 22% نیز افزایش مییابند. این آمار نشان میدهد که تعداد کاربران رسانههای اجتماعی با چه سرعتی در حال افزایش است و روزانه دادهها با چه سرعتی تولید میشوند. چنانچه بتوانید این میزان از نرخ تولید را مدیریت کنید، به شناختی خواهید رسید که قادر خواهید بود بر پایهی دادههای زمان واقعی تصمیماتی اتخاذ کنید.
تنوع: از آنجایی که منابع فراوانی وجود دارند که میتوانند به عنوان دادههای اولیه در راهحلهای کلان داده مورد تحلیل قرار بگیرند ، قاعدتاً نوع دادههایی که ایجاد میشود نیز متفاوت است. این دادهها میتوانند ساختاریافته، نیمه ساختیافته و یا بدون ساختار باشند. از اینرو، با تنوع دادههای متعددی مواجه هستیم که روزانه تولید میگردند. پیش از این، معمولا اکثریت دادهها در قالبهای ساختاریافته وجود داشتند، اما همانطور که در تصویر پایین نشان داده شده است، امروزه دادههایی به شکل تصاویر، فایلهای صوتی، ویدئو، دادههای حسگر و غیره وجود دارند. به همین سبب، این تنوع داده، چالشهای جدیدی در دریافت، ثبت، ذخیرهسازی، تجزیه و تحلیل دادهها بوجود آورده است.
صحت: منظور از صحت، دادههایی است که به دلیل ناسازگاری و عدم یکپارچگی در میان آنها، موجب شک و تردیدی در دادههای موجود میشود. در تصویر پایین، مشاهده میکنید که مقادیر اندکی در این جدول از دست رفته است. همچنین پذیرفتن بعضی از مقدارها هم سخت است، برای مثال – عدد 1500 در ردیف سوم، که حداقل مقدار را نشان میدهد، غیر ممکن به نظر میرسد. این ناسازگاری و غیر یکپارچگیها، همان صحت دادهها میباشد.
گاهی اوقات ممکن است دادههای موجود، نامرتب باشند و شاید اطمینان کردن به آنها دشوار شود. با وجود اَشکال مختلفی که کلان داده دارند، کنترل و نظارت بر کیفیت و صحت دادهها سخت میشود، مانند پستهای توییتر که با هشتگ، مخفف، غلطهای املایی و زبان محاوره نوشته میشوند. اغلب اوقات دلیل این عدم کیفیت و صحت دادهها، حجم بسیار انبوه دادهها است که از طریق راههای سنتی امکان تطابق و بررسی صحت آنها وجود ندارد.
ارزش: پس از بررسی حجم، نرخ تولید، تنوع و صحت، به خصوصیت ارزش در تعریف کلان داده میپردازیم. دسترسی به دادههای عظیم بسیار ارزشمند است، اما چنانچه نتوانیم این دادهها را ارزشگذاری کنیم، آنها بلااستفاده باقی میمانند. حال اگر این دادهها به ارزشی که مد نظر ما است برسد، آیا برای سازمانهایی که این دادهها را تجزیه و تحلیل میکنند، مفید واقع خواهند شد؟ آیا سازمانهایی که بر روی کلان داده فعالیت میکنند، بازگشت سرمایهی (ROI) چشمگیری خواهند داشت؟ در نهایت باید گفت چنانچه کار کردن بر روی کلان داده نتواند سودآوری لازم را داشته باشد، برای سازمانها بیفایده خواهد بود.
انواع داده
دادههای موجود در دنیای امروز را میتوان به 3 بخش تقسیم کرد:
- دادههای ساختاریافته
- دادههای نیمه ساختیافته
- دادههای بدون ساختار
دادههای ساختاریافته: دادهها میتوانند در فرمت ثابتی که “دادههای ساختاریافته” نامیده میشوند، ذخیره و پردازش شوند. یک نمونه از دادههای ساختاریافته، دادههایی هستند که در سیستم مدیریت پایگاه داده رابطهای (RDBMS)، ذخیره میشوند. پردازش دادههای ساختاریافته آسان است، چرا که این نوع دادهها دارای شِمای ثابتی هستند. اغلب اوقات از زبان پرس و جوی SQL برای مدیریت این نوع دادهها استفاده میشود.
دادههای نیمه ساختیافته: دادههای نیمه ساختیافته، دادههایی هستند که ساختار رسمی “مدل داده” را ندارند، یعنی فاقد تعریف جدول در یک پایگاه داده رابطهای هستند. با این وجود، این نوع دادهها از برخی ویژگیهای سازمانی، همچون تگها و برخی نشان گذارهای دیگر که برای جدا کردن عناصر معنایی، که تجزیه و تحلیل دادهها را سادهتر میکند، بهره میبرند. فرمتهای داده XML و مستندات JSON دو نوع از متداولترین دادههای نمیه ساختاریافته هستند
دادههای بدون ساختار: دادههایی هستند که شکل و ساختاری مشخصی ندارند و به همین جهت RDBMSها راهحل مناسبی برای ذخیره، تجزیه و تحلیل این دادهها نیستند. فایلهای متنی و محتویات چندرسانهای همچون تصاویر، فایلهای صوتی و ویدئوها، نمونههایی از دادههای بدون ساختار هستند. سرعت رشد دادههای بدون ساختار بیشتر از دیگر دادهها است و طبق نظر کارشناسان 80% دادههای یک سازمان، بدون ساختار هستند. پایگاه دادههای غیر رابطهایی(NoSql) یکی از دسته ابزارهایی هستند که میتوانند برای ذخیره و پردازش این نوع از دادهها بکار روند. در مورد پایگاه دادههای غیر رابطهای میتوانید مقاله ذخیرهسازی کلان دادهها: دورنمایی از پایگاه دادههای NoSQL را مطالعه کنید.
نمونههایی از موردهای کاری کلان داده
همهی ما روزانه میلیونها بایت داده آپلود میکنیم. شایان ذکر است که 90% از دادههای دنیا، در دو سال گذشته، ایجاد شدهاند. شاید بررسی برخی از آمارهای نرخ تولید داده به درک بهتر این امر کمک کند:
- شرکت فروشگاههای زنجیرهای والمارت (Walmart)، در هر ساعت بیش از 1 میلیون تراکنش مربوط به مشتریها را مدیریت میکند.
- فیسبوک بیش از 30 پتابایت از دادههای ایجاد شده توسط کاربران را ذخیره، قابل دسترس و تجزیه و تحلیل میکند.
- روزانه بیش از 230 میلیون توییت در توییتر ایجاد میشود.
- بیش از 5 میلیارد نفر در سرتاسر دنیا با تلفن همراه خود تماس میگیرند، پیام متنی میفرستند، توییت میکنند و در وبسایتها جستجو میکنند.
- کاربران یوتیوب، در یک روز هر دقیقه 48 ساعت ویدئوی جدید آپلود میکنند.
- هر روز 294 میلیارد ایمیل فرستاده میشود. سرویسهای مربوطه، این دادهها را برای یافتن هرزنامهها، تجزیه و تحلیل میکنند.
- خودروهای مدرن دهها حسگر دارند که سطح سوخت، فشار تایرها و دیگر موارد را کنترل میکنند؛ هر وسیلهی نقلیه مقدار زیادی دادههای حسگر تولید میکند.
کاربردهای کلان داده
نمیتوان از دادهها صحبت کرد و اشارهای به مردم نکرد، مردمی که از کاربردهای کلان داده نفع میبرند. امروزه تقریباً همهی صنایع، از کاربردهای کلان داده به یک یا چند شیوه بهره میبرند. در ادامه به برخی از کاربردهای کلان داده میپردازیم.
- مراقبتهای بهداشتی هوشمند: با تکیه بر دادههای مربوط به بیماران، سازمانها میتوانند اطلاعات مفیدی را استخراج کند و اپلیکیشنهایی بسازند که میتواند پیشاپیش اوضاع بیمار را پیشبینی کند.
- مخابرات: بخشهای مخابراتی اطلاعات را جمعآوری و آنها را تجزیه و تحلیل میکنند و راه حلهایی برای مشکلات مختلف ارائه میدهند. به عنوان یکی از کاربردهای کلان داده، شرکتهای مخابراتی قادر هستند بهطور چشمگیری، از دست رفتن بستهها در سطح شبکه که در زمانهای پر ترافیک در شبکه اتفاق میافتد را کاهش دهند، در نتیجه میتوانند ارتباطی یکپارچه برای مشتریهایشان فراهم آورند.
- خرده فروشی ]آنلاین[: بازار خرده فروشی ارتباط تنگاتنگی با کلان داده دارد و یکی از بزرگترین ذینفعهای کلان داده میباشد. زیبایی استفاده از کلان داده در خرده فروشی، درک رفتار مشتری است. موتور توصیهی آمازون، پیشنهاداتی بر اساس تاریخچهی مرورگر مشتری، ارائه میدهد.
- کنترل ترافیک: تراکم ترافیک، چالشی بزرگ برای بسیاری از شهرها در سرتاسر جهان است. استفادهی بهینه از دادهها و حسگرها، نکتهای کلیدی در کنترل هر چه بهتر ترافیک است، چراکه جمعیت شهرها به سرعت در حال افزایش است. سرعت پردازش دادهها، حجم تولید شده و همچنین تنوع دادهها بخوبی در این موردکاری قابل حس هستند.
- کیفیت جستجو: هر زمان که اطلاعاتی را از گوگل استخراج میکنیم، همزمان در حال ایجاد دادههایی برای گوگل هستیم. گوگل این دادهها را ذخیره میکند و از آن برای بهبود بخشیدن به کیفیت جستجو استفاده میکند.
چالشهای کلان داده
اجازه دهید در این بخش به چند چالش کوچک، که در حین کار کردن با کلان داده پیش میآید، آشنا شویم:
- کیفیت دادهها – بررسی کیفیت دادهها یکی از چالشهای مهم در بحث کلان داده میباشد. مشکلی که در این مبحث مطرح میشود، به عامل “صحت” دادهها باز میگردد. معمولا دادهها نامنظم، ناسازگار و غیر یکپارچه هستند و قبل از هرگونه تحلیل نیاز به مراحلی برای بررسی کیفیت داده دارند.
- کشف- رسیدن به یک بینش و شناخت در زمینهی کلان داده، مانند پیدا کردن سوزن در انبار کاه است. تجزیه و تحلیل دادهها در مقیاس پتابایت، با استفاده از الگوریتمهای بسیار قدرتمند، به منظور یافتن الگوها و شناخت آن دادهها، بسیار دشوار است.
- ذخیرهسازی – هرچه مقدار دادهها در یک سازمان بیشتر باشد، متعاقباً مشکلاتی که برای مدیریت آن دادهها پیش میآید، پیچیدهتر میشود. در راهحلهای کلان داده یکی از سوالات اساسی این است که دادهها را با چه معماری ذخیره کنیم. در واقع به یک سیستم ذخیرهسازی نیاز داریم که بتواند در صورت لزوم، بتوان به راحتی با تغییر مقیاس دادهها، این سیستم ذخیره ساز داده را نیز تغییر مقیاس داد.
- امنیت – از آنجایی که اندازهی دادهها عموما بزرگ است، قاعدتاً حفظ امنیت آن هم چالش دیگری محسوب میشود. احراز هویت کاربران، محدود کردن دسترسی بر اساس کاربر، ثبت تاریخچهی دسترسی به دادهها، استفادهی صحیح از رمزگذاری دادهها و … ازجمله مواردی هستند که در حیطهی امنیت جای میگیرند.
- نبود استعداد کافی – پروژههای کلان دادهی بسیاری در سازمانهای بزرگ وجود دارد، اما وجود یک تیم باتجربه از توسعه دهندگان، متخصصان علم داده و همچنین تحلیلگرانی که دانش کافی در زمینهی داده داشته باشند، هنوز هم به صورت یک چالش باقی مانده است.
استفاده از هدوپ به عنوان یک راهحل
امروزه راهحلهای متفاوتی برای کاربردهای متفاوت در دنیای کلان داده معرفی شده است. برای انواع دادههای متفاوت، انواع مدلهای پردازشی و انواع روشهای انتقال و ذخیره سازی دادهها راههای مختلفی ارائه شده است.
یکی از محبوبترین و متداولترین راهحلهایی که برای مدیریت و پردازش دادهها بکار میرود پروژه بنام آپاچی هدوپ است. هدوپ یک چارچوب برنامهنویسی متنباز و مبتنی بر جاوا است، که ذخیرهسازی و پردازش مجموعه دادههای بسیار بزرگ را در یک محیط محاسباتی توزیع شده، محقق میکند. هدوپ بخشی از پروژهی آپاچی است که توسط بنیاد نرمافزار آپاچی حمایت میشود.
هدوپ با تکیه بر سیستم پردازشی توزیعی خود، حجم عظیمی از دادههای ساختاریافته و بدون ساختار را، به شیوهای بسیار بهینهتر از شیوهی سنتی انبار دادهی سازمانها، مدیریت میکند. هدوپ این امکان را فراهم کرده تا اپلیکیشنهایی را بر روی سیستمهایی با هزاران گرهی سختافزاری مقرون به صرفه اجرا کنیم و بتوانیم مجموعهای از دادهها را در مقیاس ترابایت مدیریت نماییم. دلیلی که سازمانها هدوپ را برمیگزینند، این است که هدوپ نرمافزاری متنباز است و قابلیت اجرا بر روی سختافزارهای معمولی را دارد. صرفهجویی در هزینههای اولیه چشمگیر است، چراکه سختافزارهای معمولی بسیار ارزان هستند. همزمان با افزایش دادههای سازمانی، لازم است که سخت افزارهای بیشتری برای ذخیرهسازی اضافه کنید، از اینرو، هدوپ ثابت کرده که گزینهای مقرونبهصرفه است. علاوه بر این، هدوپ از حمایت و پشتیبانی انجمن قدرتمند آپاچی برخوردار است، که همچنان پیشرفتهای خود را در اختیار هدوپ قرار میدهد. در مقاله آپاچی هدوپ میتوانید بیشتر با این ابزار آشنا شوید.
[1] Quintillion
[2] Volume
[3] Velocity
[4] Variety
[5] Veracity
[6] Value
[7] Variability
[8] Visibility