ALTER TABLE... PARTITION
適用於:Databricks SQL Databricks Runtime
加入、卸除、重新命名或復原 table的數據分區。
Delta Lake tables不支援管理分割區。
語法
ALTER TABLE table_name
{ ADD PARTITION clause |
DROP PARTITION clause |
PARTITION SET LOCATION clause |
RENAME PARTITION clause |
RECOVER PARTITIONS clause }
ADD PARTITION
子句
將一或多個分割區新增至 table。
Delta Lake tables不支援管理分割區。
語法
ADD [IF NOT EXISTS] { PARTITION clause [ LOCATION path ] } [...]
Parameters
IF NOT EXISTS
選擇性子句,指示 Azure Databricks 在 partition 已經存在時忽略 語句。
-
要加入一個 partition。 partition 鍵必須與 table 的分區一致,並與 values相關聯。 如果 partition 已經存在,除非已指定
IF NOT EXISTS
,否則會引發錯誤。 LOCATION path
path
必須是STRING
常值,代表指向 partition的選擇性位置。如果未指定任何位置,則位置會從 table 和 partition 鍵的位置推導出來。
如果有檔案存在於 partition 的位置,那麼它們會填入該處,並且必須與 table 及其選項中相關的
data_source
相容。
DROP PARTITION
子句
從 table卸除一或多個分割區,選擇性地刪除分割區位置上的任何檔案。
Delta Lake tables不支援管理分割區。
語法
DROP [ IF EXISTS ] PARTITION clause [, ...] [PURGE]
Parameters
IF EXISTS
當您指定
IF EXISTS
Azure Databricks 時,會忽略嘗試卸除不存在的數據分割。 否則,非現有的分割區會造成錯誤。-
指定要卸除的 partition。 如果 partition 只部分地識別了分割區,那麼其中部分會被移除。
PURGE
如果 set,則即使 catalog 已設定垃圾桶資料夾,tablecatalog 也必須略過垃圾桶資料夾來 removepartition 數據。 這個選項僅適用於 Managed tables。 只有在:
檔案系統支援垃圾桶資料夾。 catalog 已設定為將卸除的 partition 移至垃圾桶資料夾。 AWS S3 中沒有垃圾桶資料夾,因此無效。
卸除分割區之後,不需要手動刪除檔案。
RENAME PARTITION
子句
替換 partition的鍵。
Delta Lake tables不支援管理分割區。
語法
from_partition_clause RENAME TO to_partition_clause
Parameters
-
要重新命名之 partition 的定義。
-
這個 partition的新定義。 具有相同鍵值的 partition 不應已存在。
RECOVER PARTITIONS
子句
這個子句不適用於 Delta Lake tables。
指示 Azure Databricks 掃描 table的位置,並將任何直接新增到文件系統的檔案加入到 table。
Delta Lake tables不支援管理分割區。
語法
RECOVER PARTITIONS
Parameters
無
PARTITION SET LOCATION 子句
移動 partition的位置。
Delta Lake tables不支援管理分割區。
語法
PARTITION clause SET LOCATION path
Parameters
-
識別即將要變更位置的 partition。
LOCATION path
path
必須是STRING
常值。 指定 partition的新位置。原始位置中的檔案將不會移至新位置。
範例
請參閱 ALTER TABLE範例。