Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ALTER TABLE ... APPLY PATCHES

ベータ機能
ALTER TABLE [db.]table [ON CLUSTER cluster] APPLY PATCHES [IN PARTITION partition_id]

このコマンドは、論理更新 UPDATE ステートメントによって作成されたパッチパートの物理的なマテリアライズを手動でトリガーします。影響を受けたカラムのみを書き換えることで、保留中のパッチをデータパートに強制的に適用します。

APPLY PATCHES を使用する場面

パッチパートは通常、apply_patches_on_merge 設定が有効 (デフォルト) であれば、マージ時に自動的に適用されます。ただし、次のようなケースでは、パッチの適用を手動で行いたいことがあります。

  • SELECT クエリ実行時のパッチ適用によるオーバーヘッドを減らすため
  • 複数のパッチパートが蓄積する前にまとめるため
  • パッチがすでに実体化された状態でバックアップまたはエクスポートできるように、データを準備するため
  • apply_patches_on_merge が無効で、パッチを適用するタイミングを制御したい場合

テーブルの未適用のパッチをすべて適用します:

ALTER TABLE my_table APPLY PATCHES;

特定のパーティションにのみパッチを適用します。

ALTER TABLE my_table APPLY PATCHES IN PARTITION '2024-01';

ほかの操作と組み合わせる:

ALTER TABLE my_table APPLY PATCHES, UPDATE column = value WHERE condition;

パッチ適用の監視

system.mutations テーブルを使用すると、パッチ適用の進行状況を監視できます。

SELECT * FROM system.mutations
WHERE table = 'my_table' AND command LIKE '%APPLY PATCHES%';

関連項目

Navigation