آشنایی با مفاهیم مهندسی داده | 7 | اصول انبارداری داده

منابع رایگان
انبارهای داده به عنوان ستون فقرات تحلیلی برای بسیاری از سازمان ها خدمت می کنند. آنها سیستم های ساخته شده هستند که داده های ساختاری را برای پرس و جو سریع و تجمع بهینه می کنند. در حالی که دریاچه های داده داده های خام و بدون ساختار را در مقیاس کنترل می کنند ، انبارهای داده ها بر ارائه مجموعه داده های تمیز و سازمان یافته به تحلیلگران ، ابزارهای BI و تصمیم گیرندگان تمرکز می کنند.
در این پست ، ما آنچه را که یک انبار داده متفاوت از سایر سیستم های ذخیره سازی ، نحوه معماری آن است ، تجزیه می کنیم و چه شیوه هایی با رشد داده ها و تجارت شما به طور کارآمد عمل می کند.
نقش یک انبار داده
در سطح بالایی ، یک انبار داده داده ها را از چندین سیستم عملیاتی جمع آوری می کند و آن را به شکلی ذخیره می کند که تجزیه و تحلیل را آسان و سازگار می کند. به جای حفر سیستم های منبع فردی – مانند سیستم عامل های فروش ، ابزارهای CRM یا تجزیه و تحلیل وب – کاربران می توانند یک انبار متمرکز را که برای بینش سرپرستی و مدل سازی شده است ، پرس و جو کنند.
این ادغام به سازمانها اجازه می دهد تا تعاریف مداوم را برای معیارها اعمال کنند ، خطر تفسیر داده های متناقض را کاهش داده و عملکرد را به طور چشمگیری برای بارهای کار تحلیلی بهبود بخشند.
در جایی که یک بانک اطلاعاتی معامله ای برای رسیدگی به بسیاری از خواندن های کوچک و سریع طراحی شده است ، یک انبار داده برای اسکن حجم های زیادی از داده ها به طور کارآمد طراحی شده است. این سیستم ها برای نمایش داده شدگان مانند “پنج محصول برتر ما در سه ماه گذشته چه بودند؟” یا “فروش منطقه ای سال گذشته چگونه بود؟”
معماری و مؤلفه ها
یک انبار داده سنتی با جدایی واضح بین محاسبات و ذخیره سازی ساخته شده است. در میراث سیستم های پیش فرض مانند Teradata یا Oracle ، هر دو کارکرد کاملاً با هم همراه بودند. در سیستم های مدرن ابر بومی مانند Snowflake یا BigQuery ، ذخیره سازی و محاسبات جدا می شوند که امکان مقیاس انعطاف پذیر تر را فراهم می کند.
هسته یک انبار طرحواره است – ساختار منطقی که نحوه سازماندهی داده ها در جداول ، روابط و سلسله مراتب را تعیین می کند. همانطور که در پست قبلی بحث شد ، این جداول اغلب از الگوهای ستاره یا برف پیروی می کنند ، با جداول واقعیت که توسط جداول ابعادی احاطه شده اند که زمینه را فراهم می کنند.
یکی از مؤلفه های اصلی یک انبار ، موتور پرس و جو آن است. این موتور برای اجرای کارآمد نمایش داده های SQL ساخته شده است ، و از قالب بندی ، پارتیشن بندی و قالب های ذخیره سازی ستونی استفاده می کند تا حتی در هنگام اسکن میلیاردها ردیف به سرعت نتایج را برگردانید.
انبارهای داده همچنین ابرداده – اطلاعاتی در مورد انواع داده ها ، روابط جدول و نسب داده را حفظ می کنند – این به کاربران کمک می کند تا به سیستم حرکت کنند و به آنها اعتماد کنند. بسیاری از سیستم عامل های مدرن همچنین ابزارهای داخلی را برای کنترل دسترسی ، نسخه سازی و طبقه بندی داده ها برای پشتیبانی از مدیریت ارائه می دهند.
بهینه سازی عملکرد: پارتیشن بندی و خوشه بندی
به عنوان مقیاس انبارها ، عملکرد پرس و جو به یک نگرانی اساسی تبدیل می شود. کافی نیست که داده ها را به سادگی ذخیره کنید-شما همچنین باید آن را به سرعت و مقرون به صرفه بازیابی کنید.
یک بهینه سازی مشترک است پارتیشن بندی، که جداول بزرگ را بر اساس زمینه ای مانند تاریخ ، منطقه یا دسته محصول به تکه های کوچکتر و قابل کنترل تبدیل می کند. هنگامی که یک پرس و جو یک فیلتر در آن قسمت را مشخص می کند ، موتور می تواند از پارتیشن هایی که مرتبط نیستند ، پرش کند و زمان اسکن را به میزان قابل توجهی کاهش می دهد.
تکنیک دیگر این است خوشه، که طرح فیزیکی داده ها را بر اساس مجموعه ای از زمینه هایی که معمولاً فیلتر شده یا به آن پیوسته اند ، سازماندهی می کند. به عنوان مثال ، سوابق فروش خوشه بندی توسط شناسه مشتری می تواند عملکرد را برای نمایش داده هایی که تاریخ خرید را بازیابی می کنند ، بهبود بخشد.
ذخیره سازی ستونی نیز برای عملکرد مهم است. بر خلاف ذخیره سازی مبتنی بر ردیف ، که تمام زمینه های یک رکورد را در کنار هم نگه می دارد ، قالبهای ستونی مانند مواردی که در BigQuery یا Redshift مورد استفاده قرار می گیرد ، هر ستون را به طور جداگانه ذخیره می کند. این امر به موتور اجازه می دهد تا فقط ستون های مورد نیاز برای پرس و جو ، کاهش I/O و سرعت بخشیدن به اجرای آن را اسکن کند.
بارگیری داده ها و الگوهای تازه سازی
دریافت داده ها به انبار به طور معمول از طریق فرآیندهای ETL یا ELT انجام می شود. این خطوط لوله داده ها را از سیستم های منبع استخراج می کنند ، تحولات را اعمال می کنند و نتیجه را در جداول انبار بارگیری می کنند.
بارگیری می تواند در دسته ها اتفاق بیفتد-به گفته ، هر ساعت یا یک بار در روز-یا در میکرو دسته هایی که مصرف تقریباً واقعی را شبیه سازی می کنند. فرکانس مناسب به نیازهای تجاری شما و قابلیت های ابزارهای ارکستراسیون شما بستگی دارد.
بارگذاری افزایشی اغلب در مورد بارگیری مجدد کامل ترجیح داده می شود. فقط با پردازش سوابق جدید یا تغییر یافته ، خطوط لوله زمان بار و هزینه های محاسبه انبار را کاهش می دهد. این امر معمولاً نیاز به ردیابی داده های تغییر از طریق مکانیسم هایی مانند Timestamps یا تغییر ضبط داده ها (CDC) دارد.
فن آوری های انبار
چندین سیستم عامل بر فضای انبارداری داده های مدرن حاکم است که هر کدام دارای نقاط قوت خود هستند.
Snowflake یک معماری کاملاً مدیریت شده و چند خوشه ای با مقیاس بندی خودکار و پشتیبانی از داده های نیمه ساختار یافته ارائه می دهد. محاسبات را از ذخیره جدا می کند و از بارهای همزمان با حداقل تنظیم پشتیبانی می کند.
Google BigQuery یک پلتفرم بدون تقاضای سرور و بدون تقاضای سرور است که در تجزیه و تحلیل موقت و مقیاس یکپارچه با تقاضای کاربر عالی است. این برای تیم هایی که می خواهند عملکرد سریع بدون مدیریت زیرساخت ها داشته باشند ایده آل است.
آمازون redshift ادغام عمیق را با اکوسیستم AWS فراهم می کند و امکان کنترل بیشتر بر پیکربندی را فراهم می کند ، که می تواند برای تیم هایی که نیازهای خاص تنظیم عملکرد دارند ، ارزشمند باشد.
هر یک از این سیستم عامل ها از ANSI SQL پشتیبانی می کنند ، با ابزارهای اصلی BI ادغام می شوند و ویژگی هایی را برای امنیت ، نظارت و مدیریت داده ها ارائه می دهند.
پیچیدن
یک انبار داده فقط مکانی برای ذخیره داده ها نیست – این سیستم ضبط برای تجزیه و تحلیل است. ساختار ، عملکرد و دسترسی آن تعیین می کند که چقدر سریع ذینفعان می توانند تصمیمات آگاهانه بگیرند.
طراحی و نگهداری یک انبار مؤثر نیاز به یک رویکرد متفکرانه برای مدل سازی ، بارگیری داده ها و تنظیم عملکرد دارد. با رشد سازمان شما ، انتظارات خود را بر روی انبار خود انجام دهید تا پیچیدگی ، مقیاس و تقاضای بینش در زمان واقعی را افزایش دهید.
در پست بعدی ، ما بررسی خواهیم کرد که دریاچه های داده با انبارها تفاوت دارند و چگونه آنها یک پایه انعطاف پذیر و مقیاس پذیر برای مدیریت حجم بزرگ انواع داده های متنوع ارائه می دهند.