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