آشنایی با مفاهیم مهندسی داده | 8 | دریاچه های داده توضیح دادند

منابع رایگان
با افزایش حجم داده ها و انواع سازمانهای داده با متنوع تر شدن ، انبارهای داده سنتی شروع به نشان دادن محدودیت های خود می کنند. داده های ساختاری به طور مرتب در جداول قرار می گیرند ، اما در مورد فیلم ها ، سیاهههای مربوط ، تصاویر یا اسناد JSON با قالب های غیرقابل پیش بینی چیست؟ این جایی است که مفهوم دریاچه داده بازی می شود.
در این پست ، ما بررسی خواهیم کرد که یک دریاچه داده چیست ، چگونه با یک انبار داده مقایسه می شود و چرا به سنگ بنای معماری داده های مدرن تبدیل می شود.
دریاچه داده چیست؟
دریاچه داده یک مخزن متمرکز است که برای ذخیره داده ها به شکل خام خود طراحی شده است. این که آیا داده ها مانند پرونده های CSV ساختار یافته اند ، نیمه ساختار یافته مانند JSON ، یا مانند متن یا تصاویر بدون ساختار ، دریاچه همه آن را می پذیرد. این به عنوان یک لایه همه چیز برای هر قطعه داده ای که یک سازمان ممکن است بخواهد برای تجزیه و تحلیل ، مدل های آموزشی یا بایگانی تاریخی استفاده کند ، عمل می کند.
بر خلاف یک انبار داده ، که انتظار یک طرحواره از پیش تعریف شده و ساختار سازگار دارد ، یک دریاچه داده انعطاف پذیری را در بر می گیرد. ایده این است که ابتدا داده ها را جمع آوری کرده و نحوه استفاده از آن را بعداً بفهمید-یک اصل که اغلب از آن به عنوان طرحواره خوانده می شود.
این رویکرد مهندسین داده ها و دانشمندان را قادر می سازد تا با داده هایی که هنوز مدل نشده یا تمیز نشده اند ، دسترسی و آزمایش کنند. این نوآوری را با از بین بردن محدودیت های پیش فرض در مورد نحوه نگاه داده ها تقویت می کند.
خصوصیات اصلی
در هسته آن ، یک دریاچه داده بر روی ذخیره سازی ارزان و مقیاس پذیر ساخته شده است – از نظر معمول ذخیره سازی شی مانند Amazon S3 ، Azure Data Lake Storage یا Google Cloud Storage. این سیستم ها ظرفیت ذخیره پتابیت های داده ها را بدون سربار سیستم های پایگاه داده سنتی ارائه می دهند.
از آنجا که دریاچه ها با داده های خام سر و کار دارند ، آنها هنگام نوشتن داده ها طرح های دقیق را اجرا نمی کنند. در عوض ، ساختار در زمان پرس و جو اعمال می شود. این به تیم های مختلف اجازه می دهد بسته به تحلیلی که می خواهند انجام دهند ، داده های یکسان را به روش های مختلف تفسیر کنند.
این انعطاف پذیری قدرتمند است ، اما با هزینه ای همراه است: حاکمیت چالش برانگیز تر می شود. بدون مدیریت قوی مدیریت ابرداده و فهرست بندی داده ها ، دریاچه ها می توانند به سرعت به آنچه که اغلب “باتلاق داده” گفته می شود تبدیل شود – یک مخزن به هم ریخته که حرکت یا اعتماد به نفس آن دشوار است.
دریاچه های داده در مقابل انبارهای داده
تفاوت اصلی بین دریاچه های داده و انبارهای داده در ساختار و هدف نهفته است.
انبارهای داده برای داده های ساختاری ، مدل های سرپوشیده و عملکرد مداوم بهینه شده اند. آنها به کاربران تجاری که نیاز به دسترسی قابل اعتماد به داده های تمیز و جمع شده برای داشبورد و گزارش ها دارند ، خدمت می کنند.
دریاچه های داده برای مقیاس و انعطاف پذیری بهینه شده اند. آنها از داده های خام ، از جمله سیاهههای مربوط ، خروجی سنسور و فیدهای شخص ثالث پشتیبانی می کنند و آنها را برای یادگیری ماشین و تجزیه و تحلیل پیشرفته ایده آل می کنند. در حالی که یک انبار همه چیز در مورد سؤالات از پیش تعریف شده و پاسخ های ساختاری است ، یک دریاچه در مورد اکتشاف و آزمایش است.
در عمل ، بسیاری از سازمان ها از هر دو استفاده می کنند. این دریاچه به عنوان پایه و اساس عمل می کند و همه چیز را ذخیره می کند ، در حالی که انبار در بالا به عنوان یک لایه تصفیه شده برای تجزیه و تحلیل عملیاتی قرار دارد. این معماری لایه ای مرحله ای را برای رویکردهای پیشرفته تر ، مانند Data Lakehouse ، که بعداً در این سری کشف خواهیم کرد ، تعیین می کند.
ساخت و مدیریت یک دریاچه داده
ایجاد یک دریاچه داده بیشتر از ریختن پرونده ها در ذخیره سازی است. یک دریاچه با عملکرد مناسب شامل سازمان واضح ، کنترل دسترسی و لایه های ابرداده است که توصیف می کند که هر مجموعه داده چیست ، از کجا آمده است و چگونه از آن استفاده می شود.
داده ها اغلب در مناطق سازماندهی می شوند. یک منطقه خام داده های منبع پردازش نشده را ذخیره می کند. یک منطقه مرحله بندی یا تمیز حاوی مجموعه داده های تبدیل شده و معتبر است. یک منطقه سرپرستی شامل داده هایی است که توسط تحلیلگران یا برنامه ها آماده مصرف است.
حفظ این ساختار به مدیریت سیاست های چرخه عمر ، مجوزهای دسترسی و نسب کمک می کند. ابزارهای فهرست نویسی مانند AWS Glue ، Apache Hive Metastore یا راه حل های مدرن تر مانند Amundsen یا DataHub به ردیابی آنچه در دریاچه است کمک می کند و آن را قابل کشف می کند.
پردازش موتورهایی مانند Apache Spark ، Presto یا Dremio به کاربران این امکان را می دهد تا با استفاده از SQL یا منطق سفارشی ، داده ها را مستقیماً در دریاچه پرس و جو کنند. این ابزارها پرونده های ذخیره شده در قالب هایی مانند پارکت ، ORC یا AVRO را تفسیر می کنند و ساختار را بصورت پویا بر اساس ابرداده یا طرحواره استنباطی استفاده می کنند.
چه زمانی از دریاچه داده استفاده کنید
یک دریاچه داده هنگام برخورد با حجم زیادی از انواع مختلف داده ها یا وقتی مطمئن نیستید که از داده ها استفاده می شود ، بیشترین حس را ایجاد می کند. این امر به ویژه در محیط های متمرکز بر تحقیق ، یادگیری ماشین یا ترکیب داده های تجاری سنتی با منابع کمتر معمولی مانند رسانه های اجتماعی یا سیگنال های IoT بسیار ارزشمند است.
با این حال ، اگر به داده های ثابت و سرپرستی برای گزارش دهی تجاری نیاز دارید ، یک انبار ممکن است انتخاب بهتری باشد. دریاچه های داده و انبارها نیازهای مختلفی را ارائه می دهند و درک چگونگی تکمیل یکدیگر برای ساختن یک معماری متعادل مهم است.
در پست بعدی ، ما به قالب های ذخیره سازی و فشرده سازی-بلوک های ساختاری ضروری برای ساخت دریاچه های داده و انبارها کارآمد ، مقیاس پذیر و مقرون به صرفه خواهیم پرداخت.