trilha

Tecnologias/02 - Bancos de Dados/04 - Colunares/01 - ClickHouse2 min

ClickHouse

Definição

ClickHouse é um sistema de banco de dados colunar voltado a processamento analítico (OLAP). Ele executa consultas SQL sobre grandes conjuntos de dados, com foco em filtros, agregações e exploração de eventos.

Colunar significa organizar valores por coluna no armazenamento. Uma consulta que usa data e total pode evitar a leitura de outras colunas. Valores do mesmo tipo juntos também favorecem compressão e processamento em lotes. Referência: introdução oficial.

OLAP e OLTP

Carga Exemplo Trabalho principal
OLTP — transacional Alterar o estado de um pedido Poucos registros e regras de transação
OLAP — analítica Somar vendas por dia e região Muitas linhas e poucas colunas relevantes

ClickHouse fica na subdivisão Colunares por sua organização de armazenamento. “Analítico” descreve a carga; “colunar”, o armazenamento; “SQL”, a interface de consulta. Esses termos não são categorias mutuamente exclusivas.

Exemplo de uso

Um sistema registra eventos de acesso com horário, caminho e duração. Para descobrir quais páginas ficaram mais lentas, agrupa os eventos por caminho e calcula médias ou quantis. É um tipo de trabalho diferente de atualizar uma sessão individual.

O desempenho depende também da ordenação dos dados, da seletividade dos filtros, das partes lidas e dos recursos disponíveis. A palavra “colunar” não garante que qualquer consulta terá custo baixo.

Organização e limites

A família MergeTree mantém dados em partes e realiza merges em segundo plano. A chave de ordenação influencia a capacidade de ignorar trechos que não interessam. Sua chave primária não impõe, por si só, unicidade de linhas. Referência: MergeTree.

Aprofundamento aplicado

Desenhar o fluxo de eventos até o painel

Uma API transacional pode produzir eventos que são enviados ao ClickHouse para análise. Esse caminho precisa definir atraso aceitável, identidade dos eventos e tratamento de repetições. Uma tabela analítica não adquire unicidade só por declarar chave primária.

Cenário: um consumidor reenvia um lote após perder a confirmação. Uma soma ingênua pode contar duas vezes a mesma venda se o desenho de ingestão não tratar duplicidade. A correção pode estar na identificação do lote, no modelo de versões ou na consulta, conforme engine e integração escolhidas.

Medir a consulta pelo trabalho realizado

Para um painel diário, registre linhas e bytes lidos, duração, memória e concorrência. Colunas largas que a consulta não usa podem ser evitadas; filtros que não combinam com a organização dos dados ainda podem provocar leitura ampla.

Exercício: defina um painel com soma de vendas por dia e um prazo de atualização de 60 segundos. Resultado esperado: explique como eventos atrasados e repetidos afetam o resultado, além de escolher o SQL da agregação.

Referência: organização e garantias do MergeTree.

Relacionado: DuckDB · 2. MergeTree e Consultas no ClickHouse · 2. Apache Parquet e Consultas no S3.


Parte de ClickHouse

Buscar

Busca por título, seção e texto das notas