إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Databricks SQL
Databricks Runtime
تغيير مخطط الجدول أو خصائصه.
لتغييرات النوع أو إعادة تسمية الأعمدة في Delta Lake، راجع إعادة كتابة البيانات.
لتغيير التعليق على جدول، يمكنك أيضا استخدام تعليق على.
لتغيير STREAMING TABLE، استخدم ALTER STREAMING TABLE.
إذا تم تخزين الجدول مؤقتا، يقوم الأمر بمسح البيانات المخزنة مؤقتا للجدول وكافة التوابع الخاصة به التي تشير إليه. سيتم تعبئة ذاكرة التخزين المؤقت ببطء عند الوصول إلى الجدول أو التوابع في المرة التالية.
إشعار
عند إضافة عمود إلى جدول Delta موجود، لا يمكنك تعريف DEFAULT قيمة. يتم التعامل مع جميع الأعمدة المضافة إلى جداول Delta على أنها NULL للصفوف الموجودة. بعد إضافة عمود، يمكنك تحديد قيمة افتراضية للعمود بشكل اختياري، ولكن يتم تطبيق ذلك فقط على الصفوف الجديدة المدرجة في الجدول. استخدم بناء الجملة التالي:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression
في الجداول الخارجية، يمكنك تنفيذ و فقطALTER TABLE SET OWNER.ALTER TABLE RENAME TO
الأذونات المطلوبة
إذا كنت تستخدم كتالوج Unity، يجب أن يكون لديك MODIFY إذن ل:
- تغيير العمود
- إضافة عمود
- إسقاط عمود
- تعيين TBLPROPERTIES
- إلغاء تعيين TBLPROPERTIES
- تعديل التحسين التنبؤي
تتطلب جميع العمليات الأخرى ملكية الجدول.
بناء الجملة
ALTER TABLE table_name
{ RENAME TO clause |
ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause |
ADD CONSTRAINT clause |
DROP CONSTRAINT clause |
DROP FEATURE clause |
ADD PARTITION clause |
DROP PARTITION clause |
PARTITION SET LOCATION clause |
RENAME PARTITION clause |
RECOVER PARTITIONS clause |
SET { ROW FILTER clause } |
DROP ROW FILTER |
SET TBLPROPERTIES clause |
UNSET TBLPROPERTIES clause |
SET SERDE clause |
SET LOCATION clause |
SET OWNER TO clause |
SET SERDE clause |
SET TAGS clause |
UNSET TAGS clause |
CLUSTER BY clause }
PREDICTIVE OPTIMIZATION clause}
المعلمات
-
يحدد الجدول الذي يتم تغييره. يجب ألا يتضمن الاسم مواصفات زمنية أو مواصفات خيارات. إذا تعذر العثور على الجدول، فإن Azure Databricks يثير خطأ TABLE_OR_VIEW_NOT_FOUND .
RENAME TOto_table_nameإعادة تسمية الجدول داخل نفس المخطط.
-
تعريف اسم الجدول الجديد. يجب ألا يتضمن الاسم مواصفات زمنية أو مواصفات خيارات.
-
-
إضافة عمود واحد أو أكثر إلى الجدول.
-
تغيير خاصية أو موقع عمود.
-
إسقاط عمود أو حقل واحد أو أكثر في جدول Delta Lake.
-
إعادة تسمية عمود أو حقل في جدول Delta Lake.
-
إضافة قيد فحص أو قيد مفتاح خارجي إعلامي أو قيد مفتاح أساسي إعلامي إلى الجدول.
يتم دعم المفاتيح الخارجية والمفاتيح الأساسية فقط للجداول في كتالوج Unity، وليس الكتالوج
hive_metastore. -
إسقاط مفتاح أساسي أو مفتاح خارجي أو قيد التحقق من الجدول.
DROP FEATURE feature_name [ TRUNCATE HISTORY ]ينطبق على:
Databricks SQL
Databricks Runtime 14.1 وما فوقإزالة ميزة من جدول Delta Lake.
تتطلب إزالة الميزات التي تؤثر على كل من القراء والكتاب عملية مرحلتين:
يمسح استدعاء الأول أي آثار للميزة ويعلمك بنجاح جزئي.
ثم تحتاج إلى الانتظار حتى تنتهي فترة الاستبقاء وإعادة تنفيذ العبارة لإكمال الإزالة.
إذا بدأت استدعاء الثاني مبكرا جدا، فإن Azure Databricks يثير DELTA_FEATURE_DROP_WAIT_FOR_RETENTION_PERIOD أو DELTA_FEATURE_DROP_HISTORICAL_VERSIONS_EXIST.
راجع ما هي ميزات الجدول؟ للحصول على التفاصيل.
feature_nameاسم ميزة في شكل
STRINGحرفي أو معرف، يجب أن يفهمه Azure Databricks وأن يكون مدعوما على الجدول.المدعومة
feature_namesهي:- "deleteionVectors" أو
deletionvectors- 'v2Checkpoint' أو
v2checkpoint
- 'v2Checkpoint' أو
إذا لم تكن الميزة موجودة في الجدول فإن Azure Databricks يرفع DELTA_FEATURE_DROP_FEATURE_NOT_PRESENT.
- "deleteionVectors" أو
اقتطاع المحفوظات
يسمح لك اختياريا ببدء المرحلة الثانية من إسقاط ميزة القارئ بالإضافة إلى الكاتب بعد 24 ساعة عن طريق اقتطاع محفوظات الجدول إلى وقت تنفيذ أمر استدعاء.
يؤدي اقتطاع محفوظات الجدول إلى الحد من قدرتك على تنفيذ وصف المحفوظات وتنفيذ استعلامات السفر عبر الوقت.
-
إضافة قسم واحد أو أكثر إلى الجدول.
-
إسقاط قسم واحد أو أكثر من الجدول.
-
تعيين موقع القسم.
-
استبدال مفاتيح القسم.
-
يرشد Azure Databricks إلى مسح موقع الجدول ضوئيا وإضافة أي ملفات إلى الجدول التي تمت إضافتها مباشرة إلى نظام الملفات.
-
ينطبق على:
Databricks SQL
Databricks Runtime 12.2 LTS وما فوق
كتالوج Unity فقطإضافة دالة عامل تصفية صف إلى الجدول. تتلقى جميع الاستعلامات اللاحقة إلى الجدول مجموعة فرعية من الصفوف حيث يتم تقييم الدالة إلى TRUE منطقي. يمكن أن يكون هذا مفيدا لأغراض التحكم في الوصول الدقيقة حيث يمكن للوظيفة فحص الهوية أو عضويات المجموعة للمستخدم الذي يستدعي لتحديد ما إذا كان سيتم تصفية صفوف معينة أم لا.
DROP ROW FILTERينطبق على:
كتالوج Unity فقطإسقاط عامل تصفية الصف من الجدول، إن وجد. سترجع الاستعلامات المستقبلية جميع الصفوف من الجدول دون أي تصفية تلقائية.
-
تعيين أو إعادة تعيين خاصية واحدة أو أكثر معرفة من قبل المستخدم.
-
إزالة خاصية واحدة أو أكثر من الخصائص المعرفة من قبل المستخدم.
SET LOCATIONنقل موقع جدول.
SET LOCATION pathLOCATION pathpathيجب أن تكون قيمة حرفيةSTRING. تحديد الموقع الجديد للجدول.لن يتم نقل الملفات الموجودة في الموقع الأصلي إلى الموقع الجديد.
[ SET ] OWNER TOرئيسينقل ملكية الجدول إلى
principal.ينطبق على:
Databricks SQL
Databricks Runtime 11.3 LTS وما فوقSETمسموح به ككلمة أساسية اختيارية.SET TAGS ( { tag_name = tag_value } [, ...] )ينطبق على:
Databricks SQL
Databricks Runtime 13.3 LTS وما فوقتطبيق العلامات على الجدول. يجب أن يكون لديك
APPLY TAGإذن لإضافة علامات إلى الجدول.tag_name
قيمة حرفية
STRING.tag_nameيجب أن يكون فريدا داخل الجدول أو العمود.tag_value
قيمة حرفية
STRING.
UNSET TAGS ( tag_name [, ...] )ينطبق على:
Databricks SQL
Databricks Runtime 13.3 LTS وما فوقإزالة العلامات من الجدول. يجب أن يكون لديك
APPLY TAGإذن لإزالة العلامات من الجدول.tag_name
قيمة حرفية
STRING.tag_nameيجب أن يكون فريدا داخل الجدول أو العمود.
-
ينطبق على:
Databricks SQL
Databricks Runtime 13.3 LTS وما فوقإضافة استراتيجية التجميع لجدول Delta Lake أو تغييرها أو إسقاطها.
{ ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATIONينطبق على:
Databricks SQL
Databricks Runtime 12.2 LTS وما فوق
كتالوج Unity فقطتغيير جدول Delta Lake المدار إلى إعداد التحسين التنبؤي المطلوب.
بشكل افتراضي، عند إنشاء الجداول، يكون
INHERITالسلوك من المخطط.عند تمكين التحسين التنبؤي بشكل صريح أو توريثه كما تم تمكين OPTIMIZE وسيتم استدعاء فراغ تلقائيا على الجدول كما يراه مناسبا من قبل Azure Databricks. لمزيد من التفاصيل، راجع: التحسين التنبؤي للجداول المدارة لكتالوج Unity.
الأمثلة
بالنسبة إلى Delta Lake، أضف القيود وأمثلة على الأعمدة البديلة، راجع
-- RENAME table
> DESCRIBE student;
col_name data_type comment
----------------------- --------- -------
name string NULL
rollno int NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
> ALTER TABLE Student RENAME TO StudentInfo;
-- After Renaming the table
> DESCRIBE StudentInfo;
col_name data_type comment
----------------------- --------- -------
name string NULL
rollno int NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
-- RENAME partition
> SHOW PARTITIONS StudentInfo;
partition
---------
age=10
age=11
age=12
> ALTER TABLE default.StudentInfo PARTITION (age='10') RENAME TO PARTITION (age='15');
-- After renaming Partition
> SHOW PARTITIONS StudentInfo;
partition
---------
age=11
age=12
age=15
-- Add new columns to a table
> DESCRIBE StudentInfo;
col_name data_type comment
----------------------- --------- -------
name string NULL
rollno int NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
> ALTER TABLE StudentInfo ADD columns (LastName string, DOB timestamp);
-- After Adding New columns to the table
> DESCRIBE StudentInfo;
col_name data_type comment
----------------------- --------- -------
name string NULL
rollno int NULL
LastName string NULL
DOB timestamp NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
-- Add a new partition to a table
> SHOW PARTITIONS StudentInfo;
partition
---------
age=11
age=12
age=15
> ALTER TABLE StudentInfo ADD IF NOT EXISTS PARTITION (age=18);
-- After adding a new partition to the table
> SHOW PARTITIONS StudentInfo;
partition
---------
age=11
age=12
age=15
age=18
-- Drop a partition from the table
> SHOW PARTITIONS StudentInfo;
partition
---------
age=11
age=12
age=15
age=18
> ALTER TABLE StudentInfo DROP IF EXISTS PARTITION (age=18);
-- After dropping the partition of the table
> SHOW PARTITIONS StudentInfo;
partition
---------
age=11
age=12
age=15
-- Adding multiple partitions to the table
> SHOW PARTITIONS StudentInfo;
partition
---------
age=11
age=12
age=15
> ALTER TABLE StudentInfo ADD IF NOT EXISTS PARTITION (age=18) PARTITION (age=20);
-- After adding multiple partitions to the table
> SHOW PARTITIONS StudentInfo;
partition
---------
age=11
age=12
age=15
age=18
age=20
-- ALTER or CHANGE COLUMNS
> DESCRIBE StudentInfo;
col_name data_type comment
+-----------------------+---------+-------
name string NULL
rollno int NULL
LastName string NULL
DOB timestamp NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
ALTER TABLE StudentInfo ALTER COLUMN name COMMENT "new comment";
--After ALTER or CHANGE COLUMNS
> DESCRIBE StudentInfo;
col_name data_type comment
----------------------- --------- -----------
name string new comment
rollno int NULL
LastName string NULL
DOB timestamp NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
-- RENAME COLUMN
> ALTER TABLE StudentInfo RENAME COLUMN name TO FirstName;
--After RENAME COLUMN
> DESCRIBE StudentInfo;
col_name data_type comment
----------------------- --------- -----------
FirstName string new comment
rollno int NULL
LastName string NULL
DOB timestamp NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
-- Change the file Location
> ALTER TABLE dbx.tab1 PARTITION (a='1', b='2') SET LOCATION '/path/to/part/ways';
-- SET SERDE/ SERDE Properties (DBR only)
> ALTER TABLE test_tab SET SERDE 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe';
> ALTER TABLE dbx.tab1 SET SERDE 'org.apache.hadoop' WITH SERDEPROPERTIES ('k' = 'v', 'kay' = 'vee');
-- SET TABLE PROPERTIES
> ALTER TABLE dbx.tab1 SET TBLPROPERTIES ('winner' = 'loser');
-- DROP TABLE PROPERTIES
> ALTER TABLE dbx.tab1 UNSET TBLPROPERTIES ('winner');
-- Drop the "deletion vectors" from a Delta table
> ALTER TABLE my_table DROP FEATURE deletionVectors;
-- 24 hours later
> ALTER TABLE my_table DROP FEATURE deletionVectors TRUNCATE HISTORY;
-- Applies three tags to the table named `test`.
> ALTER TABLE test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');
-- Removes three tags from the table named `test`.
> ALTER TABLE test UNSET TAGS ('tag1', 'tag2', 'tag3');
-- Applies three tags to table `main.schema1.test` column `col1`.
> ALTER TABLE main.schema1.test ALTER COLUMN col1 SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');
-- Removes three tags from table `main.schema1.test` column `col1`.
> ALTER TABLE main.schema1.test ALTER COLUMN col1 UNSET TAGS ('tag1', 'tag2', 'tag3');
-- Enables predictive optimization for my_table
> ALTER TABLE my_table ENABLE PREDICTIVE OPTIMIZATION;