適用対象:
Databricks SQL
Databricks Runtime 11.3 LTS 以上
Delta Lake テーブルを再構成するには、ファイルを書き換えて論理的に削除されたデータを消去する必要があります。たとえば、ALTER TABLE DROP COLUMN によって削除された列データを除去したり、Delta Lake チェックポイントを実行してメタデータ管理を改善したりします。
構文
REORG [ TABLE ] table_name { [ WHERE predicate ] APPLY ( PURGE ) |
APPLY ( UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ) |
CHECKPOINT ) }
15.4 TABLE より前の Databricks ランタイム バージョンでは、必須のキーワードです。
注
-
APPLY (PURGE)は、論理的に削除されたデータを含むファイルのみを書き換えます。 -
APPLY (UPGRADE)はすべてのファイルを書き換える可能性があります。 -
REORG TABLEは "べき等" です。これは、同じデータセットに対して 2 回実行された場合、2 回目の実行には効果がないことを意味します。 -
APPLY (PURGE)の実行後も、論理的に削除されたデータが古いファイルにまだ存在する可能性があります。 VACUUMを実行して、古いファイルを物理的に削除できます。 -
APPLY (CHECKPOINT)では、競合状態による破損を防ぐために 、テーブルで V2 チェックポイント テーブル機能 を有効にする必要があります。
パラメーター
-
既存の Delta テーブルを識別します。 名前には、 時仕様またはオプション指定を含めてはなりません。
WHERE述語APPLY (PURGE)の場合、指定されたパーティション述語に一致するファイルを再構成します。 パーティション キー属性を含むフィルターのみがサポートされています。APPLY (PURGE)ファイルの書き換えの目的を、論理的に削除されたデータの消去と指定します。 「メタデータのみの削除を消去してデータの書き換えを強制する」を参照してください。
APPLY (UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ))適用対象:
Databricks SQL
Databricks Runtime 14.3 以降ファイルの書き換えの目的が、テーブルを特定の Apache Iceberg バージョンにアップグレードすることを指定します。
versionは、1または2のいずれかである必要があります。APPLY (CHECKPOINT)適用対象:
Databricks Runtime 16.3 以上テーブルの最新の Delta バージョンに対してデルタ チェックポイント処理を実行します。
例
> 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));
> REORG TABLE events APPLY (CHECKPOINT);