ALTER TABLE PARTITION
适用于: Databricks SQL Databricks Runtime
添加、删除、重命名或恢复表的分区。
Delta Lake 表不支持管理分区。
语法
ALTER TABLE table_name
{ ADD PARTITION clause |
DROP PARTITION clause |
PARTITION SET LOCATION clause |
RENAME PARTITION clause |
RECOVER PARTITIONS clause }
ADD PARTITION
子句
向表中添加一个或多个分区。
Delta Lake 表不支持管理分区。
语法
ADD [IF NOT EXISTS] { PARTITION clause [ LOCATION path ] } [...]
参数
IF NOT EXISTS
一个可选子句,指示 Azure Databricks 在分区已存在时忽略该语句。
-
要添加的分区。 分区键必须与表的分区匹配,并且必须与值关联。 如果分区已存在,则会引发错误,除非已指定
IF NOT EXISTS
。 LOCATION path
path
必须是表示指向分区的可选位置的STRING
文本。如果未指定位置,则位置将派生自表和分区键的位置。
如果位置存在文件,则这些文件将填充分区,并且必须与表及其选项的
data_source
兼容。
DROP PARTITION
子句
从表中删除一个或多个分区,选择性地删除分区位置的任何文件。
Delta Lake 表不支持管理分区。
语法
DROP [ IF EXISTS ] PARTITION clause [, ...] [PURGE]
参数
IF EXISTS
指定
IF EXISTS
时,Azure Databricks 将忽略删除不存在的分区的尝试。 否则,不存在的分区将导致错误。-
指定要删除的分区。 如果仅部分标识了分区,则删除分区的切片。
PURGE
如果设置此项,则即使目录已配置了回收文件夹,表目录也必须通过跳过该文件夹来删除分区数据。 此选项仅适用于托管表。 它只在以下情况下有效:
文件系统支持回收站文件夹。 目录已配置为将已删除的分区移动到回收站文件夹。 AWS S3 中没有任何回收站文件夹,因此它无效。
删除分区后,无需手动删除文件。
RENAME PARTITION
子句
替换分区的键。
Delta Lake 表不支持管理分区。
语法
from_partition_clause RENAME TO to_partition_clause
参数
-
要重命名的分区的定义。
-
此分区的新定义。 不能存在具有相同键的分区。
RECOVER PARTITIONS
子句
此子句不适用于 Delta Lake 表。
指示 Azure Databricks 扫描表的位置,并将已直接添加到文件系统的任何文件添加到表中。
Delta Lake 表不支持管理分区。
语法
RECOVER PARTITIONS
parameters
无
PARTITION SET LOCATION 子句
移动分区的位置。
Delta Lake 表不支持管理分区。
语法
PARTITION clause SET LOCATION path
参数
-
确定要更改位置的分区。
LOCATION path
path
必须是STRING
文本。 指定分区的新位置。原始位置中的文件不会移动到新位置。
示例
请参阅 ALTER TABLE 示例。