مِكْنَسَة كَهْرَبَائِيَّة
ينطبق على: 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');
المعلمات
-
تعريف جدول Delta موجود. يجب ألا يتضمن الاسم مواصفات زمنية أو مواصفات خيارات.
RETAIN num HOURS
حد الاستبقاء.
DRY RUN
إرجاع قائمة تضم ما يصل إلى 1000 ملف ليتم حذفها.
تفريغ جدول غير دلتا
يقوم بتفريغ الدلائل المقترنة بجدول غير دلتا بشكل متكرر وإزالة الملفات غير الملتزم بها الأقدم من حد الاستبقاء. الحد الافتراضي هو 7 أيام.
في الجداول غير التابعة ل Delta، يقوم Azure Databricks تلقائيا بتشغيل VACUUM
العمليات أثناء كتابة البيانات.
بناء الجملة
VACUUM table_name [RETAIN num HOURS]
المعلمات
-
تعريف جدول موجود حسب الاسم أو المسار.
RETAIN num HOURS
حد الاستبقاء.