توسيع النوع
هام
هذه الميزة موجودة في المعاينة العامة في Databricks Runtime 15.2 وما فوق.
تسمح لك الجداول التي تم تمكين توسيع النوع بها بتغيير أنواع بيانات الأعمدة إلى نوع أوسع دون إعادة كتابة ملفات البيانات الأساسية. يمكنك إما تغيير أنواع الأعمدة يدويا أو استخدام تطور المخطط لتطوير أنواع الأعمدة.
يتطلب توسيع النوع Delta Lake. تستخدم جميع الجداول المدارة في كتالوج Unity Delta Lake بشكل افتراضي.
تغييرات النوع المدعومة
يمكنك توسيع الأنواع وفقا للقواعد التالية:
نوع المصدر | أنواع أوسع مدعومة |
---|---|
byte |
short ، ، int long |
short |
int , long |
int |
long |
float |
double |
decimal |
decimal بدقة أكبر ونفس المقياس |
date |
timestampNTZ |
يتم اعتماد تغييرات النوع لأعمدة المستوى الأعلى والحقول المتداخلة داخل البنيات والخرائط والصفائف.
تمكين توسيع النوع
يمكنك تمكين توسيع النوع على جدول موجود عن طريق تعيين delta.enableTypeWidening
خاصية الجدول إلى true
:
ALTER TABLE <table_name> SET TBLPROPERTIES ('delta.enableTypeWidening' = 'true')
يمكنك أيضا تمكين توسيع النوع أثناء إنشاء الجدول:
CREATE TABLE T(c1 INT) TBLPROPERTIES('delta.enableTypeWidening' = 'true')
هام
عند تمكين توسيع النوع، فإنه يعين ميزة typeWidening-preview
الجدول ، والتي تقوم بترقية بروتوكولات القارئ والكاتب. يجب استخدام Databricks Runtime 15.2 أو أعلى للتفاعل مع الجداول مع تمكين توسيع النوع. إذا تفاعل العملاء الخارجيون أيضا مع الجدول، فتحقق من أنهم يدعمون ميزة الجدول هذه. راجع كيف تدير Azure Databricks توافق ميزة Delta Lake؟.
تطبيق تغيير نوع يدويا
ALTER COLUMN
استخدم الأمر لتغيير الأنواع يدويا:
ALTER TABLE <table_name> ALTER COLUMN <col_name> TYPE <new_type>
تحدث هذه العملية مخطط الجدول دون إعادة كتابة ملفات البيانات الأساسية.
توسيع الأنواع مع تطور المخطط التلقائي
يعمل تطور المخطط مع توسيع النوع لتحديث أنواع البيانات في الجداول الهدف لمطابقة نوع البيانات الواردة.
إشعار
دون تمكين توسيع النوع، يحاول تطور المخطط دائما خفض البيانات بأمان لمطابقة أنواع الأعمدة في الجدول الهدف. إذا كنت لا تريد توسيع أنواع البيانات تلقائيا في الجداول المستهدفة، فقم بتعطيل توسيع النوع قبل تشغيل أحمال العمل مع تمكين تطور المخطط.
لاستخدام تطور المخطط توسيع نوع بيانات العمود، يجب أن تفي بالشروط التالية:
- يستخدم
INSERT
الأمر أوMERGE INTO
. - يتم تشغيل الأمر مع تمكين تطور المخطط التلقائي.
- تم تمكين توسيع النوع في الجدول الهدف.
- نوع العمود المصدر أعرض من نوع العمود الهدف.
- يدعم توسيع النوع تغيير النوع.
تتبع عدم تطابقات النوع التي لا تفي بجميع هذه الشروط قواعد فرض المخطط العادية. راجع فرض المخطط.
تعطيل ميزة جدول توسيع النوع
يمكنك منع توسيع النوع العرضي على الجداول الممكنة عن طريق تعيين الخاصية إلى false
:
ALTER TABLE <table_name> SET TBLPROPERTIES ('delta.enableTypeWidening' = 'false')
يمنع هذا الإعداد تغييرات النوع المستقبلية في الجدول، ولكنه لا يزيل ميزة جدول توسيع النوع أو التراجع عن الأنواع التي تم تغييرها.
إذا كنت بحاجة إلى إزالة ميزات جدول توسيع النوع بالكامل، يمكنك استخدام DROP FEATURE
الأمر كما هو موضح في المثال التالي:
ALTER TABLE <table-name> DROP FEATURE 'typeWidening-preview' [TRUNCATE HISTORY]
عند إسقاط توسيع النوع، تتم إعادة كتابة جميع ملفات البيانات التي لا تتوافق مع مخطط الجدول الحالي. راجع ميزات جدول Drop Delta.