REORG TABLE
適用於: Databricks SQL Databricks Runtime 11.3 LTS 和更新版本
透過重寫檔案來清除已軟刪除的數據,以重新組織 Delta Lake table,例如 ALTER TABLE DROP COLUMN捨棄的 column 數據。
語法
REORG [ TABLE ] table_name { [ WHERE predicate ] APPLY ( PURGE ) |
APPLY ( UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ) } )
針對 15.4 TABLE
之前的 Databricks Runtime 版本,是必要關鍵詞。
注意
-
APPLY (PURGE)
只會重寫包含虛刪除資料的檔案。 -
APPLY (UPGRADE)
可能會重寫所有檔案。 -
REORG TABLE
是 等冪,這表示如果在相同的數據集上執行兩次,則第二次執行沒有任何作用。 - 執行
APPLY (PURGE)
之後,虛刪除的數據可能仍存在於舊檔案中。 您可以執行 VACUUM,以實際刪除舊檔案。
Parameters
-
識別現有的 Delta table。 名稱不得包含 時態規格或選項規格。
WHERE
predicate針對
APPLY (PURGE)
,重新組織符合指定 partition 述詞的檔案。 僅支援涉及 partition 鍵屬性的篩選。APPLY (PURGE)
指定檔案重寫的目的是要清除虛刪除的數據。 請參閱 清除僅限元數據刪除以強制數據重寫。
APPLY (UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ))
適用於: Databricks SQL Databricks Runtime 14.3 和更新版本
指定檔案重寫的目的是將 table 升級至指定的 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));