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

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

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

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

إشعار

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

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

هام

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

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

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 متجهات الحذف.
  • يمكنك تمكين متجهات الحذف لطرق العرض المجسدة، ولكن لتعطيل متجهات الحذف لعرض مجسد، يجب إسقاط طريقة العرض المجسدة وإعادة إنشائها.
  • لا يمكنك إنشاء ملف بيان لجدول به متجهات حذف موجودة. لإنشاء بيان، قم بتشغيل REORG TABLE ... APPLY (PURGE) وتأكد من عدم تشغيل أي عمليات كتابة متزامنة.
  • لا يمكنك إنشاء ملفات بيان بشكل متزايد لجدول مع تمكين متجهات الحذف.