ClickHouse vs Elasticsearch: Qual usar para Logs/Analytics?
ClickHouse é um banco de dados colunar rápido para analytics e consultas de logs; Elasticsearch é um motor de busca full-text com busca de texto e agregações robustas.
O ClickHouse armazena dados de forma colunar e os comprime agressivamente, tornando rápidas e baratas as consultas analíticas e de agregação de logs em larga escala, embora a busca full-text seja menos nativa. O Elasticsearch indexa conteúdo para uma busca full-text rica e exploração por facetas, com custo de armazenamento maior. O ClickHouse ganha em throughput analítico e custo de armazenamento; o Elasticsearch ganha em busca full-text e experiência de exploração.
| ClickHouse | Elasticsearch | |
|---|---|---|
| Modelo | SQL colunar | Índice invertido |
| Ponto forte | Analytics, agregações | Busca full-text |
| Custo de armazenamento | Muito baixo | Maior |
| Full-text | Limitado | Excelente |
| Melhor para | Analytics de logs em escala | Logs com muita busca |
Caso de uso e custo
O ClickHouse é adequado para analytics de logs e eventos de alto volume, onde agregações SQL e custo de armazenamento predominam; muitas plataformas de observabilidade agora armazenam logs no ClickHouse. O Elasticsearch é adequado para uso com muita busca, onde usuários exploram texto livremente e precisam de ranqueamento e facetas.
Adequação a ops e CI
O ClickHouse comprime extremamente bem e é eficiente de executar; o Elasticsearch exige ajuste cuidadoso de shards e heap. Ambos passam por testes de integração em CI contra instâncias efêmeras, onde runners gerenciados mais rápidos encurtam os pulls de imagem e os testes de consulta.
Decide with your own numbers, not a feature table
Feature comparisons age badly and rarely decide anything, because both tools in a mature category can do the job. What differs is how each behaves on your repository, and that takes one afternoon to measure.
# time a cold install with each candidate, cache cleared
hyperfine --prepare "rm -rf node_modules" --warmup 1 \
"<tool-a> install" "<tool-b> install"
# and the thing CI actually pays for: a cold run with no local cache
docker run --rm -v "$(pwd):/w" -w /w node:22 sh -c "<tool> install"What actually changes when you switch
- Lockfile format. A switch is a one-way door for anyone still on the old tool until everyone migrates, so plan it as a single coordinated change.
- Resolution strictness. Tools differ on whether an undeclared transitive import works, and the stricter one will surface latent bugs as new failures.
- CI cache configuration. The cache path and key differ per tool; carrying over the old ones silently disables caching.
- Everyone on the team and every runner must move together. Pin the version so they cannot drift.
O veredito
Quer analytics de logs barato e rápido com SQL: ClickHouse. Quer busca full-text rica e exploração: Elasticsearch. Analytics e custo favorecem o ClickHouse; profundidade de busca favorece o Elasticsearch.