مشاركة عبر


ما هي متجهات الحذف؟

متجهات الحذف هي ميزة تحسين التخزين التي يمكنك تمكينها في جداول Delta Lake. بشكل افتراضي، عند حذف صف واحد في ملف بيانات، يجب إعادة كتابة ملف Parquet بأكمله الذي يحتوي على السجل. مع تمكين متجهات الحذف للجدول، DELETEUPDATEتستخدم العمليات و و MERGE متجهات الحذف لوضع علامة على الصفوف الموجودة على أنها تمت إزالتها أو تغييرها دون إعادة كتابة ملف Parquet. تعمل القراءات اللاحقة على الجدول على حل حالة الجدول الحالية عن طريق تطبيق عمليات الحذف المشار إليها بواسطة متجهات الحذف على أحدث إصدار للجدول.

توصي Databricks باستخدام Databricks Runtime 14.3 LTS وما فوق لكتابة الجداول مع متجهات الحذف لاستخدام جميع التحسينات. يمكنك قراءة الجداول مع تمكين متجهات الحذف في Databricks Runtime 12.2 LTS وما فوق.

في Databricks Runtime 14.2 وما فوق، تدعم الجداول ذات متجهات الحذف التزامن على مستوى الصف. راجع تعارضات الكتابة مع التزامن على مستوى الصف.

إشعار

تستفيد الفوتون من متجهات الحذف لتحديثات الإدخال/الإخراج التنبؤية وتسريع DELETEMERGEالعمليات و وUPDATE. يمكن لجميع العملاء الذين يدعمون قراءة متجهات الحذف قراءة التحديثات التي أنتجت متجهات الحذف، بغض النظر عما إذا كان الإدخال/الإخراج التنبؤي قد أنتجت هذه التحديثات. راجع استخدام الإدخال/إخراج التنبؤي لتسريع التحديثات.

تمكين متجهات الحذف

هام

يتحكم إعداد مسؤول مساحة العمل في ما إذا كانت متجهات الحذف ممكنة تلقائيا لجداول Delta الجديدة. راجع تمكين متجهات الحذف تلقائيا.

إذا تم استخدام إعداد مساحة العمل للتحكم في التمكين التلقائي لناقلات الحذف، فاستنادا إلى الخيار المحدد لنوع الجدول، يتم تمكين متجهات الحذف بشكل افتراضي عند إنشاء جدول جديد باستخدام مستودع SQL أو Databricks Runtime 14.1 أو أعلى. لا يتم تمكين متجهات الحذف بشكل افتراضي عند إنشاء طرق عرض مجسدة أو جداول دفق ويجب تمكينها يدويا عند إنشاء طريقة عرض مجسدة أو جدول دفق.

لتمكين دعم متجهات الحذف يدويا في جدول أو طريقة عرض، استخدم delta.enableDeletionVectors خاصية الجدول. يمكنك تمكين متجهات الحذف يدويا على جدول دلتا عند إنشاء الجدول أو تغييره. يمكنك تمكين متجهات الحذف يدويا على طريقة عرض مجسدة أو جدول دفق فقط عند إنشاء طريقة العرض المجسدة أو جدول البث. لا يمكنك استخدام عبارة ALTER لتمكين متجهات الحذف على طريقة عرض مجسدة أو جدول دفق.

CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

تحذير

عند تمكين متجهات الحذف، تتم ترقية بروتوكول الجدول. بعد الترقية، لن يكون الجدول قابلا للقراءة من قبل عملاء Delta Lake الذين لا يدعمون متجهات الحذف. راجع كيف تدير Azure Databricks توافق ميزة Delta Lake؟.

في Databricks Runtime 14.1 وما فوق، يمكنك إسقاط ميزة جدول متجهات الحذف لتمكين التوافق مع عملاء Delta الآخرين. راجع ميزات جدول Drop Delta.

تطبيق التغييرات على ملفات بيانات Parquet

تشير متجهات الحذف إلى تغييرات في الصفوف كحذف مبدئي يعدل منطقيا ملفات بيانات Parquet الموجودة في جدول Delta Lake. يتم تطبيق هذه التغييرات فعليا عندما يتسبب أحد الأحداث التالية في إعادة كتابة ملفات البيانات:

  • OPTIMIZE يتم تشغيل أمر على الجدول.
  • يؤدي الضغط التلقائي إلى إعادة كتابة ملف بيانات باستخدام متجه حذف.
  • REORG TABLE ... APPLY (PURGE) يتم تشغيل مقابل الجدول.

لا تحتوي الأحداث المتعلقة بضغط الملفات على ضمانات صارمة لحل التغييرات المسجلة في متجهات الحذف، وقد لا يتم تطبيق بعض التغييرات المسجلة في متجهات الحذف إذا لم تكن ملفات البيانات الهدف بخلاف ذلك مرشحة لضغط الملفات. REORG TABLE ... APPLY (PURGE) يعيد كتابة كافة ملفات البيانات التي تحتوي على سجلات مع تعديلات مسجلة باستخدام متجهات الحذف. راجع جدول REORG.

إشعار

قد تظل البيانات المعدلة موجودة في الملفات القديمة. يمكنك تشغيل فراغ لحذف الملفات القديمة فعليا. REORG TABLE ... APPLY (PURGE) ينشئ إصدارا جديدا من الجدول عند اكتماله. وقت الإكمال هذا هو الطابع الزمني الذي يجب مراعاته لحد الاستبقاء للعملية VACUUM لإزالة الملفات المحذوفة بالكامل. راجع إزالة ملفات البيانات غير المستخدمة باستخدام فراغ.

التوافق مع عملاء Delta

يستخدم Azure Databricks متجهات الحذف لتشغيل الإدخال/الإخراج التنبؤي للتحديثات على الحوسبة التي تدعم Photon. راجع استخدام الإدخال/إخراج التنبؤي لتسريع التحديثات.

يختلف دعم استخدام متجهات الحذف للقراءات والكتابة حسب العميل.

يشير الجدول التالي إلى إصدارات العميل المطلوبة لقراءة وكتابة جداول Delta مع تمكين متجهات الحذف ويحدد عمليات الكتابة التي تستخدم متجهات الحذف:

العميل كتابة متجهات الحذف قراءة متجهات الحذف
وقت تشغيل Databricks مع Photon يدعم MERGEو UPDATEو باستخدام DELETE Databricks Runtime 12.2 LTS وما فوق. يتطلب Databricks Runtime 12.2 LTS أو أعلى.
Databricks Runtime بدون Photon يدعم DELETE استخدام Databricks Runtime 12.2 LTS وما فوق. يدعم UPDATE استخدام Databricks Runtime 14.1 وما فوق. يدعم MERGE استخدام Databricks Runtime 14.3 LTS وما فوق. يتطلب Databricks Runtime 12.2 LTS أو أعلى.
OSS Apache Spark مع OSS Delta Lake يدعم DELETE استخدام OSS Delta 2.4.0 وما فوق. يدعم UPDATE استخدام OSS Delta 3.0.0 وما فوق. يتطلب OSS Delta 2.3.0 أو أعلى.
مستلمو مشاركة دلتا عمليات الكتابة غير معتمدة في جداول "مشاركة دلتا" Databricks: يتطلب DBR 14.1 أو أعلى. Apache Spark مفتوح المصدر: يتطلب delta-sharing-spark 3.1 أو أعلى.

إشعار

للحصول على الدعم مع عملاء Delta الآخرين، راجع وثائق تكامل OSS Delta Lake.

القيود

  • لا يدعم UniForm متجهات الحذف.
  • لا يمكنك استخدام عبارة GENERATE لإنشاء ملف بيان لجدول يحتوي على ملفات باستخدام متجهات الحذف. لإنشاء بيان، قم أولا بتشغيل REORG TABLE ... قم بتطبيق عبارة (PURGE) ثم قم بتشغيل العبارة GENERATE . يجب التأكد من عدم تشغيل عمليات الكتابة المتزامنة عند إرسال العبارة REORG .
  • لا يمكنك إنشاء ملفات بيان بشكل متزايد لجدول مع تمكين متجهات الحذف (على سبيل المثال، عن طريق تعيين خاصية delta.compatibility.symlinkFormatManifest.enabled=trueالجدول ).
  • إذا قمت بتمكين متجهات الحذف على طريقة عرض مجسدة أو جدول دفق وقمت بعد ذلك بتعطيل متجهات الحذف، يتم منع عمليات الكتابة المستقبلية إلى طريقة العرض أو الجدول من استخدام متجهات الحذف، ولكن لا تتم إزالة متجهات الحذف الموجودة.
  • لا يمكنك تخفيض إصدار بروتوكول الجدول بعد تمكين متجهات الحذف على طريقة عرض مجسدة أو جدول دفق. بعد التمكين، لا يمكن إزالة ميزة الجدول لنواقل الحذف، حتى إذا قمت لاحقا بتعطيل متجهات الحذف في طريقة العرض أو الجدول.
  • لا يمكنك التشغيل REORG على طرق العرض المجسدة أو جداول الدفق لتثبيت التغييرات المسجلة في متجهات الحذف إلى ملفات بيانات Parquet التي تدعم هذه الكائنات. وبسبب هذا القيد، لا تقم بتمكين متجهات الحذف على طرق العرض المجسدة أو جداول الدفق إذا كان يجب عليك ضمان الحذف الكامل للسجلات (على سبيل المثال، للتوافق مع القانون العام لحماية البيانات (GDPR) أو CCPA).