Clickhouse, O Banco De Dados Mais Rápido Do Mundo Que Você Provavelmente Não Conhece

Enfrentar problemas para analisar grandes volumes de dados não deve ser uma novidade para ninguém hoje em dia. Porem muitas pessoas não sabem mas já existem soluções para esse problema, uma delas é o banco de dados ClickHouse. Neste artigo iremos dar uma olhada nas duas principais categorias de bancos de dados existentes e também nos aprofundar um pouco em como o ClickHouse funciona.

Como citado anteriormente, hoje em dia existem duas grandes classificações para bancos de dados, sendo elas as seguintes:

OLTP

Processamento de Transações Online (Online Transaction Processing).

imagem_2022-09-02_192032090
  • Dados Normalizados (distribuído em entidades/tabelas);
  • Perfeito para dados mutáveis; (Atualização e Exclusão frequentes);
  • Transacional.
OLAP

Processamento analítico online (Online Analytical Processing).

imagem_2022-09-02_192121918
  • Dados Desnormalizados (todas as informações residem na mesma entidade/tabela);
  • Perfeito para dados imutáveis;
  • Analítico;
    • Desempenho superior em grandes agregações, exemplo: Geração de gráficos e indicadores diários, mensais, anuais.

Outro detalhe, que não é regra mas é algo muito comum em bancos de dados OLAP é a ausência (ou não eficiência) das funcionalidades para alteração dos dados já presentes no banco (famoso UPDATE e DELETE). 

O ClickHouse conta com essas funcionalidades porem elas são operações assíncronas. Segundo eles mesmos:

Embora o ClickHouse seja voltado para cargas de trabalho analíticas de alto volume, é possível, em algumas situações, modificar ou excluir dados existentes. Essas operações são rotuladas como "mutações" e são executadas usando o comando ALTER TABLE.

Antes de nos aprofundarmos mais em como o ClickHouse funciona, vamos dar uma olhada rápida em como ele surgiu.

Historia
imagem_2022-09-02_200146999
2008-2012

Nasceu para o projeto Yandex.Metrica, hoje é o 3° maior plataforma de WEB analytics do mundo, perdendo apenas para G.A. e Facebook Pixel, dai vem o nome ClickHouse, “casa dos clicks” traduzindo. Yandex é o site de busca mais utilizado na Rússia.

imagem_2022-09-02_200146999
2014

Yandex.Metrica era responsável por um fluxo de dados de 20 bilhões de eventos diariamente. Armazenando mais de 20.3 trilhões de linhas em 2 PB de dados (em CSV isso é equivalente a 17 PB).

imagem_2022-09-02_200256831
2016

Em 2016, o projeto ClickHouse foi lançado como software de código aberto sob a licença do Apache 2.

Por que ClickHouse ?

Agora que já entendemos como ele surgiu e algumas de suas peculiaridades vamos dar uma aprofundada a mais e entender o porque você deveria escolher ele ao invés de outros bancos de dados na mesma categoria.

Performance!

O ClickHouse oferece o melhor desempenho de consulta do setor, ao mesmo tempo em que reduz significativamente os requisitos de armazenamento por meio de uso de armazenamento e compactação colunar dos dados.

Abaixo podemos ver alguns testes de benchmark comparando o ClickHouse com o MySQL e PostgreSQL.

Você pode ver o benchmark completo neste link.

Oque faz ele ter um desempenho absurdo (além de diminuir significativamente o espaço de armazenamento) é que o ClickHouse é um banco colunar, podemos ver abaixo o quanto isso faz diferença no tempo das consultas.

Banco orientado a LINHAS
(PostgreSQL, MySQL, SQLServer…)

Banco orientado a COLUNAS
(ClickHouse)

Não sei vocês mas testes de benchmark para mim são como propagandas de politico, promete muito, mas eu só acredito vendo, por isso vamos dar uma olhada em um teste comparando o ClickHouse e um banco de dados Oracle em um cenário real em produção.

Abaixo estão alguns testes comparando-os.

Primeiro vamos entender nosso cenário, estamos trabalhando com dados de notas fiscais eletrônicas, ambas as tabelas em ambos os bancos contem estruturas similares (mesmas colunas) e quantidade de dados (linhas) semelhantes, como pode ser observado a seguir.

E sim, o banco de dados Oracle esta devidamente indexado e otimizado. E para titulo de curiosidade ele se encontra em um servidor com o dobro de capacidade (memória e processamento) do que o servidor que esta o ClickHouse.

Como podemos ver a diferença de tempo em cada uma das consultas foi absurda, levando 177ms para o ClickHouse e 17s para o Oracle. 

Agrupando mensalmente também não fez praticamente nenhuma diferença no ClickHouse, com tempo de consulta de 345ms e no Oracle com 18s.

Outra funcionalidade incrível é a integração nativa que o ClickHouse tem com o AWS S3, permitindo salvar o resultado de consultas em arquivos diretamente no S3, além de poder ler esses arquivos posteriormente de maneira muito simples. Como podem ver na imagem acima levou apenas cerca de 6 segundos para gerar a extração de um arquivo em CSV com centenas de milhares de linhas, enquanto no Oracle tive que cancelar a consulta após esperar mais de 2 horas para o banco realizar o fetch dos dados.

Escalabilidade!

Utilizado em produção por empresas como Uber, Ebay, Cloudflare, Spotify, Deutsche Bank (maior banco da Alemanha), etc. Com escalabilidade horizontal e vertical linear. De implantações de servidor único a clusters com muitos milhares de nós.

Confiabilidade!

O ClickHouse apresenta a melhor disponibilidade da classe. Não há pontos únicos de falha (single point of failure), com a arquitetura suportando replicação de vários mestres. Com desempenho eficaz em configurações de várias regiões.

Segurança!

O ClickHouse vem com recursos de segurança de nível empresarial e mecanismos à prova de falhas que protegem contra corrupção de dados e bugs de aplicativos, e erros humanos. Todas as ações realizadas são registradas.

Para mais detalhes recomendo dar uma olhada na documentação oficial do ClickHouse.

Deixe um comentário abaixo! Você acredita que o ClickHouse tem tudo para ser o banco de dados da stack de dados moderna ou existem melhores alternativas ?

5 7 Votos
Relevância do artigo
Se inscrever
Notificar de
0 Comentários
Inline Feedbacks
Ver todos
Rolar para cima