مرجع خصائص جدول Delta

تحتفظ Delta Lake بخصائص جدول Delta بدءا من delta.. قد يكون لهذه الخصائص معاني محددة، وتؤثر على السلوكيات عند تعيين هذه الخصائص.

إشعار

تتعارض جميع العمليات التي تقوم بتعيين خصائص الجدول أو تحديثها مع عمليات الكتابة المتزامنة الأخرى، مما يؤدي إلى فشلها. توصي Databricks بتعديل خاصية جدول فقط عند عدم وجود عمليات كتابة متزامنة على الجدول.

كيف تتفاعل خصائص الجدول وخصائص SparkSession؟

يتم تعيين خصائص جدول Delta لكل جدول. إذا تم تعيين خاصية على جدول، فهذا هو الإعداد الذي يليه افتراضيا.

تحتوي بعض خصائص الجدول على تكوينات SparkSession المقترنة التي لها دائما الأسبقية على خصائص الجدول. تتضمن بعض الأمثلة spark.databricks.delta.autoCompact.enabled التكوينات و spark.databricks.delta.optimizeWrite.enabled ، التي تقوم بتشغيل الضغط التلقائي والكتابة المحسنة على مستوى SparkSession بدلا من مستوى الجدول. توصي Databricks باستخدام تكوينات ذات نطاق جدول لمعظم أحمال العمل.

لكل خاصية جدول Delta يمكنك تعيين قيمة افتراضية للجداول الجديدة باستخدام تكوين SparkSession، مع تجاوز الافتراضي المضمن. يؤثر هذا الإعداد فقط على الجداول الجديدة ولا يتجاوز أو يحل محل الخصائص المعينة على الجداول الموجودة. تختلف البادئة المستخدمة في SparkSession عن التكوينات المستخدمة في خصائص الجدول، كما هو موضح في الجدول التالي:

تكوين Delta Lake تكوين SparkSession
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

على سبيل المثال، لتعيين الخاصية لكافة delta.appendOnly = true جداول Delta Lake الجديدة التي تم إنشاؤها في جلسة عمل، قم بتعيين ما يلي:

SET spark.databricks.delta.properties.defaults.appendOnly = true

لتعديل خصائص الجدول للجداول الموجودة، استخدم SET ТБ LPROPERTIES.

خصائص جدول Delta

تتضمن خصائص جدول Delta المتوفرة ما يلي:

الخاصية
delta.appendOnly

true لكي يكون جدول Delta هذا ملحقا فقط. إذا كان الإلحاق فقط، لا يمكن حذف السجلات الموجودة، ولا يمكن تحديث القيم الموجودة.

راجع مرجع خصائص جدول Delta.

نوع البيانات: Boolean

الافتراضي: false
delta.autoOptimize.autoCompact

auto ل Delta Lake لتحسين تخطيط الملفات لجدول Delta هذا تلقائيا.

راجع الضغط التلقائي ل Delta Lake على Azure Databricks.

نوع البيانات: Boolean

الافتراضي: (بلا)
delta.autoOptimize.optimizeWrite

true لكي يقوم Delta Lake بتحسين تخطيط الملفات لجدول Delta هذا تلقائيا أثناء عمليات الكتابة.

راجع عمليات الكتابة المحسنة ل Delta Lake على Azure Databricks.

نوع البيانات: Boolean

الافتراضي: (بلا)
delta.checkpoint.writeStatsAsJson

true ل Delta Lake لكتابة إحصائيات الملفات في نقاط التحقق بتنسيق JSON للعمود stats .

راجع إدارة الإحصائيات على مستوى العمود في نقاط التحقق.

نوع البيانات: Boolean

الافتراضي: true
delta.checkpoint.writeStatsAsStruct

true ل Delta Lake لكتابة إحصائيات الملفات إلى نقاط التحقق بتنسيق البنية للعمود stats_parsed وكتابة قيم القسم كبنية ل partitionValues_parsed.

راجع إدارة الإحصائيات على مستوى العمود في نقاط التحقق.

نوع البيانات: Boolean

الافتراضي: (بلا)
delta.checkpointPolicy

classic لنقاط تفتيش Delta Lake الكلاسيكية. v2 لنقاط التحقق v2.

راجع التوافق للجداول ذات التجميع السائل.

نوع البيانات: String

الافتراضي: classic
delta.columnMapping.mode

ما إذا كان يتم تمكين تعيين العمود لأعمدة جدول Delta وأعمدة Parquet المقابلة التي تستخدم أسماء مختلفة.

راجع إعادة تسمية الأعمدة وإفلاتها باستخدام تعيين عمود Delta Lake.

ملاحظة: تمكين delta.columnMapping.mode تمكين تلقائيا
delta.randomizeFilePrefixes.

نوع البيانات: DeltaColumnMappingMode

الافتراضي: none
delta.dataSkippingNumIndexedCols

عدد الأعمدة ل Delta Lake لتجميع إحصائيات حول تخطي البيانات. قيمة وسائل -1 لجمع الإحصائيات لجميع الأعمدة.

راجع تخطي البيانات ل Delta Lake.

نوع البيانات: Int

الافتراضي: 32
delta.dataSkippingStatsColumns

قائمة مفصولة بفواصل بأسماء الأعمدة التي تجمع Delta Lake الإحصائيات عليها لتحسين وظيفة تخطي البيانات. هذه الخاصية لها الأسبقية على delta.dataSkippingNumIndexedCols.

راجع تخطي البيانات ل Delta Lake.

نوع البيانات: String

الافتراضي: (بلا)
delta.deletedFileRetentionDuration

أقصر مدة ل Delta Lake للاحتفاظ بملفات البيانات المحذوفة منطقيا قبل حذفها فعليا. هذا لمنع حالات الفشل في القراء القديمة بعد الضغطات أو الكتابة فوق القسم.

يجب أن تكون هذه القيمة كبيرة بما يكفي لضمان ما يلي:

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

راجع تكوين استبقاء البيانات للاستعلامات عن السفر عبر الوقت.

نوع البيانات: CalendarInterval

الافتراضي: interval 1 week
delta.enableChangeDataFeed

true لتمكين تغيير موجز البيانات.

راجع تمكين موجز بيانات التغيير.

نوع البيانات: Boolean

الافتراضي: false
delta.enableDeletionVectors

true لتمكين متجهات الحذف والإداء/الإخراج التنبؤي للتحديثات.

راجع ما هي متجهات الحذف؟.

نوع البيانات: Boolean

الافتراضي: يعتمد على إعدادات مسؤول مساحة العمل وإصدار وقت تشغيل Databricks. راجع تمكين متجهات الحذف تلقائيا
delta.isolationLevel

درجة عزل المعاملة عن التعديلات التي تم إجراؤها بواسطة المعاملات المتزامنة.

القيم الصالحة هي Serializable و WriteSerializable.

راجع مستويات العزل وتعارضات الكتابة على Azure Databricks.

نوع البيانات: String

الافتراضي: WriteSerializable
delta.logRetentionDuration

المدة التي يتم فيها الاحتفاظ بمحفوظات جدول Delta. VACUUM تتجاوز العمليات حد الاستبقاء هذا.

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

راجع تكوين استبقاء البيانات للاستعلامات عن السفر عبر الوقت.

نوع البيانات: CalendarInterval

الافتراضي: interval 30 days
delta.minReaderVersion

الحد الأدنى المطلوب لإصدار قارئ البروتوكول للقارئ الذي يسمح بالقراءة من جدول Delta هذا.

توصي Databricks بتكوين هذه الخاصية يدويا.

راجع كيف تدير Azure Databricks توافق ميزة Delta Lake؟.

نوع البيانات: Int

الافتراضي: 1
delta.minWriterVersion

الحد الأدنى المطلوب لإصدار كاتب البروتوكول للكاتب الذي يسمح بالكتابة إلى جدول Delta هذا.

توصي Databricks بتكوين هذه الخاصية يدويا.

راجع كيف تدير Azure Databricks توافق ميزة Delta Lake؟.

نوع البيانات: Int

الافتراضي: 2
delta.randomizeFilePrefixes

true ل Delta Lake لإنشاء بادئة عشوائية لمسار ملف بدلا من معلومات القسم.

نوع البيانات: Boolean

الافتراضي: false
delta.randomPrefixLength

عندما delta.randomizeFilePrefixes يتم تعيين إلى true، عدد الأحرف التي ينشئها Delta Lake للبادئات العشوائية.

نوع البيانات: Int

الافتراضي: 2
delta.setTransactionRetentionDuration

أقصر مدة تحتفظ خلالها اللقطات الجديدة بمعرفات المعاملات (على سبيل المثال، SetTransactions). عندما ترى لقطة جديدة معرف معاملة أقدم من أو يساوي المدة المحددة بواسطة هذه الخاصية، تعتبر اللقطة أنها انتهت صلاحيتها وتتجاهلها. SetTransaction يتم استخدام المعرف عند جعل عمليات الكتابة متكررة. راجع كتابة الجدول غير الفعال في foreachBatch للحصول على التفاصيل.

نوع البيانات: CalendarInterval

الافتراضي: (بلا)
delta.targetFileSize

حجم الملف الهدف بالبايت أو وحدات أعلى لضبط الملفات. على سبيل المثال،
104857600 (بايت) أو 100mb.

راجع تكوين Delta Lake للتحكم في حجم ملف البيانات.

نوع البيانات: String

الافتراضي: (بلا)
delta.tuneFileSizesForRewrites

true لاستخدام أحجام ملفات أقل دائما لجميع عمليات تحسين تخطيط البيانات على جدول Delta.

false لعدم ضبط أحجام الملفات الأقل، أي منع تنشيط الكشف التلقائي.

راجع تكوين Delta Lake للتحكم في حجم ملف البيانات.

نوع البيانات: Boolean

الافتراضي: (بلا)