هوش تجاری به مشاغل و سازمان ها کمک می کند تا از داده های خود سوال کنند و پاسخ آن ها را دریافت کنند. هوش کسب و کار با به تصویر کشیدن اطلاعات به مدیران کمک می کند تا تصمیماتی بهتر و سریع برای پیشرفت کار خود بگیرند تا به اهداف خود نزدیک تر شوند.
دریاچه داده یا Data Lake چیست؟
جهان دیجیتالی هر سال بیشتر از قبل در حال توسعه است. حداکثر ۹۰ درصد از دادهها، غیر ساختاری یا نیمه ساختار یافته هستند و باعث ایجاد یک چالش دوگانه میشوند: اول این که شما باید راهی برای ذخیرهی همهی این دادهها پیدا کنید و دوم این که باید دادهها را حفظ کرده و ظرفیت پردازش سریع آنها را فراهم کنید. در این جا، استفاده از دریاچه داده (Data Lake) میتواند یک انتخاب عالی باشد. در ادامه، درباره این ابزار و مزیتهای آن صحبت خواهیم کرد.
تعریف دریاچه داده یا Data Lake
دریاچه داده یک مخزن ذخیره سازی مرکزی است که کلان دادهها را از منابع مختلف در فرمت خام و دست نخورده ذخیره میکند. Data lake میتواند دادههای ساختار یافته، نیمه ساختار یافته یا بدون ساختار را ذخیره کند.
به این معنی که دادهها میتوانند در یک فرمت قابل تغییر برای استفادههای بعدی نگهداری شوند. زمانی که دریاچهی داده در حال ذخیرهی دادهها است، برای بازیابی سریعتر آنها به هرکدام شناسه و tag های فرا داده (metadata) متصل میکند.
جیمز دیکسون (James Dixon) مدیر ارشد سابق فناوری پنتاهو (Pentaho) اصطلاح “دریاچه داده” را ابداع کرد و اظهار داشت که دادههایی که در یک دریاچه داده هستند، نسبت به دادههای پاک سازی شده و پردازش شدهای که در سیستمهای انبار دادهی سنتی وجود دارند، بسیار قابل دسترس و کاربردی هستند. دریاچههای داده معمولاً بر روی مجموعهای از سخت افزارهای ارزان قیمت و مقیاس پذیر، پیکربندی میشوند که این اجازه را میدهد تا دادهها در دریاچه انباشته شوند و در صورت نیاز بعدا بدون نگرانی در مورد ظرفیت ذخیره سازی استفاده شوند. این مجموعه از دادهها میتوانند به صورت on-premise یا ابری وجود داشته باشند.
گاهی اوقات دریاچههای داده با انبارهای داده اشتباه گرفته میشوند. با این حال تفاوتهای آشکاری با هم دارند که میتواند منافع زیادی برای سازمانها به ارمغان بیاورد. Data Lake همچنین میتواند برای کلان داده و پردازشهای آنها مفید باشد و کلان دادهها را از یک محیط on-premise به فضای ابری منتقل کند.
دریاچه داده بر اساس اصولی به نام خواندن با ساختار (schema-on-read) کار میکند. این بدان معناست که هیچ طرح (schema) از پیش تعیین شدهای وجود ندارد که دادهها قبل از ذخیره سازی به آن نیاز داشته باشند. فقط زمانی که دادهها در حین پردازش خوانده میشوند، تجزیه و تحلیل میشوند و در صورت لزوم داخل یک طرح (schema) تطبیق داده میشوند. این ویژگی زمان مصرف شده روی تعریف کردن طرح (schema) را به حداقل میرساند و باعث میشود که دادهها به همان شکلی که هستند در هر فرمتی ذخیره شوند.
دانشمندان داده میتوانند با استفاده از دریاچههای داده سریعتر و با دقت بیشتری به دادهها دسترسی پیدا کرده، آنها را آماده کرده و تجزیه و تحلیل کنند. این مجموعهی گستردهی دادهها که در فرمتهای مختلف غیر سنتی موجود هستند، به کارشناسان تحلیلگر اجازه میدهند تا به دادهها برای موارد مختلفی مانند تجزیه و تحلیل احساسات یا تشخیص کلاهبرداری (fraud detection) دسترسی پیدا کنند.
مقایسهی دریاچه داده و انبار داده
دریاچه داده و انبار داده یک هدف پایهای و اساسی دارند و این باعث میشود تا افراد آنها را با هم اشتباه بگیرند:
- هر دو مخزن ذخیره سازی هستند که دیتا استورهای مختلف را در یک سازمان ادغام میکنند.
- هدف هر دوی آنها ایجاد یک دیتا استور (data store) است که خدمات مختلف را یکجا ارائه میکند و اطلاعات را روی اپلیکیشنهای مختلف قرار میدهد.
با این حال، تفاوتهای اساسی بین Data Lake و انبار داده وجود دارد که باعث میشود تا آنها برای فرآیندهای متفاوتی استفاده شوند:
- خواندن با ساختار و نوشتن با ساختار (Schema-on-read vs schema-on write): طرح یا اسکیمای یک انبار داده قبل از ذخیره سازی تعریف و ساختار یافته میشود (طرح و اسکیما هنگام نوشتن دادهها اعمال میشود). در مقابل یک دریاچه داده، هیچ طرح و برنامهی از پیش تعیین شدهای ندارد تا به آن اجازه دهد که دادهها را در فرمت اصلی خود ذخیره کند. بنابراین، در انبار داده اکثرا آماده سازی دادهها معمولاً قبل از پردازش اتفاق میافتد ولی در Data Lakes هنگامی که دادهها واقعاً مورد استفاده قرار بگیرند، آماده سازی میشوند.
- دسترسی کاربری ساده و پیچیده: از آنجا که دادهها قبل از ذخیره سازی به شکل ساده شده سازماندهی نشدند، یک دریاچه داده اغلب نیاز به یک متخصص با درک کامل انواع مختلف دادهها و روابط آنها دارد تا بتواند آنها را بخواند. در عوض یک انبار داده به دلیل طرح و اسکیمای مستند خود و به دلیل این که به خوبی تعریف شده، هم برای کاربران فناوری و حتی افراد غیر فناوری نیز قابل دسترسی است. حتی یک عضو جدید در تیم میتواند به سرعت از انبار استفاده کند.
- انعطاف پذیری و غیر قابل تغییر بودن: در انبار دادهها نه تنها تعریف طرح یا schema زمان میبرد، بلکه در صورت تغییر موارد مورد نیاز منابع زیادی باید اصلاح و بهبود یابد. با این حال، دریاچههای داده میتوانند به راحتی با تغییرات سازگار شوند. همچنین، با افزایش نیاز به ظرفیت ذخیره سازی، مقیاس گذاری سرورها در یک مجموعه دریاچه داده آسانتر میشود.
کدام یک بهتر است؟ دریاچههای داده در فضای ابری یا به صورت درون سازمانی (on-premise)؟
دریاچههای داده به طور سنتی به صورت on-premise اجرا میشوند و با ذخیره سازی بر روی HDFS و پردازش (YARN) بر روی خوشههای هدوپ (Hadoop) عملکرد خود را ادامه میدهند. Hadoop مقیاس پذیر و کم هزینه است و به خاطر مزیتی که data locality نامیده میشود، عملکرد خوبی را ارائه میدهد. Data Locality فرآیندی است که در آن محاسبات به سمت مکانی که دادههای حقیقی وجود دارند، حرکت میکنند.
با این حال، ایجاد زیرساختهای درون سازمانی (on-premise) چالشهایی هم با خود به همراه دارند:
- راهاندازی: تهیه سخت افزار و راه اندازی مراکز داده کار سادهای نیست و ممکن است هفتهها یا ماهها طول بکشد.
- مقیاس پذیری: در صورت نیاز به افزایش ظرفیت ذخیره سازی باید زمان و تلاش زیادی صرف کرد، چون به فضای بیشتر و تایید هزینه از طرف مدیران ارشد نیاز است.
- تخمین پیش نیازها: چون مقیاس پذیری به صورت on-premise کار آسانی نیست، برآورد صحیح موارد مورد نیاز سخت افزاری در ابتدای پروژه مهم میشود. از آنجایی که دادهها هر روز به طور نامنظم و غیر اصولی افزایش مییابند، دستیابی به این مورد دشوار است.
- هزینه: ثابت شده است که برآورد هزینهها به صورت on-premise بیشتر از گزینههای ابری است.
ازسوی دیگر، دریاچههای داده ابری به غلبه بر این چالشها کمک میکنند. دریاچه داده در فضای ابری مزایای زیادی دارد. در زیر به چند نمونه اشاره میکنیم:
- دریاچه داده در فضای ابری باعث میشود راحتتر و سریعتر شروع به کار کنید. فضای ابری به کاربران امکان میدهد تا به صورت تدریجی شروع به کار کنند.
- با استفاده از مدل pay-as-you-use مقرون به صرفه است.
- راحتتر مقیاس گذاری میشود و بنابراین استرس برآورد کردن نیازها و تأیید را از بین میبرد.
چالشهای Data Lakes در فضای ابری
البته استفاده از دریاچه داده در فضای ابری چالشهایی هم با خود به همراه دارد. برخی از سازمانها ترجیح میدهند به دلیل خطرات امنیتی اطلاعات محرمانه و حساس را در فضای ابری ذخیره نکنند. با این که اکثر فروشندگان دریاچه دادههای مبتنی بر فضای ابری امنیت آن را تضمین میکنند و لایههای محافظتی خود را در طول این سالها افزایش دادند اما، سازمانهای زیادی هستند که به امنیت این فضا اطمینان ندارند.
چالش اساسی دیگر این است که برخی از سازمانها در حال حاضر یک سیستم انبار داده مستقر برای ذخیره دادههای ساختار یافته خود دارند. آنها ممکن است انتخاب کنند که همهی آن دادهها به فضای ابری منتقل شوند یا یک راه حل ترکیبی را با یک موتور محاسبه رایج که به دادههای ساختار یافته از انبار و دادههای بدون ساختار از فضای ابری دسترسی دارد، پیدا کنند.
مدیریت دادهها یکی دیگر از نگرانیها است. یک دریاچه داده نباید تبدیل به یک باتلاق داده شود که عبور از آن دشوار است. پلتفرم Talend به شما اطمینان میدهد که دریاچههای داده پاک سازی شده و در دسترس هستند.
معماری دریاچه داده: آمازون وب سرویس (AWS)، هادوپ (Hadoop)، آزور (Azure)
باید به خاطر داشته باشید که در یک Data Lake دو بخش وجود دارد: ذخیره و محاسبه. هم ذخیره سازی و هم محاسبه میتوانند به صورت on-premise یا در فضای ابری قرار بگیرند. این باعث میشود ترکیبات مختلفی هنگام طراحی معماری دریاچه داده ایجاد شود.
سازمانها میتوانند به طور کامل شیوهی on-premise را انتخاب کنند و کل معماری را به فضای ابری انتقال دهند و چندین فضای ابری یا حتی ترکیبی از این گزینهها را انتخاب کنند. در اینجا هیچ دستور العمل واحدی نیست و بسته به نیازهای یک سازمان چندین گزینه خوب وجود دارد.
دریاچههای داده در هدوپ (Hadoop)
افراد بسیاری Hadoop را با دریاچههای داده مرتبط میدانند. هدوپ مجموعهای از سرورهای توزیع شده است که به شما اطمینان میدهد که کلان دادهها فضایی برای ذخیره شدن دارند. در هستهی هدوپ یک لایه ذخیره سازی به نام HDFS که مخفف Hadoop Distributed File System است، وجود دارد و دادهها را در سرورهای مختلف ذخیره و کپی میکند. YARN مدیریت کنندهی منابع است که تصمیم میگیرد چگونه منابع را در هر گره برنامه ریزی کند. MapReduce مدل برنامه نویسی است که توسط Hadoop برای تقسیم دادهها به زیر مجموعههای کوچکتر و پردازش آنها در خوشهی سرورهای خود استفاده میشود.
به غیر از این سه بخش اصلی که برای شما بیان کردیم، اکوسیستم Hadoop شامل چندین ابزار تکمیلی مانند Hive ،Pig ،Flume ،Sqoop و Kafka است که به تصویر کشیدن، آماده سازی و استخراج اطلاعات کمک میکند. دریاچههای دادهی Hadoop را میتوان به صورت on-premise و همچنین در فضای ابری با استفاده از سیستم عاملهای سازمانی مانند Cloudera و HortonWorks راه اندازی کرد.
مزایای هدوپ (Hadoop)
- افراد فنی بیشتری نسبت به هدوپ آشنایی دارند.
- ارزان تر است چون منبع باز (open-source) است.
- بسیاری از ابزارهای ETL برای ادغام با Hadoopدر دسترس هستند.
- مقیاس گذاری در آن آسان است.
- به علت فرآیند Data Locality محاسبه سریعتر انجام میشود.
کاربرد Data Lakes
دریاچههای داده با قابلیت سرعت و تنوعی که دارد مورد پسند کاربران هوش تجاری قرار گرفتند. با استفاده از Data Lakes فرصتی برای ترکیب دادههای پردازش شده با subjective data موجود در اینترنت، وجود دارد.
برای تعیین الگوهای علل بیماریها میتوان دادههای ماشینی مانند اشعه ایکس و اسکن MRI را غربال کرد. در اپلیکیشنهای اینترنت اشیا (IoT application) حجم عظیمی از دادههای حسگر را میتوان با سرعت باورنکردنی پردازش کرد. صنعت خرده فروشی قادر است با استفاده از دادههای فراوان استخراج شده در مورد کاربر یک تجربه همه جانبه را ارائه دهد.
دریاچههای داده نه تنها در برنامههای تحلیلی پیش بینی کننده پیشرفته هستند، بلکه در گزارش منظم سازمانی به ویژه هنگامی که شامل فرمتهای مختلف داده است، مفید اند.