بیگ دیتا "big data " چیست
مجموعه بزرگی از داده های کلان و پیچیده که با گذشت زمان به طور تصاعدی رو به افزایش بوده و حجم بسیار زیادی دارند big data است که جمعآوری، ذخیره، استخراج، پردازش و تجزیه و تحلیل اطلاعات با پیچیدگی همراه بوده پس با هر نرم افزاری نمی توان آن را پردازش کرد .
پس تا اینجا متوجه شدیم این داده های عظیم با محدودیت محاسبات و محدودیت فیزیکی رو به رو هستند پس باید از تکنیکها و ابزارهای ویژه مانند نرم افزار و الگوریتم ها و ... استفاده نمود.
برای درک بهتر به عنوان مثال شرکت گوگل با استفاده از نظریه پردازش موازی الگوریتمی به نام map reduce در سال 2009طراحی کرد . همانطور که اسم الگوریتم مشخص است از دوقسسمت map وreduce به معنی نگاشت کاهش تشکیل شده است (یک ابزاری در حوزه ی big data است)
خب map reduce راه حل دو مرحله ای برای پردازش big data است مرحله اول تابع map و مرحله دوم تابع reduce را فراخوانی میکند که البته ممکنه گاهی اوقات نیاز باشد این مراحل چندین بار تکرار شود .
سیستم ها به 2 قسمت data intensive و process intensive تقسیم میشود:
یک : "Data intensive " چالش های مربوط به ذخیره سازی دیتا و پردازش است . سیستم های مثل کافکا و هدوپ و اسپارک و با زبان هایی مثل جاوا و تا حدودی پایتون .
البته که باید بدانیم زبان تخصصی در حوزه ی بیگ دیتا scala است . این زبان تقریبا شبیه جاوا است و قابلیت موازی سازی دارد .
دوم : "Process intensive" مربوط به پردازش سنگین و زیاد است که معمولا از سیستم های چند هسته ای استفاده میکنیم .
و همینطور 2 دیدگاه در زمینه ی big data داریم :
1 دید حل مسله و الگوریتم
2 دید نرم افزاری همون کار با نرم افزار هدوپ و کافکا و... که بالاتر گفتیم
اکنون در باره ی پردازش حجم بالا از دیتا میپردازیم
Data mining
به صورت خلاصه کشف یه سری الگو و مدل از داده ها که قابلیت valid بودن و Useful مفید بودن ,unexpected غیرقابل پیش بینی , understandable قابل فهم , داشته باشد .
حال وظایف data mining :
شامل دو بخشDescriptive ( روش هایی که داده میشود و خوشه بندی میکند و یه توصیفی بهمون داده میشود ) و Predictive ( که برایمان پیشبینی میکند )
یادآوری :
معماری عادی برای پردازش دیتا , دیتا ازروی دیسک میاد رو مموری و cpu روی ان پردازش انجام میدهد .
اصل کلاسر در مبحث big data
از چندین نود محاسباتی تشکیل شده است که هرکدام از این نود های محاسباتی 1 کامپیوتر در نظر میگیریم که شامل دیسک مموری و به یک شبکه نیرو وصل است و همه ی نود های موجود به یک شبکه با سرعت بالا وصل هستند و باهم دیگر پردازش را انجام میدهند .
ویژگی اصلی که سیستم های big data باید داشته باشد قابلیت مقیاس پذیری است ( scalable ) . Scalable به معنی یه حجمی از دیتا که میتوان ان را پردازش کرد اگر 2 برابر یا 100 برابر شود این سیستم بتواند دیتا را پردازش کند . به صورت خلاصه محدود به یه حجم خاصی از دیتا نباشد .
در کل سیتم های scalable به 2 دسته تقسیم بندی میشود :
1 به صورت افقی
2 به صورت عمودی
سیستم هایی که به صورت عمودی هستند سیسم هایی هستند ک خودمان هسته ی cpu و هارد و ... را افزایش بدهیم که با محدودیت فیزیکی وافزایش هزینه ها رو به است پس در حوزه ی big data کاربرد انچنانی ندارد .
واما سیستم های که به صورت افقی scalable هستند که همان سیستم های توزیع شده هستند . دارای چندین تا کامپیوتر , که کنار هم قرار می دهیم.هرکدام از این نود ها یا کامپیوترها به یک switch وصل هستند.هرکدام از این switch ها بین 16 تا 64 تا پورت دارند . بعد از این 64 تا قابلیت اتصال سویچ دیگر نیز وجود دارد که در شکل زیر ملاحظه میکنید .
ویژگی هایی که سیستم big data ما باید داشته باشه چیست ؟
1 ویژگی تولرانسی.
2 یک واسطه به برنامه نویس داده بشود تا برنامه نویس با پیچدگی و جزئیات شبکه شدن و ... رو به رو نشه.
3 داده ها نباید جا به جا شوند : پردازش باید به سمت دیتا حرکت کند نه اینکه دیتا به سمت پردازش .
حوزه ی نوظهور big data با چالش های متعددی مانند نحوه ذخیره سازی , مدیریت و سازماندهی داده ها , نظارت بر جریان داده , در دسترس بودن داده ها , سرعت انتقال داده ها , یکپارچه سازی داده ها و چالش های امنیتی رو به رو است و همینطور این داده های کلان برای کشورها بسیار حائز اهمیت است و خیلی کشورها هزینه ی بسیار زیادی برای دستیابی به ان مصرف میکنند
جهت اجرای موفق یک پروژه مبتنی بر big data نیاز به پیاده سازی طیف وسیعی از اقدامات است .
نویسنده : طهورا شعبانی دانشجوی کارشناسی علوم کامپیوتر
استاد : دکتر مریم حاجی اسمعیلی دکترای علوم کامپیوتر از دانشگاه کینگستون لندن
منابع :
سایت sciencedirct
آموزش های محمد نظری
مقاله بیگ دیتا و رایانش ابری 2017