このコマンドは、論理更新 UPDATE ステートメントによって作成されたパッチパートの物理的なマテリアライズを手動でトリガーします。影響を受けたカラムのみを書き換えることで、保留中のパッチをデータパートに強制的に適用します。
MergeTree ファミリーのテーブル (レプリケートされた テーブルを含む) でのみ動作します。
- これは mutation 操作であり、バックグラウンドで非同期に実行されます。
通常、APPLY PATCHES を使用する必要はありません
パッチパートは通常、apply_patches_on_merge 設定が有効 (デフォルト) であれば、マージ時に自動的に適用されます。ただし、次のようなケースでは、パッチの適用を手動で行いたいことがあります。
SELECT クエリ実行時のパッチ適用によるオーバーヘッドを減らすため
- 複数のパッチパートが蓄積する前にまとめるため
- パッチがすでに実体化された状態でバックアップまたはエクスポートできるように、データを準備するため
apply_patches_on_merge が無効で、パッチを適用するタイミングを制御したい場合
テーブルの未適用のパッチをすべて適用します:
特定のパーティションにのみパッチを適用します。
ほかの操作と組み合わせる:
system.mutations テーブルを使用すると、パッチ適用の進行状況を監視できます。