گوگل چگونه اطلاعات حجیم خود را مدیریت می کند؟ Big Data یک

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

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

تاریخچه مدیریت داده ها

مقوله مدیریت داده ها سه موج اصلی دارد که در این قسمت آنها را بیان می کنیم:

موج اول – تولید یک ساختار قابل مدیریت برای ذخیره و بازیابی داده ها

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

با گذشت زمان و در اواسط دهه هفتاد میلادی که اهمیت اطلاعات برای صاحبان مشاغل مشخص تر شد، مدل رابطه ای و RDBMS ها یا Relational Database Management System ها وارد بازار شدند. این سیستم ها دارای روشی نظام مند، ساده و استاندارد برای مدیریت داده های یک سازمان بود. از آن زمان بود که زبان SQL پا به عرصه گذاشت؛ و درپی آن گزارشها و ابزارهای مدیریت داده بوجود آمدند تا نیازهای جدیدی که در زمینه ذخیره و بازیابی داده ها پیش می آمدند را پاسخگو باشند. با افزایش امکانات و تکنولوژی ها در این زمینه کمپانی ها نیز نیاز خود را توسعه دادند. برای مثال آنها می خواستند میزان سفارش و نیازهای مشتریان ر ا بیابند تا برای آینده کمپانی خود تصمیم بگیرند. از طرفی میزان داده های ذخیره شده روی پایگاه های داده نیز به شکل تصاعدی افزایش می یافت.

لذا نیاز فوری به تکنولوژی هایی داشتیم که مدل رابطه ای را تکمیل و پشتیبانی کند. در هیمن موقع مدل ER (Entity-Relation) ظهور یافت. در این مدل هر موجودیت به صورت جداگانه در قالب یک جدول یا رابطه تعریف می شود. بنابراین توسعه دهنده ساده تر رابطه ها را ایجاد می کند و موجودیت های جدید به مدل اضافه می کند. این امر یک پیشرفت بزرگ بود و توانست توسعه دهندگان را برای تولید DB ها و مدل های وسیعتر تشویق کند.هنگامی که حجم داده ها از کنترل خارج شد این بار Data Warehouse به دادمان رسید. از آنجا که داده ها بسیار حجیم و بی شمارند Data Warehouse اقدام به جداسازی قسمتی از این اطلاعات می کند که برای ما کاربرد داشته باشد و آنگاه با همین داده های محدودی که برای ما جدا کرده کار می کنیم و آنها را تحلیل می کنیم. Data Warehouse به سازمان ها اجازه می دهد داده ها را به صورت ساختاریافته ای و به سرعت ذخیره کرده و با همان سرعت هم برای انجام تحلیل و آنالیز بازیابی کند. Data Warehouse اطلاعات سالهای گذشته را ذخیره می کند تا کارائی سازمان، الگوی رفتاری و فعالیت های آنرا در طول سنوات مختلف تحلیل و براورد کند.

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

موج دوم – مدیریت محتوای وب

واقعیت این است که اکثر داده ها در جهان واقعی، غیرساختیافته اند. برخلاف اینکه بیشتر شرکت ها بر اطلاعات ساخت یافته تمرکز کرده اند، شرکت های پیش تاز در دهه هشتاد میلادی سیستم هایی را با نام Enterprise Content Management System ارائه دادند تا بتواند تمام اطلاعات سازمان از جمله اسناد را مدیریت کند.با ظهور اینترنت در دهه نود آیتم های جدیدی وارد عرصه شدند اینترنت منابع مختلفی مانند متن، عکس، فیلم و موسیقی داشت. شرکت های اینترنتی و به خصوص موتورهای جستجو نیاز شدیدی به ذخیره، مدیریت و دسته بندی این فایل ها به شکل منطقی داشت. پس از آن نیز مجازی سازی و پردازش ابری پا به عرصه ظهور نهادند؛ و زمینه ها برای مفهوم Big Data فراهم شد.

موج سوم- مدیریت اطلاعات حجیم

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

همین امر موجب ظهور مفهوم Big Data و اهمیت بیش از پیش آن شد. اگر کمپانی ها بتوانند حجم وسیعی (مثلا یک پتابایت) از اطلاعات را ذخیره و مدیریت کنند و الگوها و آنومالی ها را در آن بیابند، می توانند داده ها را به روش جدیدی معنی کنند. Big Data نه تنها به کسب و کار کمک کرده بلکه در علم و تحقیقات، حکومت ها و دیگر زمینه های بشری بسیار مفید بوده. مثلاً پروژه تحلیل ژنوم انسان را در نظر بگیرید، یا تحلیل اطلاعاتی که از فضا به دست ما میرسند و موجب شناخت بیشتر ما از فضا می شوند.با نگاهی به نیازمندی‌های مقیاس پذیری یکی از شبکه‌های اجتماعی به راحتی می‌توانیم به این امر واقف شویم، که نیاز فوری برای مدیریت داده های حجیم وجود دارد؛ این نیازمندی‌ها عبارتند از:

  • 570 میلیون مشاهده صفحات در ماه
  • آپلود بیش از سه میلیارد عکس در ماه
  • پردازش و ارائه بیش از 1,2میلیون عکس در ثانیه
  • ارائه 25 میلیون نوع محتوا که با استفاده از ۳۰ هزار سرور انجام می‌پذیرد.

Big Data چیست؟

Big Data یک تکنولوژی مفرد نیست، بلکه مجموعه ای از تکنولوژی ها برای کمک به کمپانی ها در جهت ذخیره و مدیریت اطلاعات حجیم آنهاست. در واقع توانایی مدیریت حجم عظیمی از اطلاعات ناهمگن و نامتجانس با سرعت قابل قبول و برای آنالیز فوری را Big Data گویند.

مشخصه های اصلی Big Data

Big Data شامل انواع داده های ساخت یافته و غیرساخت یافته (مانند ایمیل، عکس، سند یا پستی در یک شبکه اجتماعی) است. Big Data معمولاً سه مشخصه اصلی دارد:

  1. حجم: چه حجمی از اطلاعات قرار است ذخیره شود.
  2. سرعت: با چه سرعتی می خواهیم داده ها را پردازش کنیم.
  3. تنوع: چند نوع داده و چند منبع اطلاعاتی داریم.

اما این نکته را ذکر کنم که لازم نیست Big Data تمام این مشخصه ها را داشته باشد تا Big Data به حساب آید، داشتن تنها دو مشخصه کافیست. مثلاً ممکن است اطلاعات ما بسیار حجیم نباشند، اما تنوع بسیار زیادی داشته و بخواهیم به صورت Real Time آنها را تحلیل کنیم؛ در این صورت بازهم باید از Big Data استفاده کنیم.

چرخه حیات Big Data

هنگامی که سعی در مدیریت حجم وسعی از اطلاعات داشته باشیم نیاز داریم تا مراحل اصلی مفهوم Big Data را طی کنیم. این مفهوم در چرخه خود دارای پنج مرحله است که در تصویر زیر می بینید.

چرخه BigData

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

معماری Big Data

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

معماری BigData

لایه اول BigData Applicatons لایه برنامه هایی است که از BigData استفاده می کنند.

لایه دوم و سوم لایه های آنالایز اطلاعات هستند که می توانند به شکل سنتی یا پیشرفته و مدرن باشند. داده کاوی در این مرحله قرار دارد.

لایه چهارم ابزارهای سازماندهی و دسته بندی اطلاعات اند.

در لایه پنجم دیتابیس قرار دارد که می تواند از هر نوعی باشد و در آینده آنها را بررسی خواهیم کرد.

لایه ششم زیربنای امنیتی است که البته در اغلب موارد بسیار حساس است.

در لایه هفتم که پایین ترین لایه است ابزارهای فیزیکی مانند سرورهای مختلف قرار دارند که البته باید Redundant باشند. یعنی اینکه در مقابل خطاها و خرابی ها تحمل پذیر باشند.

سرعت در انتخاب معماری مهم است:

برای مثال شرکت حفاری می خواهد یک چاه جدید در دریا حفر کند، این شرکت می خواهد ببیند آیا حفر چاه در منطقه مورد نظر ایمن است یا خیر. مسلما اطلاعاتی همچون شوری آب، عمق آب، دما در هر ارتفاع و هزاران مشخصه دیگر مورد نیاز است. تحلیل این اطلاعات به صورت Real Time در یک سیستم سرور سنتی روزهای متوالی از وقت ما را هدر خواهد داد اما با استفاده از یک معماری Cloud مثلاً اجرای این داده ها روی Azure یا BigTable گوگل تنها چند دقیقه از وقت ما را خواهد گرفت. انتخاب دیتابیس نیز ممکن است روی کارائی موثر باشد. برای مثال ممکن است بخواهید بدانید که رابطه لایک ها در یک صفحه از شبکه اجتماعی چه ارتباطی می تواند با فروش محصول تبلیغ شده در آن صفحه داشته باشد.

تحلیل این امر توسط یک دیتابیس رابطه ای سنتی ممکن نیست. شاید بهتر باشد از یک دیتابیس گراف استفاده کنیم؛ که معمولاً در کارهای تحقیقاتی و فنی مورد استفاده قرار می گیرد. یا در برخی موارد ممکن است بخواهیم از پایگاه داده ستونی استفاده کنیم که داده ها را برخلاف پایگاه های داده رابطه ای به صورت ستونی ذخیره می کند. این پایگاه داده سرعت بسیار زیادی در ورود و خروج اطلاعات دارد. یا هنگامی که از داده های جغرافیایی یا مکانی استفاده می کنیم بهتر است از پایگاه های داده Spatial یا مکانی استفاده کنیم. این پایگاه داده ها اشیاء را براساس مکان و رابطه جغرافیایی آنها با یکدیگر ذخیره می کنند. خب تا همینجا کافیست! در قسمت آینده درباره پلتفرم ها و محصولات BigData ، مزایا و معایب، کاربردها و انواع پایگاه داده توضیح خواهیم داد. در قسمت اول این مقاله مقدمه ای در رابطه با BigData و مباحث مرتبط با آن ارائه دادیم. در این قسمت به ادامه موضوع خواهیم پرداخت. پس با ما همراه باشید!

نویسنده : محمود جنامی

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد


نظرات