بخشی از مقاله
چکیده - امروزه افزایش جمعیت، پیشرفت فناوری و دانش در زمینه های مختلف، افزایش تعداد و تنوع حسگرها و دستگاههای دیجیتال، ارزان تر شدن تجهیزات ذخیره سازی داده ها، همچنین رویکرد فعالین حوزه فناوری به کاوشهای عمیق تر و پیچیده تر در اطلاعات، موجب ایجاد مجموعه داده هایی شده است که با ابزارها و معماریهای نرم افزاری معمول، نمی توان آنها را در یک بازه زمانی قابل قبول، ذخیره، بازیابی، پردازش، کاوش و مدیریت نمود. گوشی های موبایل، حسگرها و شبکه های حسگر محیطی، لاگ نرم افزارها، دوربینها، شبکه های اجتماعی، مبادلات در تجارت الکترونیک و ... نمونه هایی از کلان داده1 هستند.
همین مساله انگیزه ای در جهت طراحی و پیاده سازی سیستم هایی متناسب با این حجم داده ها با امکان بکار بردن چندین هزار ماشین موازی جهت پیمایش داده ها شده است. در این مقاله به بررسی چالشها و خصوصیات کلان داده پرداخته و همچنین رویکردهای مختلف در این تکنولوژی شامل سیستم های کلیدمقدار2، اسنادی3، توزیع شده4 و گرافی5 را معرفی و درنهایت مقایسه ای بین سرعت ذخیره سازی داده ها در یک سیستم رابطه ای با یک سیستم کلان داده از نوع اسنادی انجام می شود.
-1 مقدمه
عبارت کلان داده مدتهاست برای اشاره به مقادیر حجیم داده که توسط موسسات بزرگ مانند ناسا و گوگل ذخیره و پردازش می شوند استفاده می گردد. اخیرا این عبارت بیشتر به مجموعه داده های بزرگی اطلاق می شود که به دلیل حجم و ابعاد گسترده با روشهای نرم افزاری معمول قابل ذخیره، بازیابی، پردازش و تحلیل نیستند. دلیل گرایش محققین مختلف به این فناوری اینست که با داشتن مجموعه داده های بزرگتر و وسیعتر و تحلیل چند جانبه آنها، می توان نتیجه بهتر و مفیدتری بدست آورد و این مقوله در کاوش اطلاعات که معمولا به دنبال بالا بردن دقت آن هستیم اهمیت مضاعفی پیدا می کند.
امروزه به دلیل تولید انبوهی از داده ها در صفحات وب، شبکه های اجتماعی، دستگاههای دیجیتال، موبایلها، حسگرهای مختلف، لاگ نرم افزارها و ... شاهد رشد مقیاس داده ها از گیگابایت به زتابایت هستیم. درحال حاضر بطور متوسط روزانه 2×1027 بایت داده درحال تولید است و 90% داده های موجود، داده هایی تولید شده در دوسال اخیر می باشد.[1] بنابراین نیاز به ایجاد و بکارگیری فناوری و امکانات متناسب جهت مدیریت این حجم داده ها شامل جمع آوری، ذخیره سازی، جستجو، اشتراک گذاری و تحلیل داریم. دستیابی به این فناوری باعث ارائه خدمات بهتر و مناسبتر در زمینه های مختلف می شود.
به عنوان مثال زمانیکه بتوانیم داده های بیشتری درخصوص مصرف انرژی ذخیره و تحلیل کنیم امکان ارائه راه حل مناسبتر برای صرفه جویی در مصرف آن به وجود می آید؛ یا زمانیکه اطلاعات بیشتری راجع به وضعیت جوی و رویدادهای آب و هوایی داشته باشیم با تحلیل گسترده آنها می توان پیش بینی دقیقتری درخصوص وضع هوا ارائه داد. [2]
چالشهای مختلفی در بحث کلان داده مطرح می باشد که برخی از آنها عبارتند از : تعداد کاربران، حجم، نرخ تولید، تنوع، صحت، اعتبار و نوسان. رویکردهای متفاوتی در کلان داده برای مدیریت چالشهای مذکور وجود دارد که هریک دارای ابزارهای نرم افزاری خاص خود می باشند. دراین مقاله به بررسی اجمالی چالشهای موجود و همچنین رویکردهای متعارف فناوری کلان داده می پردازیم و سپس سرعت ذخیره سازی داده در یک ابزار اسنادی با یک سیستم رابطه ای را مقایسه می نماییم. چالشهای متعددی در زمینه فناوری کلان داده وجود دارد که البته به نقطه آغاز تحلیل داده ها و نحوه جمع آوری آنها وابسته است. این چالشها ابتدا بیشتر از سه جنبه حجم، نرخ تولید و تنوع بررسی می شدند ولی اکنون موارد متعددی هستند که در ادامه به برخی از آنها اشاره می کنیم.
- تعداد کاربران : رشد سریع تعداد کاربران و نیاز به ارائه خدمات بطور همزمان به همگی آنها در کمترین زمان ممکن و با کمترین هزینه یکی از چالشهای مهم پیش روی مهندسی داده هاست که کلان داده راه حلی برای آن به شمار می رود.[3]
- حجم: 6 حجم داده های تولید شده در سازمانها و حتی در ترافیک وب بطور سرسام آوری روبه افزایش است تا جاییکه پیش بینی می گردد تا 2020 این حجم به 10 زتابایت در جهان برسد. این افزایش حجم با توجه به گسترش اینترنت و تلفنهای همراه و ساختارهای داده ای توزیع شده صورت می گیرد.
- نرخ تولید:7 انواع مختلف داده ها در دستگاهها و رسانه های مختلف پردازش اطلاعات، تولید می گردد که گستره این انواع داده از متن تا JSON و XML و انواع مختلف فایلهای متنی، صوتی، تصویری، ویدئویی و ... می باشد که بسیاری از اینها در شبکه های اجتماعی بطور گسترده توسط کاربران تولید و اشتراک گذاری می گردند. بحث ذخیره سازی و بازیابی سریع این اطلاعات، یک چالش مهم در مدیریت داده ها می باشد.
- صحت: 8 باتوجه به تنوع منابع تولید داده در فضای تبادل اطلاعات بالاخص اینترنت و شبکه های اجتماعی، کلیه داده های تولید شده، حاوی اطلاعات قبل اعتماد نیستند و نیاز به انجام یک پالایش در داده ها جهت تایید صحت و قابل اعتماد بودن هریک از آنها وجود دارد. به عنوان مثال زمانیکه یک نظرسنجی اینترنتی برگزار می گردد می بایست از صحت و قابل اطمینان بودن IP های شرکت کننده در نظرسنجی مطمئن شویم.
- اعتبار:9 حتی اگر داده تولید شده صحیح باشد ممکن است برای برخی کاربردها مناسب تشخیص داده نشود. به عنوان مثال یک عکس که قرار است در پروفایل یک کاربر قرر گیرد می بایست یک محدوده مشخص از حجم را رعایت کند.
- نوسان:10 در شرایطی که داده ها دارای ارزشهای متفاوت باشند و سرعت تغییر این ارزشها نیز بالا باشد بحث نوسان داده ها مطرح می گردد. مثلا زمانیکه می خواهیم یک مطلب با بیشترین لایک کاربران یک شبکه اجتماعی را تعیین کنیم این مورد به سرعت ممکن است تغییر کند یا در بحثهایی مانند تحلیل بورس این چالش بسیار مشهود است. نگهداری داده ها در بازه زمانی طولانی در این سیستم ها معقول نیست و در بازه کم نیز نیاز به رصد مداوم تغییرات وجود دارد.
- نمایش: 11 اینکه بتوانیم حجم گسترده داده را بصورت قابل فهم و درک برای کاربران ارائه دهیم. به عنوان مثال گزارشی قابل درک از فعالیتهای یک کاربر یا دوستانش در یک شبکه اجتماعی به او ارائه دهیم یا یک نمایش سه بعدی از نوسانات بازار بورس داشته باشیم.[4]
- ارزش: 12 باتوجه به حجم بالای داده های نگهداری شده در فناوری کلان داده، بررسی اینکه نگهداری هریک از داده ها بر اساس هزینه اش از نظر زمان، حافظه و بار پردازشی مقرون به صرفه است می باشد یا خیر و در ازای این هزینه آیا اطلاعات مفیدی از آن استخراج می گردد یک مساله بسیار مهم می باشد.
-3 رویکردهای پایگاهی
هنگامیکه از رویکرد پایگاهی درخصوص کلان داده صحبت می کنیم، می بایست بدانیم اساس تشکیل یک ساختار پایگاهی که فناوری کلان داده را پشتیبانی می کند مقیاس پذیری افقی است به این مفهوم که امکان توزیع امن داده ها روی سیستم های متعدد وجود داشته باشد. مساله دیگر امکان ایجاد نسخه های کپی از داده ه به منظور بالا بردن قابلیت اطمینان و همچنین به روز بودن نسخه ها جهت تامین صحت نتایج جستجوست. باتوج به موارد ذکر شده بدیهی است که ساختارهای رابطه ای سنتی برای برآورده کردن چنین نیازهایی پاسخگو نیستند.
علاوه بر آن زبانی مانند SQL برای تامین خواسته های مذکور مناسب نمی باشد زیرا اساس عملکرد سیستم رابطه ای وجود یک کنترل متمرکز است و جدول که عنصر ساختاری این مدل در پیاده سازیست معمولا پس از ایجاد، انعطاف چندانی برای تغییرات عمده در طراحی آن ندارد و لذا مقیاس پذیری افقی به عنوان اولین ضرورت قابلیت تحقق عملی به صورت مناسب ندارد.
همچنین زبان SQL که براساس عملگرهای رابطه ای مانند پیوند عمل می کند در ساختاری که توزیع شدگی یک اصل اساسی محسوب می گردد به دلیل صرف زمان و حافظه بالا عملا کارایی خود را از دست می دهد. بنابراین جهت ایجاد یک پایگاه داده برای مدیریت کلان داده، باید رویکردهای متفاتی نسبت به ساختار رابطه ای در نظر گرفت. چهار رویکرد عمده در این زمینه عبارتند از : ساختارهای کلیدمقدار، اسنادی، توزیع شده و گرافی. در ادامه به بررسی هریک از این ساختارها و معرفی ابزارهای پیاده سازی آنها می پردازیم.
-1-3 کلید مقدار
دراین ساختار پایگاه داده، یک جفت داده ذخیره می گردد که قسمت اول کلید می باشد و یک مقدار منحصر به فرد جهت دسترسی به داده است.