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.
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
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
CoalescingMergeTree, são necessárias as mesmas cláusulas que na criação de uma tabela MergeTree.
Exemplo de uso
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
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
Tuplena chave de ordenação ou na chave de partição são excluídas da coalescência. - Se
columnsfor especificado, somente as subcolunas das colunasTuplelistadas serão coalescidas.
Essa configuração é imutável e deve ser especificada no momento da criação da tabela.