مشاركة عبر


مِكْنَسَة كَهْرَبَائِيَّة

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime

إزالة الملفات غير المستخدمة من دليل جدول.

إشعار

يعمل هذا الأمر بشكل مختلف اعتمادا على ما إذا كنت تعمل على جدول Delta أو Apache Spark.

تفريغ جدول Delta

الدلائل المكنسة بشكل متكرر المقترنة بجدول Delta. للحصول على التفاصيل والقيود الكاملة، راجع إزالة ملفات البيانات غير المستخدمة مع وجود فراغ.

VACUUM إزالة كافة الملفات من دليل الجدول التي لم تتم إدارتها بواسطة Delta، بالإضافة إلى ملفات البيانات التي لم تعد في أحدث حالة من سجل المعاملات للجدول وهي أقدم من حد الاستبقاء. VACUUM سيتخطى جميع الدلائل التي تبدأ بتسطير أسفل السطر (_)، والذي يتضمن _delta_log. يعد تقسيم الجدول على عمود يبدأ بتسطير أسفل السطر استثناء لهذه القاعدة؛ VACUUM يفحص جميع الأقسام الصالحة المضمنة في جدول Delta الهدف. يتم حذف ملفات بيانات جدول Delta وفقا للوقت الذي تمت إزالتها منطقيا من سجل معاملات Delta بالإضافة إلى ساعات الاستبقاء، وليس الطوابع الزمنية للتعديل الخاصة بها على نظام التخزين. الحد الافتراضي هو 7 أيام.

في جداول Delta، لا يقوم VACUUM Azure Databricks بتشغيل العمليات تلقائيا.

إذا قمت بتشغيل VACUUM على جدول Delta، فستفقد القدرة على الانتقال مرة أخرى إلى إصدار أقدم من فترة استبقاء البيانات المحددة.

تحذير

من المستحسن تعيين فاصل استبقاء زمني لمدة 7 أيام على الأقل، لأن اللقطات القديمة والملفات غير الملتزم بها يمكن أن تظل قيد الاستخدام من قبل القراء أو الكتاب المتزامنين إلى الجدول. إذا VACUUM قمت بتنظيف الملفات النشطة، يمكن أن تفشل القراء المتزامنة، أو الأسوأ من ذلك، يمكن أن تتلف الجداول عند VACUUM حذف الملفات التي لم يتم الالتزام بها بعد. يجب اختيار فاصل زمني أطول من أطول معاملة متزامنة قيد التشغيل وأطول فترة يمكن أن يتخلف فيها أي دفق عن آخر تحديث للجدول.

لدى Delta Lake فحص أمان لمنعك من تشغيل أمر خطير VACUUM . في Databricks Runtime، أنت متأكد من عدم وجود عمليات يتم إجراؤها على هذا الجدول تستغرق وقتا أطول من الفاصل الزمني للاحتفاظ الذي تخطط لتحديده، يمكنك إيقاف تشغيل فحص الأمان هذا عن طريق تعيين خاصية spark.databricks.delta.retentionDurationCheck.enabled تكوين Spark إلى false.

VACUUM table_name [RETAIN num HOURS] [DRY RUN]

هام

يتم تحديد نافذة الاستبقاء للأمر فراغ بواسطة delta.deletedFileRetentionDuration خاصية الجدول، والتي يتم تعيينها افتراضيا إلى 7 أيام. وهذا يعني VACUUM إزالة ملفات البيانات التي لم تعد مشار إليها بواسطة إصدار جدول Delta في آخر 7 أيام. إذا كنت ترغب في الاحتفاظ بالبيانات لفترة أطول (مثل دعم السفر لفترة أطول)، فيجب تعيين خاصية الجدول هذه إلى قيمة أعلى. يوضح المثال التالي تعيين هذا الحد إلى 30 يوما:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');

المعلمات

  • table_name

    تعريف جدول Delta موجود. يجب ألا يتضمن الاسم مواصفات زمنية أو مواصفات خيارات.

  • RETAIN num HOURS

    حد الاستبقاء.

  • DRY RUN

    إرجاع قائمة تضم ما يصل إلى 1000 ملف ليتم حذفها.

تفريغ جدول غير دلتا

يقوم بتفريغ الدلائل المقترنة بجدول غير دلتا بشكل متكرر وإزالة الملفات غير الملتزم بها الأقدم من حد الاستبقاء. الحد الافتراضي هو 7 أيام.

في الجداول غير التابعة ل Delta، يقوم Azure Databricks تلقائيا بتشغيل VACUUM العمليات أثناء كتابة البيانات.

بناء الجملة

VACUUM table_name [RETAIN num HOURS]

المعلمات

  • table_name

    تعريف جدول موجود حسب الاسم أو المسار.

  • RETAIN num HOURS

    حد الاستبقاء.