خوشه بندی مایع: بهینه سازی بار کار Databricks برای عملکرد و هزینه

ما در حال حاضر در دوره ای هستیم که داده ها یک مین طلایی هستند. میزان داده های ذخیره شده در فروشگاه های داده به سرعت در حال افزایش است و الگوهای نمایش داده شده برای هر مجموعه داده به سرعت در حال تغییر است. این به دلیل افزایش تعداد کاربران داده ، سیستم های خودکار و ابزارهای هوش مصنوعی است که به این مجموعه داده ها دسترسی دارند. در نتیجه ، چالش های بیشتری در حفظ سازماندهی داده ها به طور مؤثر برای اطمینان از عملکرد بهینه پرس و جو و پشتیبانی از نوشتن همزمان وجود دارد ، همه در عین حال هزینه کل مالکیت (TCO) را به حداقل می رساند.
هنگام کار با اکوسیستم های بزرگ داده مانند Databricks ، داده ها در دریاچه دلتا ذخیره می شوند. به طور سنتی ، از روشهای بهینه سازی مانند پارتیشن بندی و نظم Z برای بهبود سازمان و پرس و جو استفاده شده است. با این حال ، این روش ها محدودیت های خود را دارند. در پاسخ ، Databricks خوشه بندی مایع را معرفی کرد ، یک رویکرد انقلابی و ساده برای طرح بندی داده ها و بهینه سازی. این ویژگی نوآورانه نوید صرفه جویی قابل توجهی در هزینه و پیشرفت های عملکرد دارد.
چالش های طرح بندی داده های سنتی
پارتیشن بندی سنتی و سفارش Z می تواند برای الگوهای پرس و جو خاص مؤثر باشد ، اما آنها همچنین منجر به چالش های مختلفی می شوند ، از جمله:
داده ها: این زمانی اتفاق می افتد که داده ها به طور ناهموار در پارتیشن ها توزیع می شوند و در نتیجه برخی از پارتیشن ها به طور قابل توجهی بزرگتر از سایرین هستند.
انفجار پارتیشن: ایجاد تعداد بیش از حد پارتیشن های کوچک می تواند باعث ایجاد ابرداده سربار و کاهش عملکرد پرس و جو شود.
ساختار سفت و سخت: تعیین ستون های پارتیشن اغلب پیچیده است. نیاز به پیش بینی کلیدهای پارتیشن ، سازگاری با الگوهای پرس و جو را دشوار می کند.
بهینه سازی محدود برای پیوستن: در حالی که سفارش z می تواند عملکرد را برای برخی از نمایش داده ها افزایش دهد ، ممکن است برای عملیات پیچیده پیوستن بهینه نباشد.
گران قیمت: سفارش Z می تواند به عملیات نوشتن طولانی و پر هزینه منجر شود. نوشتن ها اغلب افزایشی نیستند و می نویسد که می نویسد همزمان در همان پارتیشن می تواند چالش برانگیز باشد. این مدت زمان مشاغل خوشه بندی را افزایش داده و هزینه های محاسباتی را افزایش می دهد.
خوشه بندی مایع را وارد کنید
خوشه بندی مایع را وارد کنید
خوشه بندی مایع از طریق چندین رویکرد نوآورانه این چالش ها را برطرف می کند:
خوشه بندی پویا: داده ها به جای تکیه بر استفاده از کندو استاتیک ، داده ها بر اساس کلیدهای خوشه بندی به صورت پویا خوشه بندی می شوند. این یک طرح داده انعطاف پذیر و تطبیقی تر را امکان پذیر می کند ، با Databricks مدیریت کلیه تصمیمات مربوط به داده ها.
خوشه بندی مایع اتوماتیک: Databricks ابرداده را برای ردیابی موقعیت فیزیکی بلوک های داده حفظ می کند. خوشه بندی مایع اتوماتیک از الگوریتم های بهینه سازی پیش بینی برای خود استفاده از چیدمان فیزیکی داده ها بر اساس الگوهای پرس و جو ، کاهش داده ها و بهینه سازی عملکرد پرس و جو ، هزینه و راندمان ذخیره استفاده می کند.
کاهش فوق داده بالای سر: با به حداقل رساندن پارتیشن بندی بیش از حد ، خوشه بندی مایع باعث کاهش سربار ابرداده می شود و منجر به برنامه ریزی و اجرای سریعتر پرس و جو می شود.
بهینه شده برای پیوستن: خوشه بندی مایع می تواند طرح داده را برای افزایش عملکرد عملیات پیوستن تنظیم کند ، و به طور قابل توجهی نتایج را برای نمایش داده های پیچیده بهبود می بخشد.
بهینه شده می نویسد: خوشه بندی مایع باعث می شود خوشه بندی افزایشی مقرون به صرفه با تقویت نوشتن کم. این طرح داده را در حین عملیات نوشتن و فرآیندهای نگهداری پس زمینه بهینه می کند و هنگام تغییر کلیدهای خوشه ، نیاز به بازنویسی کامل داده ها را از بین می برد.
بیایید خوشه بندی مایع را با یک جدول مثال کشف کنیم. در نظر بگیرید که ما از داده های تبلیغاتی که توسط یک شرکت اداره می شود ، داده های Impressions (مقیاس سل) داریم. هنگامی که این داده ها هر روز بدون پیکربندی طرح بندی داده نوشته می شود ، به صورت تدریجی برای پرونده ها نوشته می شود و در نتیجه یک طرح داده زیر ایجاد می شود.
فرض کنید الگوی پرس و جو مکرر کاربر برای دسترسی به داده های جدول “DCM_Impression” بر اساس رویداد “Date” و “Compless_Name” است.
SELECT * FROM dcm_impression WHERE date="04/29/2025" AND campaign_name="C"
موتور Query از آمار پرش از داده های دلتا (مقادیر حداقل/حداکثر ، تعداد تهی و کل سوابق در هر پرونده) استفاده می کند تا پرونده های مربوطه را برای اسکن شناسایی کند. در این سناریو ، موتور باید از 10 پرونده را بخواند و نرخ هرس 50 ٪ را به همراه داشته باشد.
مسئله اصلی اینجاست که داده های کمپین C در یک پرونده واحد جمع نمی شود. موتور پرس و جو تعیین می کند که کمپین C ممکن است در جایی بین حداقل و حداکثر در هر پرونده برای “4/29/2025” قرار داشته باشد. استخراج کلیه سوابق مربوط به کمپین C همچنین نیاز به خواندن تعداد قابل توجهی از مطالب برای سایر کمپین ها از هر یک از 5 پرونده دارد.
برای بهبود عملکرد پرس و جو ، می توانیم خوشه بندی مایع را فعال کنیم. دو روش برای فعال کردن خوشه بندی مایع وجود دارد:
به صورت دستی با استفاده از دستورات تغییر و بهینه سازی
در این مثال ، ما از دستور ALTER زیر برای فعال کردن خوشه بندی مایع با کلیدهای جدید خوشه بندی استفاده می کنیم: “تاریخ” و “Campaign_Name”. Alter کلیدهای خوشه را در ورود به سیستم ثبت می کند و یک طرح داده جدید ایجاد می کند. داده ها فقط در صورت اجرای دستور بهینه سازی ، در طرح جدید سازماندهی می شوند. به یک دلیل معتبر ، ممکن است تیم داده ها بلافاصله دستور Opptimize را اجرا نکنند.
ALTER TABLE dcm_impression CLUSTER BY (date, campaign_name);
OPTIMIZE dcm_impression;
در رویکرد دستی ، لازم است به طور منظم بر الگوهای پرس و جو نظارت شود. اگر در الگوهای پرس و جو مکرر تغییری ایجاد شود ، تیم داده باید قبل از تغییر کلیدهای خوشه بندی ، هزینه سربار را در برابر سودهای عملکرد بالقوه ارزیابی کند. مدیریت تصمیمات مربوط به طراحی طرح بندی داده ها و اجرای تغییرات می تواند برای یک تیم داده وقت گیر و پیچیده باشد. بیایید بررسی کنیم که چه کار دیگری را می توان در بخش بعدی انجام داد.
خوشه بندی را از طریق خوشه بندی مایع اتوماتیک تکامل دهید
توجه: در زمان نوشتن این مقاله ، خوشه بندی مایع اتوماتیک در پیش نمایش عمومی است.
خوشه بندی مایع اتوماتیک با از بین بردن نیاز به تنظیم دستی ، مدیریت داده ها را ساده می کند. بهینه سازی پیش بینی قدرت کاتالوگ وحدت را برای نظارت و تجزیه و تحلیل داده ها و الگوهای پرس و جو مهار می کند.
برای مثال ما ، دستور زیر باعث می شود خوشه بندی مایع اتوماتیک برای جدول Unity Catalog مدیریت شده- DCM_Impression.
ALTER TABLE dcm_impression CLUSTER BY AUTO;
پس از فعال شدن ، بهینه سازی پیش بینی کننده از مشکلات سخت تر مدیریت داده ها مراقبت می کند ، یعنی انتخاب کلید خوشه و طرح داده ها بر اساس الگوی پرس و جو با انجام مداوم موارد زیر:
توجه: تصویر از وب سایت Databricks گرفته شده است.
تله سنجی: برای تعیین اینکه آیا DCM_Impression از خوشه بندی مایع بهره مند می شود ، بهینه سازی پیش بینی کننده فیلترهای پرس و جو از سیاهههای مربوط به معامله (از جمله ابرداده در سیاهههای مربوط) را تجزیه و تحلیل می کند. این تعیین می کند که تاریخ رویداد و کمپین_ نام اغلب پرس و جو می شود.
ارزیابی مدل را انجام دهید: بهینه سازی پیش بینی کننده شامل یک ارزیابی جامع از بارهای کاری پرس و جو برای شناسایی مؤثرترین کلیدهای خوشه بندی برای به حداکثر رساندن بهره وری از داده ها است.
این فرآیند بینش های به دست آمده از الگوهای پرس و جو تاریخی را برای برآورد پیشرفت های بالقوه عملکرد مرتبط با طرح های مختلف خوشه بندی اعمال می کند. با شبیه سازی نمایش داده های گذشته ، پیش بینی می کند که چگونه هر گزینه می تواند میزان داده هایی را که باید اسکن شود ، کاهش دهد.
به طور بالقوه 3 استراتژی بهینه سازی پیش بینی شده وجود دارد:
در تصویر زیر ، با خوشه بندی مایع در “تاریخ” و “compaign_name” ، موتور Query پرونده ای را که حاوی سوابق مربوط به کمپین C است ، می خواند و بقیه پرونده ها رد می شوند. Min و Max (داده های پرش) برای این پرونده C است.
بهینه سازی سود هزینه: خوشه بندی یا خوشه بندی مجدد همیشه مقداری سربار متحمل می شود. بنابراین ، مرحله بعدی در بهینه سازی پیش بینی ، انجام تجزیه و تحلیل هزینه و سود برای گزینه شماره 3 ذکر شده در ابتدا است. بهینه سازی پیش بینی ارزیابی می کند که آیا سود عملکرد پرس و جو از هزینه های مرتبط با آن بالاتر است یا خیر. در مورد ما ، نرخ هرس با کلیدهای خوشه بندی “تاریخ” و “کمپین_م” 90 ٪ است و این ستون ها اغلب پرسیده می شوند. در نتیجه ، مزایا قابل توجه و توجیه خوشه بندی بر اساس این ستون ها است. بهینه سازی پیش بینی شده سپس به روز به روزرسانی این جدول مدیریت شده با کاتالوگ وحدت می پردازد و این ستون ها را به عنوان کلیدهای خوشه ای جدید اضافه می کند. تصمیم گیری خودکار بهینه سازی پیش بینی کننده به به حداقل رساندن کل هزینه مالکیت (TCO) کمک می کند.
خوشه بندی مایع بهینه می نویسد
خوشه بندی مایع در پایگاه داده ها با استفاده از ورود به سیستم معامله Delta Lake و فرآیند خوشه بندی افزایشی ، توانایی خوشه بندی داده ها را بدون بازنویسی کل مجموعه داده ها به معنای سنتی به دست می آورد.
در اینجا تفکیک جزئیات فنی وجود دارد:
1. ورود به معامله دریاچه دلتا به عنوان منبع حقیقت:
- Delta Lake یک گزارش معامله (ذخیره شده در فهرست Delta_log از ذخیره جدول شما) را حفظ می کند. این ورود به سیستم هر تغییری را که در جدول انجام شده است ، به عنوان تعهدات اتمی ثبت می کند.
- هر تعهد حاوی ابرداده در مورد تغییرات است ، از جمله اینکه پرونده های داده اضافه شده یا حذف شده اند.
- گزارش معامله ، سابقه تاریخی از وضعیت جدول را ارائه می دهد و منبع واحد حقیقت برای نسخه های فعلی و گذشته داده ها است.
2. خوشه بندی افزایشی در نوشتن:
هنگامی که خوشه بندی مایع در جدول دلتا با استفاده از جدول alter … خوشه توسط (ستون ها) فعال می شود ، Databricks بلافاصله تمام داده های موجود را بازنویسی نمی کند. درعوض ، جدول را برای استفاده از خوشه بندی مایع برای عملیات نوشتن آینده پرچم گذاری می کند.
در هنگام درج بعدی ، CTA (ایجاد جدول به عنوان انتخاب) ، RTAS (جدول جایگزین را به عنوان انتخاب) ، کپی کنید و حالت ضمیمه می نویسد: موتور جرقه Databricks به طور هوشمندانه داده های تازه نوشته شده را بر اساس کلیدهای خوشه بندی مشخص شده سازماندهی می کند.
این بدان معنی است که فقط داده های دریافتی مطابق ستون های تعریف شده خوشه بندی می شوند. پرونده های داده موجود که قبل از فعال شدن خوشه بندی مایع نوشته شده اند ، یا با کلیدهای مختلف خوشه بندی نوشته شده اند ، بلافاصله بازنویسی نمی شوند.
داده هایی که بر اساس کلیدهای قدیمی خوشه بندی شده اند ، همانطور که در آن است ، تا زمانی که توسط یک عملیات بهینه سازی آینده بازنویسی نشود ، باقی مانده است. این انعطاف پذیری را برای سازگاری با الگوهای پرس و جو در حال تحول و بدون هزینه گسترده پیشرو فراهم می کند.
3. بهینه سازی دستور برای بازپرداخت (در صورت لزوم):
- در حالی که خوشه بندی مایع از بازنویسی تمام داده ها در هر نوشتن جلوگیری می کند ، دستور Optimize نقش مهمی در بهبود بیشتر طرح داده ها و ادغام پرونده ها دارد.
- هنگامی که بهینه سازی را در یک جدول خوشه ای مایع اجرا می کنید: Databricks پرونده های داده موجود و گزارش معامله را می خواند. سپس برای دستیابی به یک خوشه بندی کارآمدتر بر اساس کلیدهای خوشه بندی فعلی ، داده ها را در صورت لزوم بازنویسی می کند. این ممکن است شامل ادغام پرونده های کوچکتر و سازماندهی بیشتر داده ها بر اساس ستون های خوشه بندی باشد. Optimize عملیاتی است که به طور فعال داده های فیزیکی روی دیسک را با توجه به پیکربندی خوشه بندی تنظیم می کند.
- تفاوت اصلی از سفارش سنتی Z در این است که بهینه سازی با خوشه بندی مایع اغلب افزایشی و تطبیقی تر است. این لزوماً هر بار کل جدول را بازنویسی نمی کند ، به خصوص اگر طرح داده موجود از قبل با کلیدهای خوشه بندی مطابقت داشته باشد.
- ** بهینه سازی کامل: ** در Delta Lake 3.3+ ، می توانید از Optimize Full برای مجبور کردن یک لیست مجدد از همه سوابق موجود در جدول استفاده کنید ، که پس از تغییر ستون های خوشه بندی مفید است.
این رویکرد افزایشی و ابرداده محور باعث می شود خوشه بندی مایع نسبت به تکنیک های بهینه سازی طرح داده سنتی کارآمدتر و انعطاف پذیر تر شود.
ملاحظات حجم داده ها
این کمتر در مورد “حداقل حجم” دقیق و بیشتر در مورد ویژگی های داده های شما مانند کاردینال بودن ، الگوهای SKEW و پرس و جو است. با افزایش حجم داده ، مزایای خوشه بندی مایع به طور فزاینده ای آشکار می شود. بهینه سازی های ارائه شده در هنگام برخورد با ترابایت ها یا petabytes داده ها تأثیر قابل توجهی در عملکرد دارد. مانند هر تکنیک بهینه سازی ، خوشه بندی مایع مقداری سربار را معرفی می کند. برای مجموعه داده های بسیار کوچک با نمایش داده های بسیار ساده ، سربار ممکن است از مزایای آن فراتر رود. با این حال ، در اکثر سناریوهای دنیای واقعی ، سود عملکرد ممکن است به مراتب از سربار فراتر رود.
علاوه بر این ، مستندات Databricks آستانه های مربوط به تعداد ستون های خوشه بندی و اندازه داده های مرتبط را ارائه می دهد. این بیشتر یک راهنما برای نحوه مدیریت سیستم داده ها است و نه حداقل اندازه داده برای استفاده.
خوشه بندی کل دریاچه داده
هنگامی که شما چندین مجموعه داده نامربوط در جداول دلتا که در خدمت محصولات داده مجزا هستید ، با استفاده از خوشه بندی مایع نیاز به بررسی دقیق ویژگی های منحصر به فرد و الگوهای پرس و جو دارید. اگر از معماری Medallion استفاده می کنید از سطح طلا شروع کنید. در اینجا تفکیک نحوه نزدیک شدن به این سناریو آورده شده است:
- هر مجموعه داده را جدا و تجزیه و تحلیل کنید: هر مجموعه داده ، حتی اگر در همان دریاچه دلتا ذخیره شود ، باید به عنوان یک موجود جداگانه برای اهداف خوشه بندی مایع درمان شود. برای هر مجموعه داده ، نمایش داده شده هایی را که علیه آن اجرا می شود ، کاملاً تجزیه و تحلیل کنید. رایج ترین ستون های فیلتر ، به کلیدها و ستون های جمع آوری را شناسایی کنید. ویژگی های داده ها ، از جمله کاردینال بودن ، پوست و حجم داده ها را ارزیابی کنید. به عنوان یک مرحله بعدی ممکن است انتخاب کنید که به صورت دستی خوشه بندی مایع را برای هر مجموعه داده پیکربندی کنید یا برای همه مجموعه داده ها به صورت خودکار تنظیم کنید یا یک روش ترکیبی را بگیرید. مراحل زیر را برای رویکرد دستی دنبال کنید.
- کلیدهای خوشه بندی را برای هر مجموعه داده تعریف کنید: کلیدهای خوشه بندی را برای هر مجموعه داده بر اساس الگوهای پرس و جو خاص آن انتخاب کنید. ستون هایی را که اغلب در فیلترها ، پیوستن و جمع استفاده می شوند ، اولویت بندی کنید. از خوشه بندی در ستون هایی با کاردینال بودن بسیار بالا یا شکاف قابل توجه خودداری کنید ، زیرا این امر می تواند بر عملکرد تأثیر منفی بگذارد. خوشه بندی مایع از کلیدهای خوشه بندی چندگانه پشتیبانی می کند و به شما امکان می دهد انواع الگوهای پرس و جو را بهینه کنید.
- خوشه بندی مایع را به طور جداگانه پیاده سازی کنید: خوشه بندی مایع را به طور مستقل برای هر جدول دلتا پیکربندی کنید. این شامل تعریف کلیدهای خوشه بندی و تنظیم گزینه های پیکربندی مربوطه است. برای حفظ یک طرح داده کارآمد ، به طور منظم عملیات را برای هر جدول برنامه ریزی کنید. فرکانس بهینه سازی باید بر اساس فرکانس به روزرسانی داده ها و الگوهای پرس و جو باشد.
- نظارت و تنظیم: به طور مداوم عملکرد نمایش داده ها را در برابر هر مجموعه داده نظارت می کند. هرگونه تنگنا عملکردی را مشخص کرده و کلیدهای خوشه بندی یا برنامه بهینه سازی را در صورت لزوم تنظیم کنید. برای تطبیق پیکربندی خوشه بندی مایع به عنوان داده ها و الگوهای پرس و جو آماده باشید.
ملاحظات کلیدی:
- خوشه بندی مایع برای بهینه سازی به منابع محاسبه نیاز دارد. اطمینان حاصل کنید که از منابع کافی برای رسیدگی به بهینه سازی مجموعه داده های مختلف برخوردار هستید.
- اطمینان حاصل کنید که پیکربندی خوشه بندی مایع نیازهای عملکرد خاص هر محصول داده را برآورده می کند.
- برای اطمینان از حاکمیت و قوام داده ها ، مستندات واضح از پیکربندی خوشه بندی مایع را برای هر مجموعه داده حفظ کنید.
- سعی نکنید یک استراتژی خوشه بندی مایع را در چندین مجموعه داده استفاده کنید ، حتی اگر در همان دریاچه دلتا ساکن باشند.
راهنمایی برای تأیید اثربخشی
هنگامی که خوشه بندی مایع اتوماتیک در جدول Delta شما فعال شد ، تأیید به حداقل رساندن هزینه و بهبود کارآیی پرس و جو نیاز به ترکیبی از نظارت بر عملکرد پرس و جو ، تجزیه و تحلیل مصرف منابع ابری و درک ویژگی های داده ها و بارهای کاری شما دارد. در اینجا تفکیک آنچه باید تأیید شود و چگونه:
برای تأیید هزینه و کارآیی خودکار خوشه بندی مایع:
- ** نظارت بر عملکرد پرس و جو: ** مقایسه زمان اجرای پرس و جو و داده های اسکن شده (توضیح) قبل و بعد از فعال کردن آن. به دنبال پرس و جوهای سریعتر و داده های کمتر پردازش شده در Databricks Query History و Spark UI باشید. اندازه های کاهش یافته در پیوندها را بررسی کنید.
- تجزیه و تحلیل هزینه های ابر: مصرف واحد محاسبات Databricks (DBU) خود را برای بار کاری تحلیلی دنبال کنید ، با هدف کاهش. اگر ارائه دهنده ابر شما چنین معیارهایی را ارائه می دهد ، انتظار می رود که خوانده های پایین تری داشته باشد. مهمتر از همه ، اطمینان حاصل کنید که هزینه به دلیل بهینه سازی پیش بینی (AI) با گذشت زمان در حال افزایش نیست و سود خالص بسیار بالاتر از هزینه کلی است.
- خوشه بندی را درک کنید: تأیید کنید که ستون های خوشه بندی به طور خودکار انتخاب شده با ستون های فیلتر و پیوستن به شما مطابقت دارند. مشاهده کنید که آیا داده ها با گذشت زمان کاهش می یابد.
اگر پیشرفت هایی را نمی بینید:
- ستون های انتخاب شده و الگوهای پرس و جو خود را مرور کنید.
- ویژگی های داده خود را در نظر بگیرید (به عنوان مثال ، کاردینال بالا).
- زمان کار را برای خوشه بندی اتوماتیک با داده های جدید بگذارید.
با نظارت منظم این جنبه ها ، می توانید اطمینان حاصل کنید که خوشه بندی مایع اتوماتیک به طور مؤثر هزینه ها و بهبود کارآیی پرس و جو برای جداول دلتا شما است. به یاد داشته باشید که با گذشت زمان داده ها ، این مزایا با گذشت زمان به وجود می آید و خوشه بندی اتوماتیک فرصت های بیشتری برای بهینه سازی طرح دارد.
پایان
خوشه بندی مایع Databricks نشان دهنده پیشرفت قابل توجهی در بهینه سازی دریاچه داده ها است. با تطبیق پویا چیدمان داده با الگوهای پرس و جو ، خوشه بندی مایع باعث صرفه جویی در هزینه قابل توجهی و بهبود عملکرد می شود. با افزایش داده های دریاچه و افزایش پیچیدگی ، خوشه بندی مایع به ابزاری فزاینده برای بهینه سازی بارهای کاری پایگاه داده تبدیل می شود. با در آغوش گرفتن این فناوری ، سازمان ها می توانند پتانسیل کامل داده های خود را باز کرده و نوآوری داده محور را با کارآمدتر هدایت کنند. با این حال ، در حالی که انتخاب خوشه بندی مایع اتوماتیک می تواند بسیار مفید باشد ، مهم است که در تصمیم گیری های مربوط به هوش مصنوعی و مدیریت هزینه ها به طور مؤثر هوشیار باشید.