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 ) } )
Note
APPLY (PURGE)
は、論理的に削除されたデータを含むファイルのみを書き換えます。APPLY (UPGRADE)
はすべてのファイルを書き換える可能性があります。REORG TABLE
は "べき等" です。これは、同じデータセットに対して 2 回実行された場合、2 回目の実行には効果がないことを意味します。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));