در این مقاله اطلاعات کاملی در رابطه با دریاچه داده یا data lake ارائه میدهیم و پس از معرفی این اصطلاح مرتبط با بیگدیتا، 5 تفاوت آن با data warehouse یا انبار دادهها را برمیشماریم.
طبق اعلام گوگل، علاقه به big data چند سالی است که رو به افزایش بوده و در دو دهه گذشته افزایش چشمگیری داشته است. هدف این مقاله معرفی یکی از کاربردیترین اصطلاحات در حوزه دادههای حجیم میباشد. در ادامه با بیان تفاوتهای دریاچه داده با انبار داده، اطلاعات شما را به منظور تصمیمگیری آگاهانه در حوزه مدیریت داده ارتقا میدهد.
متخصصین و همکاران اینگرو به عنوان یک پلتفرم جمعآوری و آنالیز داده، مطمئناً با این اصطلاح آشنایی کامل دارند، اما زمانی که بحث ارائه راهحلهای بیگدیتا و آنالیز دادههای حجیم را با مشتریان شروع میکنیم و پای اصطلاحات فنی به میان میآید، احتمالاً بسیاری از مشتریان ما تا به حال چیزی در رابطه با دریاچه داده نشنیدهاند و درک دقیقی از معنا و ماهیت آن ندارند. پس سعی میکنیم در مقالات آموزشی که در بلاگ وبسایت اینگرو ارائه میدهیم، چنین مفاهیمی را به طور کامل تشریح کنیم.
اصطلاح دریاچه داده (Data Lake) چیست؟
دریاچه داده به مخزن اطلاعاتی عظیمی گفته میشود که قابلیت ذخیرهسازی انواع دادهها با فرمتهای مختلف را دارا است. به بیانی ساده، این مخزن ذخیرهسازی شبیه به دریاچه بزرگی است که جریانهای آبی کوچک و بزرگ داده به آن ریخته میشود. این دادهها میتواند شامل دادههای تصویری، دادههای آماری کاربران، فیلمها، دادههای ساختار یافته و دادههای غیرساختار یافته و… باشد. ساخت دریاچه داده مناسب سازمانهایی است که با حجم زیادی از دادهها مواجه بوده و برنامه خاصی برای استفاده از آنها در حال حاضر ندارند. در چنین مواقعی با ذخیرهسازی انواع اطلاعات با فرمت RAW در این مخزن، میتوان در زمان مناسب به تجزیه و تحلیل دادهها پرداخت.
در DATA LAKE بر خلاف DATA WAREHOUSE هیچ محدودیتی در خصوص نوع داده ورودی وجود ندارد. چرا که دیتا لیک از محدودیتهای انبار دادهها گذر کرده و میتواند اطلاعات را در فرمت خام آنها ذخیره نماید. در مجموع میتوان گفت ساختار این بستر نسبت به انبار دادهها از انعطاف و نرمش بیشتری برخوردار بوده و ساخت آن نیز مقرون به صرفهتر مینماید. در ساختار این مخزن، به هر عنصر ورودی شناسه منحصر به فرد داده میشود و در کنار گروهی از اطلاعات فراداده برچسبگذاری میشود.
پیش از بررسی اهمیت ساخت دریاچه داده و پرداختن به نوع معماری آن، به بررسی عمده تفاوتهای data lake و data warehouse خواهیم پرداخت. این مقایسه ساده، به شناخت کامل و آشنایی با ویژگیهای اصلی این مخزن ذخیرهسازی منجر خواهد شد.
دریاچه داده با حذف محدودیتهای موجود در انبار داده، از ساختار منعطفتر و سازگارتری برخوردار است. انبار داده در مقابل Data Lake شبیه به شیشه آب پاک و آماده نوشیدن است؛ اما Data Lake، همانطور که از نام آن پیداست، چون دریاچهای بزرگ است که رودخانههای مختلف به آن ریخته میشود و از آب آن میتوان استفادههای مختلف کرد.
تفاوت عمده انبار داده با دریاچه داده در نحوه قرارگیری دادهها و نوع ذخیرهسازی آنها میباشد، اما اگر دقیقتر بیان کنیم، 3 تفاوت دیگر، یعنی تفاوت در پشتیبانی کاربران، انطباقپذیری با تغییرات و سرعت و کیفیت دسترسی به نتایج، جمعاً 5 تفاوت را رقم میزنند که هریک را توضیح میدهیم. همچنین جهت کسب اطلاعات بیشتر در رابطه با انبار داده پیشنهاد میکنیم مقالههای مرتبط را مطالعه نمایید.
یکی از عمده تفاوتهای انبار داده با Data Lake، محدودیت اطلاعات ورودی آن است. در واقع در انبار داده تنها اطلاعاتی قابلیت قرارگیری و ذخیرهسازی را خواهند داشت که قابل استفاده در تحلیلها باشند. اما در Data Lake چنین محدودیتی متوجه اطلاعات ورودی نبوده و از هیچ دادهای چشمپوشی نمیشود. کلیه اطلاعات با فرمتهای مختلف و خام وارد معماری Data Lake شده و بدون پالایش در کنار گروهی از دادهها قرار میگیرد.
در طول توسعه یک انبار داده، زمان قابل توجهی صرف تجزیه و تحلیل منابع اطلاعاتی، درک فرایندهای تجاری و پروفایل دادهها میشود. نتیجه، یک مدل داده بسیار ساختار یافته است که برای گزارش طراحی شده است. بخش عمدهای از این فرایند شامل تصمیمگیری در مورد اینکه چه دادههایی باید در انبار قرار گیرد، میشود. به طور کلی، اگر دادهها برای پاسخ به سوالات خاص یا در گزارش تعریف شده کاربردی نداشته باشند، ممکن است از انبار حذف شوند. این کار معمولا برای سادهسازی مدل داده و همچنین صرفهجویی در فضای ذخیرهسازی و کاهش هزینه، انجام میشود.
در مقابل، دریاچه داده همه دادهها را حفظ میکند. نه تنها دادههایی که در حال حاضر قابل استفاده هستند، بلکه دادههایی که ممکن است مورد استفاده قرار گیرند و حتی دادههایی که ممکن است هرگز استفاده نشوند، فقط به این دلیل که ممکن است روزی مورد استفاده قرار گیرند را ذخیرهسازی مینماید. این دادهها برای همیشه ذخیره میشوند تا حتی بتوان اطلاعات گذشته و قدیمی را با هدف تجزیه و تحلیل دادهها بازگردانی کرد.
دریاچه داده از انواع داده پشتیبانی میکند (تفاوت در ذخیرهسازی نوع داده)
دیگر تفاوت شاخص میان دریاچه داده و انبار داده در پیشفرض اصلی Data Warehouse یعنی تبدیل و تغییر است. کلیه اطلاعات وارد شده به انبار داده مرحله Transformation را طی خواهند کرد. در واقع در طی این فرآیند ابتدا ساختار مورد نیاز برای جایگیری دادهها ساخته میشود و سپس دادهها در ساختار مورد نظر قرار میگیرند. به این رویکرد، Schema on Write گفته میشود. اما در مقابل، در Data Lake چنین تغییری روی اطلاعات اعمال نشده و دادههای سطوح پایینتر نیز با کمترین تغییرات به دریاچه انتقال مییابند. به این رویکرد که در آن دادهها بدون در نظر گرفتن منبع و ساختار ذخیره میشوند، Schema on Read گفته میشود.
به زبان ساده، دریاچه داده قابلیت ذخیرهسازی هر نوع دادهای را فراهم میکند، در حالی که انبار اینگونه نیست و محدود به دادههای با فرمت خاص میشود.
در اکثر سازمانها، ۸۰ درصد یا بیشتر از کاربران، عملیاتی هستند. آنها میخواهند گزارشات خود را دریافت کنند، معیارهای کلیدی عملکرد خود را ببینند یا هر روز مجموعهای از دادههای مشابه را در یک فایل وارد کنند. انبار داده معمولا برای این کاربران ایدهآل است زیرا از ساختار خوبی برخوردار است، استفاده از آن آسان و قابلدرک است و بهصورت هدفمند برای رفع نیاز آنها طراحی شده است.
حدود ۱۰ درصد بعدی کاربران، تجزیهوتحلیل بیشتری روی دادهها انجام میدهند و به همین دلیل به دادههای کاملتری نیاز دارند. آنها از انبار داده بهعنوان منبع استفاده میکنند اما اغلب برای دریافت دادههایی که در انبار موجود نیستند و گاهیاوقات دادههای خارج از سازمان، به منبع اصلی دادهها رجوع میکنند. اگرچه انبار داده منبع اصلی آنهاست اما اکثر اوقات به چیزی فراتر از آن نیاز دارند.
در نهایت، چند درصد آخر کاربران تجزیهوتحلیل عمیقی انجام میدهند. آنها ممکن است بنا به شرایط منابع داده کاملاً جدیدی ایجاد کنند. آنها انواع مختلفی از دادهها را با هم ترکیب میکنند و قصد پاسخگویی به سوالات جدیدی را دارند. اگرچه امکان دارد از انبار داده هم استفاده کنند اما اغلب آن را نادیده میگیرند، زیرا به اطلاعاتی کاملتر و دقیقتر نیاز دارند.
دریاچه داده از همه این کاربران بهصورت کامل پشتیبانی میکند. چه کاربرانی که به اطلاعات کلی نیاز دارند و چه متخصصین تحلیل داده که به دادههای متنوع و گستردهتری احتیاج دارند پشتیبانی خواهند شد.
انطباق با تغییرات داده
یکی از مهمترین ایرادات انبارهای داده، مدت زمان تغییر آنهاست. در هر فرآیند بروزرسانی، بارگزاری یا تغییرات اطلاعات، زمان قابلتوجهی صرف میشود تا ساختار انبار درست شود. اما در بسیاری از فرآیندهای تجاری، نمیتوان زمان زیادی را برای دریافت پاسخ و داده مورد نظر منتظر ماند، یعنی همان نیازی که موجب پیدایش مفهوم هوش تجاری سلفسرویس شده است.
اما در دریاچه دادهها، از آنجا که همه دادهها بهصورت خام ذخیره میشوند و همیشه برای افرادی که نیاز به استفاده از آنها دارند قابلدسترس هستند، به کاربران اجازه داده میشود تا از ساختار انبار فراتر رفته و دادهها را به روشهای جدید کشف و استخراج نمایند.
توجه! اینگرو پلتفرمی را طراحی کرده که دسترسی کاربران به اطلاعات موردنیاز در یک دریاچه داده بهشکلی ساختارمند و بهسهولت انجامپذیر باشد.
دسترسی بهتر و سریعتر به نتایج
این تفاوت نتیجه چهار مورد دیگر است. از آنجا که دریاچههای داده شامل تمامی اطلاعات و انواع دادههاست که کاربران را قادر میسازد تا در لحظه تغییر و بروزرسانی دادهها به آنها دسترسی داشته باشند، از نظر سرعت و کیفیت دسترسی کاملاً برتر از انبار داده است.
امروزه کسبوکارها باید رویدادمحور باشند، اما واقعیت این است که بیشتر آنها هنوز برای این منظور آماده نیستند.
معجزهی پردازش استریم رویدادها این است که به تمام منابع دادههای شما ارتباط دارد و به طور خودکار دادهها را نرمالایز و غنی میکند و به طور اتوماتیک این الگو را بر دادهها اعمال میکند تا الگوهای “ارتباط بین دادهها” و “روند” دادهها را به صورت real-time نشان دهد.
این بدان معنی است که شما میتوانید به سرعت دادهها را با سرعتی تقریباً لحظهای بعد از ایجاد آن تحلیل کنید و میتوانید رویدادها را از چندین جریان داده و مخازن داده به هم پیوند دهید.
این امکان برای شما وجود دارد که در طول زمان الگوهایی را از وقایعی که در درون سازوکار سامانهی شما رخ میدهد کشف کنید، و یا بهتر اینکه برای اطمینان میتوانید دادههای زمینهای را از منابع مختلف اضافه کنید تا تفسیر مناسبی از رویدادها را به دست آورید و به یک دانش از رویدادها رسیده و موضوع را با منطق واقعی کسبوکارتان سازگار و یا آن را تکامل دهید و با یادگیری ماشینی (machine learning) و با رویههای مشخص اقدامات درست و لازم را در زمانهای به موقع انجام دهید.
برای این منظور به زودی متوجه خواهیم شد که برای بهرهمندی از این نتایج، کار از فرآیند استریم و ذخیرهسازی دادهها آغاز میشود.
به عنوان مثال (یا یک مصداق)، اگر شما یک خردهفروش مجازی باشید که با سامانهی استریم رویدادها کار کنید، شما میتوانید هر لحظه تشخیص دهید که مشتریان شما چقدر به خردهفروشی شما نزدیک هستند و میتوانید درک کنید که مشتریان قبلی شما چقدر در صفحات وب مرتبط با شما مشغول هستند یا نیستند و یا از لحظه ورود به پلتفرم شما تا تشکیل سبد خرید و پرداخت و یا خارج شدن از پلتفرم شما و نخریدن از فروشگاه مجازی شما چه فرایندهایی را طی کردهاند، روی هر کدام از این بخشها چه مکثی را کردهاند و …، آیا از کارتهای خرید فروشگاه شما استفاده میکنند یا با آنها کار نمیکنند؟ و یا رسانهها یا لینکهای اجتماعی شما چه تاثیری برای ورود آنها به پلتفرم شما داشته است؟
وقتی از سامانه استریم دادهها استفاده کنید به این اطلاعات به صورت بلادرنگ دست پیدا میکنید و میتوانید با یک پیشنهاد مناسب مشتریانتان را ترغیب کنید برای آمدن به فروشگاه مجازیتان و انجام یک خرید که به سود بالاتری دست پیدا کنید.
استریم دادهها در زمانیکه با انبوه دادهها روبرو هستید به شما این قدرت پیشبینی و عمل را میدهد.
سامانه استریم داده (ingrow) به شما این امکان را میدهد که رفتار نهفته در دادههای خود را به یک عمل تبدیل کنید و در جهت رسیدن به اهداف استراتژیکتان باعث افزایش و بهبود راندمان کاربران شما گردد. این ابزار این امکان را میدهد که شرایطی را تعریف کنید که به یک خرد (Wisdom) از وضعیتی که در آن هستید دست پیدا کنید و مزیت رقابتی را که دارید و یا به دنبال آن هستید را بهبود دهید.
اقدام بعدی برای بهبودی کسبوکار یادگیری ماشین (Machine learning) است اما کلید بدست آوردن این موفقیت استریم جریان رویدادها و پردازش رخدادها بصورت real-time (با هدف شناسایی بهترین اقدام بعدی) است و یادگیری و بهبود یک حلقهی بهم پیوسته است که با یادگیری از دادهها شروع میشود.
استریم رویدادها همچنین میتواند مانع از ورود حجم عظیمی از دادههای مزاحم به کسبوکارتان گردد و قادر است که آگاهانه آنها را فیلتر کند و کمک کند که آنچه برایتان مهم است را طی یک فرآیند خودکار انجام دهد.
همانطور که در نمودار زیر میبینیم (مثالی که ما از آن استفاده کردیم) نشان میدهد که چگونه پردازش استریم رویدادها میتواند به خودکارسازی فرآیندهای یک بانک کمک کند.
استریم دادهها در این بانک به اینگونه عمل میکند:
برای مثال:
استریم دادهها میتواند برای بهبود عملیات به کار رود یا در مورد چگونگی تعامل با مشتریان در هر لحظه از زمان و یا حتی برای برداشتن گامهایی برای کاهش ریسک احتمالی استفاده شود. اساساً پردازش استریم رویدادها همراه با جفت شدن با AI/ML راهی است برای تجزیه و تحلیل تمام دادههای شما که با سرعت کافی الگوهایی را شناسایی کند و بهطور خودکار اقدام نماید.
بهنظر میرسد وقت آن است که تصمیم بگیریم که برای تبدیل شدن به یک کسبوکار رویدادمحور (Event-Driven) با استریم real-time رویدادها اقدام لازم را انجام دهیم.
اینگرو (Ingrow) و ابزارهای جریان رویدادها
در حال حاضر، ما اینگرو را به عنوان ابزاری برای جریان رویدادها معرفی میکنیم. اینگرو بدون ایجاد هرگونه بار اضافی بر روی بستر شرکتها، یک پلتفرم Big-Data را برای استریم کردن و گزارشگیری از دادهها در اختیار آنها قرار میدهد. اینگرو به کاربران امکان این را میدهد که دادهها را در هر زمان و هر مکانی که نیاز دارند، ارسال، ذخیره و درخواست کنند.
با اینگرو، هر رویدادی را از اولین touchpoint و با هر رویدادی، به صورت داینامیک و بدون نیاز به مدلسازی، استریم کنید و با غنیسازی دادهها (Enrich & transform)، به مجهولات شناخته نشده و معلومات ناشناخته از طریق دادهها پی ببرید.
اینگرو با مقیاس پذیری و ذخیرهسازی دادههای ساخته شده بر روی بستر Apache Cassandra، امکان ذخیره سریع اطلاعات با حجم بسیار بالا را فراهم میکند.
اینگرو این فرایند را قابل تکرار، مقیاسپذیر و سازگار با مدل توسعه شرکتها و سازمانها کرده است.
برگرفته شده از یادداشت آلن چایت، مدیر اجرایی جریانهای رویداد IBM