ALTER TABLE PARTITION

适用于:Databricks SQL check marked yes 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 子句

向表中添加一个或多个分区。

语法

ADD [IF NOT EXISTS] { PARTITION clause [ LOCATION path ] } [...]

参数

  • IF NOT EXISTS

    一个可选子句,指示 Azure Databricks 在分区已存在时忽略该语句。

  • PARTITION 子句

    要添加的分区。 分区键必须与表的分区匹配,并且必须与值关联。 如果分区已存在,则会引发错误,除非已指定 IF NOT EXISTS

  • LOCATION path

    path 必须是表示指向分区的可选位置的 STRING 文本。

    如果未指定位置,则位置将派生自表和分区键的位置。

    如果位置存在文件,则这些文件将填充分区,并且必须与表及其选项的 data_source 兼容。

DROP PARTITION 子句

从表中删除一个或多个分区,可以选择删除分区位置的任何文件。

语法

DROP [ IF EXISTS ] PARTITION clause [, ...] [PURGE]

参数

  • IF EXISTS

    指定 IF EXISTS 时,Azure Databricks 将忽略删除不存在的分区的尝试。 否则,不存在的分区将导致错误。

  • PARTITION 子句

    指定要删除的分区。 如果仅部分标识了分区,则删除分区的切片。

  • PURGE

    如果设置此项,则即使目录已配置了回收文件夹,表目录也必须通过跳过该文件夹来删除分区数据。 此选项仅适用于托管表。 它只在以下情况下有效:

    文件系统支持回收站文件夹。 目录已配置为将已删除的分区移动到回收站文件夹。 AWS S3 中没有任何回收站文件夹,因此它无效。

    删除分区后,无需手动删除文件。

RENAME PARTITION 子句

替换分区的键。

语法

from_partition_clause RENAME TO to_partition_clause

参数

RECOVER PARTITIONS 子句

此子句不适用于 Delta Lake 表。

指示 Azure Databricks 扫描表的位置,并将已直接添加到文件系统的任何文件添加到表中。

语法

RECOVER PARTITIONS

parameters

PARTITION SET LOCATION 子句

移动分区的位置。

语法

PARTITION clause SET LOCATION path

参数

  • PARTITION 子句

    确定要更改位置的分区。

  • LOCATION path

    path 必须是 STRING 文本。 指定分区的新位置。

    原始位置中的文件不会移动到新位置。

示例

请参阅 ALTER TABLE 示例