عنوان مقیاس پذیری تجزیه و تحلیل داده از گذشته تا کنون (2)
نوع منبع مقاله
گروه تجزیه و تحلیل
تاریخ انتشار ۲۸ / ۱۲ / ۱۳۹۴
خلاصه بررسی سیر تحولات مقیاس پذیری محیط های تجزیه و تحلیل داده از گدشته تاکنون ، امکان انتخاب و استفاده بهینه از فناوری های موجود را با دانش عمیق تری فراهم می نماید . بدین منظور ، ضمن اشاره به ضرورت تجزیه و تحلیل داده به نقش کامپیوتر در تحلیل داده ، همگرایی محیط های داده و تجزیه و تحلیل و تلاش های گسترده انجام شده از گذشته تاکنون به منظور مقیاس پذیری محیط های تجزیه و تحلیل نظیر سیستم های MPP ، رایانش ابری ، رایانش شبکه ای و در نهایت MapReduce اشاره می شود . جمع آوری و یکپارچگی داده به تنهایی ارزشی را تولید نخواهد کرد و ما نیازمند بکارگیری پلت فرم های مناسب تجزیه و تحلیل داده به منظور خلق ارزش می باشیم که قادر به پاسخ گویی به نیاز فعلی و آینده باشند.

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

رایانش ابری ( cloud computing )
چندین سال است که  مفهوم رایانش ابری در کانون توجه بسیاری از علاقه مندان حوزه فناوری اطلاعات می باشد و اغلب کارشناسان و متخصصین این حوزه به دنبال یافتن پاسخی مناسب  به این پرسش هستند که چگونه می توان از این فناوری به بهترین شکل ممکن در کسب و کار خود استفاده نمایند . با توجه به هدف این نوشتار ، ما به دنبال پاسخ به این پرسش هستیم که محیط های ابری چگونه می توانند یک بازیگر مهم در تجزیه و تحلیل داده باشند .همانند بسیاری از فناوری های جدید و نوظهور ، ارایه یک تعریف جامع در رابطه با رایانش ابری ممکن است اختلاف نظراتی وجود داشته باشد . ما در ادامه به دو تعریف اشاره می کنیم تا با استناد به آنها بتوانیم جایگاه رایانش ابری در مقیاس پذیری محیط های تجزیه و تحلیل را به درستی و با دقت بررسی کنیم . یک محیط ابری در شکل 1 نشان داده شده است .

 محیط رایانش ابری
  شکل 1 : رایانش ابری
 
اولین تعریف از مقاله مکنزی و Company در سال 2009 آورده می شود ( Clearing the Air on Cloud Computing, March 2009 ). در این مقاله به سه معیار یک محیط ابری اشاره شده است :
  •  سازمان ها و شرکت ها متحمل هیچ گونه هزینه  سرمایه گذاری و یا زیرساختی نمی شوند و صرفا هزینه های عملیاتی را پرداخت خواهند کرد که به نوع استفاده از محیط ابری بستگی دارد .
  • ظرفیت می تواند به صورت پویا کم و یا زیاد شود . معیار فوق ، یکی از شاخص های متمایز بین ارایه دهندگان سرویس هاستینگ و محیط های ابری است که ممکن است درگیر محدودیت هایی در زمان رشد و یا ارتقاء گردند .
  •  سخت افزار موجود در لایه زیرساخت از لحاظ جغرافیایی می تواند در هر مکانی باشد و جزییات معماری از دید کاربران ، پنهان خواهد بود . سازمان های متعدد می توانند از زیرساخت مشابهی بطور همزمان استفاده نمایند . 
تعریف دوم ازNIST  ( برگرفته شده از National Institute of Standards and Technology )  ارایه می شود . NISIT ، پنج ویژگی ضروری را برای یک محیط ابری ذکر کرده است :
  • تقاضا به صورت سلف سرویس
  •  دسترسی به شبکه گسترده
  •  ادغام منابع
  • انعطاف پذیری سریع
  • سرویس های  اندازه گیری شده
محیط های ابری را می توان به دو نوع متداول ابرهای عمومی و ابرهای خصوصی تقسیم کرد . شکل 2 ، ابرهای عمومی در مقابل ابرهای خصوصی را نشان می دهد .آشنایی با ویژگی هر یک می تواند به سازمان ها در انتخاب یک محیط مطلوب و بهینه برای تجزیه و تحلیل داده کمک نماید . 

 ابرهای عمومی در مقابل ابرهای خصوصیی
  شکل 2 : ابرهای عمومی در مقابل ابرهای خصوصی

ابرهای عمومی
ابرهای عمومی نیازمند توجه و تلاش بیشتری می باشند . با استفاده از یک ابرعمومی ، کاربران  داده خود را درون یک سیستم میزبان بارگذاری کرده و در ادامه منابع مورد نیاز جهت استفاده از داده  به آنها اختصاص داده می شود و بر اساس میزان مصرف شارژ خواهند شد . ابرهای عمومی دارای مزایای متعددی می باشند :
  • پهنای باند بر اساس نیاز خواهد بود و کاربران تنها هزینه چیزی را پرداخت می نمایند که از آن استفاده کرده باشند .
  • دلیلی وجود ندارد که یک سیستم با حداکثر ظرفیت را خریداری کرد و در ادامه آن را با حداقل ظرفیت بکارگرفت .
  • در صورت نیاز به امکانات بیشتر جهت پردازش ، می توان به سرعت نسبت به تامین آن با پرداخت هزینه های مربوطه در زمان خود اقدام کرد .
  • امکان راه اندازی و بهره برداری از محیط ابری به سرعت فراهم می شود و کاربران پس از بارگذاری داده می توانند کار تجزیه و تحلیل داده را شروع نمایند .
  • امکان به اشتراک گذاشتن داده با دیگران صرفنظر از مکان آنها فراهم می گردد چراکه یک ابرعمومی در مکانی خارج از فایروال یک سازمان تعریف می گردد و هر کاربری می تواند دارای مجوز لازم جهت ورود به محیط ابری ایجاد شده باشد . 
محیط ابرهای عمومی دارای محدودیت هایی نیز می باشند.
  •  معمولا ، تضمین عملکرد اندکی در یک ابر عمومی وجود دارد .هر تعداد از کاربران می توانند به هر اندازه درخواست برای منابع مشابه را در یک زمان مشابه ارسال نمایند. رویکرد فوق می تواند مستقیما" و یا غیرمستقیم بر روی عملکرد محیط ابری تاثیرگذار باشد . البته می توان با پرداخت هزینه های بیش تر از یک سرویس دهنده ابری اختصاصی استفاده کرد .
  • با توجه به ماهیت یک ابرعمومی تا زمانی که یک job  بر روی ابر عمومی ارسال نشود نمی توان با قاطعیت از مدت زمانی که صرف اجرای آن می گردد ، اظهار نظر کرد .شاید بتوان بر اساس شرایط قبلی برآوردهایی داشت ولی در عمل تضمینی وجود ندارد که بتوان شرایط قبلی را دقیقا در اجرای جدید مشاهده کرد .
  •  نگرانی هایی در خصوص امنیت داده وجود دارد. با این که برخی ممکن است استدلال کنند که وزن نگرانی ها با آن چه که در عالم تئوری بیان می شود ، مشابه نیستند ولی به هر حال نگرانی های امنیتی یک مساله بزرگ است .
  • در صورتی که از یک محیط ابری عمومی زیاد استفاده نگردد ، هزینه چیزهایی پرداخت شده است که در عمل از آن استفاده نشده است . همچنین ، ممکن است با درخواست هایی مواجه شویم که حجم بالایی از منابع سیستم را مصرف می کنند ولی در عمل تاثیر مستقیمی بر روی هزینه ها نداشته باشند .

جایگاه استفاده از محیط ابرهای عمومی

منابع سخت افزاری یک محیط ابری قابل رشد و توسعه می باشند و می توان به سادگی و در صورت نیاز نسبت به ارتقاء آنها اقدام کرد . مثلا می توان به سادگی نسبت به افزایش تعداد پردازشگرهای اصلی ، فضای ذخیره سازی و میزان حافظه اقدام کرد و توان کامپیوتر را افزایش داد . همچنین ، می توان به سادگی با پرداخت هزینه های مربوطه در زمان خود از خدمات و توان پردازشی و عملیاتی ده ها سرویس دهنده استفاده کرد . این نوع مقیاس پذیری ، مشابه یک سیستم MPP نمی باشد . اکثر سرویس دهندگان ابرهای عمومی مستقل از یکدیگر عمل می کنند  . توان عملیاتی و فرآیندی سیستم های MPP بسیار زیاد است . این بدان معنی است که اگر یک سازمان دارای حجم زیاد و یا خیلی کم تا متوسطی از فرآیندها باشد ، یک ابر می تواند گزینه ای مناسب باشد ولی اگر ما با حجم انبوهی از فرآیندها سرو کار داشته باشیم که با قابلیت سرویس دهندگان محیط های ابری مطابقت نکند، محیط های ابری نمی توانند به عنوان یک گزینه مطلوب در دستور کار قرار بگیرند .
شاید بهترین شرایط استفاده از یک ابرعمومی ، موارد تحقیقاتی محض و کارهای پیاده سازی باشد که تنوع در عملکرد نگرانی خاصی را به دنبال نخواهد داشت . اگر کارشناسان حرفه ای تجزیه و تحلیل در حال کسب تجربه با برخی داده های جدید می باشند، محیط ابری می تواند یک گزینه فوق العاده باشد.در صورتی که امنیت داده یک نگرانی مهم و حایز اهمیت است ، استفاده از یک ابرعمومی می تواند چالش های امنیتی مختص به خود را به دنبال داشته باشد . قراردادن اطلاعات حساس در یک ابرعمومی نیازمند پیاده سازی یک طرح قوی امنیتی است . همچنین می بایست به این نکته توجه شود که با این که استفاده از یک ابرعمومی می تواند نسبت به خرید یک سیستم ارزان تر باشد ولی اگر صرفا قصد داریم تعداد بسیار اندکی از فرآیندها را بر روی محیط ابری اجراء کنیم ، یک ابر می تواند هزینه به مراتب بیشتری را در مقایسه با خرید یک سیستم برای یک سازمان به دنبال داشته باشد .

ابرهای خصوصی
یک ابر خصوصی دارای ویژگی هایی مشابه با یک ابرعمومی است  ولی مالکیت آن بطور کاملا اختصاصی در اختیار یک سازمان است و معمولا پشت یک فایروال سازمانی  قرار می گیرند. در واقع ، یک ابر خصوصی ارایه دهنده خدمات مشخص و تعریف شده ای همانند یک ابرعمومی است با این تفاوت که این خدمات صرفا در اختیار افراد و یا گروه های  درون یک سازمان قرار داده می شود . کنترل کامل بر روی داده و سیستم امنیتی آن ، یکی از مزایای مهم ابرهای خصوصی است . ابعاد امنیتی داده و روش های دستیابی به آن با وجود یک فایروال قوی و مستحکم به خوبی مدیریت خواهد شد . یکی از مسایل در ارتباط با ابرهای خصوصی ، خرید ، تجهیز و آماده سازی تمامی زیرساخت ابری مورد نیاز قبل از بکارگیری آن در عمل است که  می تواند تفکر صرفه جویی در هزینه ها را با چالش مواجه نماید چراکه در عمل ما هزینه آماده سازی چیزهایی را پرداخت می کنیم که هنوز درصد و میزان استفاده از آن در عمل مشخص نشده است . یک ابر خصوصی می تواند  در بلند مدت با فرض استفاده از آن توسط کاربران زیادی ، به مراتب ارزان تر نسبت به یک ابرعمومی باشد .

رایانش شبکه ای ( grid computing )
محاسبات شبکه ای یا رایانش شبکه ای در دو بعد هزینه و عملکرد می توانند نقش کاملا موثری در ایجاد یک محیط تجزیه و تحلیل داده داشته باشند . در مقابل داشتن یک سرویس دهنده قوی ، تعدادی از ماشین های ضعیف تر و  با قیمت پایین تر به خدمت گرفته می شوند . به عبارت دیگر ، در مقابل داشتن یک سرویس دهنده که منابع مهم خود نظیر پردازشگر و حافظه را بین چندین Job مدیریت می نماید ، کارها بر روی ماشین های مختلف توزیع می گردند تا به صورت موازی پردازش های مورد نیاز بر روی آنها انجام شود . رایانش شبکه ای ، یک مکانیزم مقرون به صرفه به منظور بهبود بهره وری و استفاده بهینه از  ظرفیت ها با بهترین کارآیی است که به سازمان ها در جهت ایجاد یک توازن بین حجم کارها ، اولویت  آنها و در نهایت پردازش تحلیلی با قابلیت در دسترس پذیری بالا  کمک قابل ملاحظه ای می نماید .
کارشناسان حرفه ای تجزیه و تحلیل داده می توانند با توجه به حجم کار خود از یک محیط رایانش شبکه ای کاملا پویا و انعطاف پذیر استفاده نمایند و متناسب با افزایش تعداد و حجم کارها از تعداد بیشتری سرویس دهنده در قالب یک شبکه یا grid جدید استفاده نمایند . استفاده صرف از یک grid در تمامی حالات یک گزینه مطلوب نخواهد بود چراکه اجرای چندین کار سنگین بر روی یک grid ، مشکلات متعددی را خصوصا از لحاظ عملکردی به دنبال خواهد داشت . از سویی دیگر ،  در صورتی که یک سازمان دارای تعداد زیادی فرآیند با ابعاد متوسط تا کوچک است، بکارگیری صرفا یک grid می تواند در اغلب موارد پاسخگو باشد . به هر حال تعداد و ماهیت کارها یک پارامتر تعیین کننده در بکارگیری تعداد grid در رایانش شبکه ای است. در رایانش شبکه ای ، هدف بکارگیری مجموعه ای از منابع کامپیوتر مستقر در چندین مکان متفاوت برای رسیدن به یک هدف مشترک  است . شکل 3 ، ساختار یک رایانش شبکه ای را نشان می دهد .
 
 رایانش شبکه ای
  شکل 3 : رایانش شبکه ای

 MapReduce 
MapReduce ، یک چارچوب برنامه نویسی موازی است و نمی توان آن را یک بانک اطلاعاتی و یا یک رقیب مستقیم برای آنها تلقی کرد . با این که کارهای زیادی وجود دارد که می توان آنها را هم در یک محیط MapReduce و هم یک بانک اطلاعاتی رابطه ای انجام داد ولی MapReduce در واقع ، یک مکمل در کنار سایر فناوری های موجود است .  MapReduce شامل دو فرآیند اولیه است که یک برنامه نویس آنها را ایجاد می کند : مرحله map و مرحله reduce . این مراحل به فریمورک Mapreduce داده خواهند شد تا در ادامه برنامه ها را به صورت موازی و بر روی مجموعه ای از گره های کاری اجرا نماید .  همانگونه که قبلا اشاره گردید ، سیستم های بانک های اطلاعاتی MPP ، داده را بین چندین گره تقسیم می کنند تا در ادامه امکان اجرای query فراهم گردد . در MapReduce با بکارگیری ماشین های مورد نیاز ، هر گره کاری اجراء کننده کد مشابه ای در رابطه با بخشی از داده است . گره های کاری فوق با یکدیگر تعامل نداشته و حتی از وجود یکدیگر نیز آگاه نمی باشند .
سرعت در تولید نتایج حاصل از تجزیه و تحلیل داده با هدف بکارگیری آنها در فرآیند تصمیم گیری یکی از نیازهای حیاتی هر بنگاه کسب و کار در عصر حاضر است .امروزه اکثر سازمان ها با گونه های متنوعی از داده غیر از داده رابطه ای سرو کار دارند . داده تولید شده توسط ماشین نظیر لاگ های وب ، داده حسگرها ، تصاویر و ... نمونه هایی در این زمینه می باشند . استخراج بینش از تمامی گونه های داده با سرعت بالا و کارآیی مطلوب یکی از اهداف مهم اکثر بنگاه های کسب و کار است .  فناوری MapReduce امکان کار بر روی داده  منابع  غیرساختیافته و یا شبه ساختیافته که شرایط تجزیه و تحلیل آنها با استفاده از ابزارهای سنتی وجود ندارد را فراهم می نماید.
برای آشنایی با نحوه عملکرد MapReduce، فرض کنید در یک پروژه  دارای 20 ترابایت داده به همراه 20 گره سرویس دهنده MapReduce باشیم . اولین مرحله ، شامل توزیع  یک ترابایت بر روی هر یک از 20 گره با استفاده از فرآیند ساده کپی فایل است( لازم است داده قبل از آغاز فرآیند MapReduce ، توزیع گردد) . در ادامه ، برنامه نویس دو برنامه را به زمانبند یا scheduler ارسال می کند . یکی برنامه Map و دیگری برنامه Reduce است . در این فرآیند دو مرحله ای ، برنامه map داده موجود بر روی دیسک را پیدا کرده و منطق مربوط به آن را اجراء می کند . این کار بطور مستقل بر روی هر یک از بیست سرویس دهنده انجام خواهد شد. نتایج مرحله map ، در ادامه به فرآیند Reduce ارسال می گردد تا پاسخ نهایی خلاصه سازی و تجمیع گردند . شکل 4 معماری MapReduce را نشان می دهد .

  معماری MapReduce
  شکل 4 : معماری MapReduce

خلاصه
بررسی سیر تحولات مقیاس پذیری محیط های تجزیه و تحلیل از گدشته تاکنون ، مهمترین هدف دو مطلب ارایه شده بود . در این مسیر ضمن اشاره به ضرورت تجزیه و تحلیل داده به نقش کامپیوتر در تجزیه و تحلیل داده ، همگرایی محیط های داده و تجزیه و تحلیل و تلاش های گسترده انجام شده از گذشته تاکنون در جهت مقیاس پذیری محیط های تجزیه و تحلیل نظیر سیستم های MPP ، رایانش ابری ، رایانش شبکه ای و در نهایت MapReduce اشاره گردید .
  • تجزیه و تحلیل داده در طول زمان با محدودیت های زیادی خصوصا در بعد میزان مقیاس پذیری مواجه بوده است . ظهور داده های عظیم باعث ایجاد توقعات جدیدی از محیط های تجزیه و تحلیل داده شده است . انتظاراتی که می بایست با اقتدار و صلابت به آنها پاسخ داده شود . 
  • تجزیه و تحلیل و محیط های مدیریت داده در حال همگراشدن با یکدیگر هستند . پردازش In-database به منظور حمایت از تجزیه و تحلیل پیشرفته ، جایگزین اغلب روش های پردازش تحلیلی آفلاین شده است .
  •  بانک های اطلاعاتی MPP ، معماری های ابری و Mapreduce جملگی ابزارهای قدرتمندی به منظور کمک در کار با حجم بالایی از داده های عظیم می باشند .
  • ابرها می تواند به صورت عمومی و یا خصوصی پیاده سازی گردند . هزینه های سرمایه گذاری اولیه و هزینه های عملیاتی دو شاخص تاثیرگذار در این رابطه می باشند.
  • کارآیی ابرهای عمومی تضمین شده نمی باشد و با توجه به این که داده خارج از کنترل مستقیم یک سازمان است ، می بایست به مسایل امنیتی با قدرت پاسخ داده شود .
  • ابرهای خصوصی انعطاف پذیری را درون یک محیط ایمن برای سازمان های بزرگ فراهم می نمایند .
  • پیکربندی شبکه ای یا مشبک ، میزان مقیاس پذیری پردازش هایی که نمی توان آنها را در یک بانک اطلاعاتی انجام داد ، افزایش می دهد.گزینه های رایانش شبکه ای در حال توسعه می باشند و به مرور توانمندی آنها نیز افزایش می یابد .
  • فریمورک MapReduce یک فناوری جدید است که امکان اجرای موازی برنامه ها را فراهم می نماید . MapReduce یک گزینه ایده آل جهت کار با داده های عظیم است .
  • بانک های اطلاعاتی رابطه ای ، محیط های ابری و فناوری MapReduce جهت کار با داده های عظیم ، امکانات متنوعی را در جهت خلق ارزش ارایه می نمایند . با تجمیع و یکپارچگی فناوری های فوق میزان اثربخشی آنها نسبت به گذشته به مراتب بهتر خواهد شد .