Skip to main content
Disponível a partir da versão 25.6Este motor de tabela está disponível a partir da versão 25.6, tanto no OSS quanto no Cloud.
Este motor herda de MergeTree. A principal diferença está em como as partes de dados são mescladas: em tabelas CoalescingMergeTree, o ClickHouse substitui todas as linhas com a mesma chave primária (ou, mais precisamente, a mesma chave de ordenação) por uma única linha que contém os valores não NULL mais recentes de cada coluna. Isso permite upserts no nível da coluna, o que significa que você pode atualizar apenas colunas específicas, em vez de linhas inteiras. CoalescingMergeTree foi projetado para uso com tipos Nullable em colunas que não fazem parte da chave. Se as colunas não forem Nullable, o comportamento será o mesmo do ReplacingMergeTree.

Criar uma tabela

Para ver uma descrição dos parâmetros da requisição, consulte a descrição da requisição.

Parâmetros do CoalescingMergeTree

Colunas

columns - Opcional. Uma tupla com os nomes das colunas em que os valores serão unificados. As colunas fornecidas não devem estar na partição nem na chave de ordenação. Se columns não for especificado, ClickHouse unifica os valores em todas as colunas que não estão na chave de ordenação.

Cláusulas da consulta

Ao criar uma tabela CoalescingMergeTree, são necessárias as mesmas cláusulas que na criação de uma tabela MergeTree.

Exemplo de uso

Considere a tabela a seguir:
Insira dados nele:
O resultado ficará assim:
Consulta recomendada para obter o resultado correto e definitivo:
Usar o modificador FINAL força o ClickHouse a aplicar a lógica de mesclagem no momento da consulta, garantindo que você obtenha o valor “mais recente” correto e consolidado para cada coluna. Esse é o método mais seguro e preciso ao consultar uma tabela CoalescingMergeTree.
Uma abordagem com GROUP BY pode retornar resultados incorretos se as partes subjacentes ainda não tiverem sido totalmente mescladas.

Agregação de elementos de Tuple

Quando a configuração allow_tuple_element_aggregation está habilitada, as colunas Tuple são achatadas recursivamente para que cada elemento folha participe da coalescência de forma independente. Isso permite armazenar vários campos em uma única coluna Tuple e fazer com que eles sejam coalescidos por elemento durante as mesclagens — cada subcoluna Nullable mantém de forma independente o valor não NULL mais recente. As mesmas regras se aplicam às subcolunas achatadas e às colunas regulares:
  • As subcolunas que pertencem a uma Tuple na chave de ordenação ou na chave de partição são excluídas da coalescência.
  • Se columns for especificado, somente as subcolunas das colunas Tuple listadas serão coalescidas.
Essa configuração é imutável e deve ser especificada no momento da criação da tabela.
Última modificação em 23 de julho de 2026