إعادة تسمية الأعمدة وإفلاتها باستخدام تعيين عمود Delta Lake
يدعم Azure Databricks تعيين الأعمدة لجداول Delta Lake، والتي تمكن تغييرات بيانات التعريف فقط من وضع علامة على الأعمدة على أنها محذوفة أو تمت إعادة تسميتها دون إعادة كتابة ملفات البيانات. كما يسمح للمستخدمين بتسمية أعمدة جدول Delta باستخدام أحرف غير مسموح بها بواسطة Parquet، مثل المسافات، بحيث يمكن للمستخدمين استيعاب بيانات CSV أو JSON مباشرة في Delta دون الحاجة إلى إعادة تسمية الأعمدة بسبب قيود الأحرف السابقة.
هام
يمكن قراءة الجداول التي تم تمكين تعيين الأعمدة فيها فقط في Databricks Runtime 10.4 LTS وما فوق.
قد يؤدي تمكين تعيين العمود على الجداول إلى تقسيم عمليات انتقال البيانات من الخادم التي تعتمد على موجز بيانات تغيير دلتا. راجع تغيير قيود موجز البيانات للجداول مع تمكين تعيين العمود.
قد يؤدي تمكين تعيين العمود على الجداول إلى فصل قراءات الدفق من جدول Delta كمصدر، بما في ذلك في Delta Live Tables. راجع البث مع تعيين العمود وتغييرات المخطط.
تمكين تعيين العمود
يتطلب تعيين العمود بروتوكولات دلتا التالية:
- إصدار القارئ 2 أو أعلى.
- إصدار الكاتب 5 أو أعلى.
بالنسبة لجدول Delta مع إصدارات البروتوكول المطلوبة، يمكنك تمكين تعيين العمود عن طريق تعيين delta.columnMapping.mode
إلى name
.
يمكنك استخدام الأمر التالي لتمكين تعيين العمود:
ALTER TABLE <table-name> SET TBLPROPERTIES (
'delta.columnMapping.mode' = 'name'
)
راجع تعطيل تعيين العمود.
إعادة تسمية عمود
إشعار
متوفر في Databricks Runtime 10.4 LTS وما فوق.
عند تمكين تعيين العمود لجدول Delta، يمكنك إعادة تسمية عمود:
ALTER TABLE <table-name> RENAME COLUMN old_col_name TO new_col_name
لمزيد من الأمثلة، راجع تحديث مخطط جدول Delta Lake.
إسقاط الأعمدة
إشعار
متوفر في Databricks Runtime 11.3 LTS وما فوق.
عند تمكين تعيين العمود لجدول Delta، يمكنك إسقاط عمود واحد أو أكثر:
ALTER TABLE table_name DROP COLUMN col_name
ALTER TABLE table_name DROP COLUMNS (col_name_1, col_name_2, ...)
لمزيد من التفاصيل، راجع تحديث مخطط جدول Delta Lake.
الأحرف المعتمدة في أسماء الأعمدة
عند تمكين تعيين العمود لجدول Delta، يمكنك تضمين مسافات وأي من هذه الأحرف في أسماء أعمدة الجدول: ,;{}()\n\t=
.
الدفق مع تعيين الأعمدة وتغييرات المخطط
هام
هذه الميزة موجودة في المعاينة العامة في Databricks Runtime 13.3 LTS وما فوق.
يمكنك توفير موقع تعقب مخطط لتمكين الدفق من جداول Delta مع تمكين تعيين العمود. يؤدي هذا إلى التغلب على مشكلة قد تؤدي فيها تغييرات المخطط غير المضافة إلى تدفقات مقطوعة.
يجب أن يكون لكل قراءة دفق مقابل مصدر بيانات خاص بها schemaTrackingLocation
. يجب أن يكون المحدد schemaTrackingLocation
مضمنا في الدليل المحدد للجدول checkpointLocation
الهدف للكتابة المتدفقة.
إشعار
بالنسبة لأحمال العمل المتدفقة التي تجمع البيانات من جداول دلتا متعددة المصدر، تحتاج إلى تحديد دلائل فريدة داخل checkpointLocation
لكل جدول مصدر.
يتم استخدام الخيار schemaTrackingLocation
لتحديد مسار تتبع المخطط، كما هو موضح في مثال التعليمات البرمجية التالي:
checkpoint_path = "/path/to/checkpointLocation"
(spark.readStream
.option("schemaTrackingLocation", checkpoint_path)
.table("delta_source_table")
.writeStream
.option("checkpointLocation", checkpoint_path)
.toTable("output_table")
)
تعطيل تعيين العمود
في Databricks Runtime 15.3 وما فوق، يمكنك استخدام DROP FEATURE
الأمر لإزالة تعيين العمود من جدول والرجوع إلى إصدار أحدث من بروتوكول الجدول.
راجع ميزات جدول Drop Delta.