Skip to main content
バージョン 25.6 以降で利用可能このテーブルエンジンは、OSS と Cloud の両方でバージョン 25.6 以降から利用できます。
このエンジンは MergeTree を継承しています。主な違いは、パーツのマージ方法にあります。CoalescingMergeTree テーブルでは、ClickHouse は同じ主キー (より正確には同じソートキー) を持つすべての行を、各カラムの最新の非 NULL 値を含む 1 行に置き換えます。 これにより、カラム単位の upsert が可能になり、行全体ではなく特定のカラムだけを更新できます。 CoalescingMergeTree は、キーカラム以外で Nullable 型を使用することを前提としています。カラムが Nullable でない場合、動作は ReplacingMergeTree と同じです。

テーブルの作成

リクエストパラメータの詳細については、リクエストの説明を参照してください。

CoalescingMergeTree のパラメータ

カラム

columns - 任意。値を結合するカラム名のタプルです。指定するカラムは、パーティションまたはソートキーに含めることはできません。columns が指定されていない場合、ClickHouse はソートキーに含まれないすべてのカラムの値を結合します。

クエリ句

CoalescingMergeTree テーブルを作成する場合、MergeTree テーブルの作成時と同じが必要です。

使用例

次のテーブルについて考えます。
そのテーブルにデータを挿入します:
結果は次のようになります。
正しい最終結果を得るための推奨クエリ:
FINAL 修飾子を使用すると、ClickHouse はクエリ時にマージロジックを適用し、各カラムについて正しく統合された”最新”の値を確実に取得できます。これは、CoalescingMergeTree テーブルにクエリを実行する際に、最も安全かつ正確な方法です。
GROUP BY を使う方法では、基盤となるパーツが完全にマージされていない場合、誤った結果が返されることがあります。

Tuple 要素の集約

allow_tuple_element_aggregation 設定を有効にすると、Tuple カラムは再帰的にフラット化され、各リーフ要素が独立して coalescing の対象になります。これにより、複数のフィールドを 1 つの Tuple カラムに格納しつつ、マージ時には要素単位で coalescing できます。各 Nullable サブカラムは、それぞれ独立して最新の非 NULL 値を保持します。 フラット化されたサブカラムにも、通常のカラムと同じルールが適用されます。
  • ソートキーまたはパーティションキー内の Tuple に属するサブカラムは、coalescing の対象外です。
  • columns が指定されている場合、列挙された Tuple カラムのサブカラムのみが coalescing されます。
この設定は変更不可であり、テーブル作成時に指定する必要があります。
最終更新日 2026年7月23日