REORG TABLE
适用于: Databricks SQL Databricks Runtime 11.3 LTS 及更高版本
通过重写文件以清除软删除的数据(例如 ALTER TABLE DROP COLUMN 删除的列数据)来重新组织 Delta Lake 表。
语法
REORG [ TABLE ] table_name { [ WHERE predicate ] APPLY ( PURGE ) |
APPLY ( UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ) } )
对于 15.4 之前的 Databricks Runtime 版本,TABLE
是必需关键字。
注意
APPLY (PURGE)
仅重写包含软删除数据的文件。APPLY (UPGRADE)
可以重写所有文件。REORG TABLE
幂等,这意味着如果在同一数据集上运行两次,则第二次运行不起作用。- 运行
APPLY (PURGE)
后,软删除的数据可能仍存在于旧文件中。 可以运行 VACUUM 以物理方式删除旧文件。
参数
-
标识现有的 Delta 表。 名称不得包含时态规范或选项规范。
WHERE
谓词对于
APPLY (PURGE)
,重新组织与给定分区谓词匹配的文件。 仅支持涉及分区键属性的筛选器。APPLY (PURGE)
指定文件重写的目的是清除软删除的数据。 请参阅清除仅元数据删除以强制重写数据。
APPLY (UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ))
适用于: Databricks SQL Databricks Runtime 14.3 及更高版本
指定重写文件的目的是将表升级到给定的 Iceberg 版本。
version
须为1
或2
。
示例
> REORG TABLE events APPLY (PURGE);
> REORG TABLE events WHERE date >= '2022-01-01' APPLY (PURGE);
> REORG TABLE events
WHERE date >= current_timestamp() - INTERVAL '1' DAY
APPLY (PURGE);
> REORG TABLE events APPLY (UPGRADE UNIFORM(ICEBERG_COMPAT_VERSION=2));