ClickHouse: Um SGDB(DBMS) de alto desempenho orientado a colunas

ClickHouse: Um sistema de gerenciamento de banco de dados de alto desempenho.
 

O ClickHouse é um sistema de gerenciamento de banco de dados SQL (DBMS) de alto desempenho e orientado a colunas para processamento analítico online (OLAP), disponível como um software de código aberto e uma oferta de nuvem .

Os cenários OLAP normalmente exigem respostas em tempo real sobre grandes conjuntos de dados para consultas analíticas, e é comum ter as seguintes características:

  • Os conjuntos de dados podem ser enormes contendo bilhões ou trilhões de linhas
  • Os dados são organizados em tabelas que muitas vezes contêm muitas colunas
  • Necessidade de obter os resultados retornados em rapidamente(segundos)


Orientados a colunas versus bancos de dados orientados a linhas
 

Em um SGBD orientado a linhas, os dados são armazenados em linhas, com todos os valores relacionados a uma linha armazenados fisicamente um ao lado do outro, enquanto um SGBD orientado a colunas, os dados são armazenados em colunas, com valores das mesmas colunas armazenados juntos.

 

O que torna o ClickHouse rápido ?


O ClickHouse foi inicialmente construído como um protótipo para fazer apenas uma única tarefa bem: filtrar e agregar dados o mais rápido possível. É isso que precisa ser feito para construir um relatório analítico típico, e é isso que uma consulta GROUP BY típica faz. A equipe do ClickHouse tomou várias decisões de alto nível que, quando combinadas, tornaram possível a realização dessa tarefa:

Armazenamento orientado a colunas: Dados de origem geralmente contêm centenas ou até milhares de colunas, enquanto um relatório pode usar apenas algumas delas. O sistema precisa evitar a leitura de colunas desnecessárias para evitar operações caras de leitura de disco.

Índices: As estruturas de dados do ClickHouse residentes na memória permitem a leitura somente das colunas necessárias e somente dos intervalos de linhas necessários dessas colunas.

Compressão de dados: Armazenar valores diferentes da mesma coluna juntos geralmente leva a melhores taxas de compressão (comparado a sistemas orientados a linhas) porque em dados reais uma coluna geralmente tem os mesmos valores, ou não tantos valores diferentes, para linhas vizinhas. Além da compressão de propósito geral, o ClickHouse suporta codecs especializados que podem tornar os dados ainda mais compactos.

Execução de consulta vetorizada: O ClickHouse não apenas armazena dados em colunas, mas também processa dados em colunas. Isso leva a uma melhor utilização do cache da CPU e permite o uso de instruções SIMD da CPU.

Escalabilidade: O ClickHouse pode alavancar todos os núcleos de CPU e discos disponíveis para executar até mesmo uma única consulta. Não apenas em um único servidor, mas também em todos os núcleos de CPU e discos de um cluster.

Referências

Disponível em: <https://clickhouse.com/docs/en/intro/>. Acesso em: 07 de jul. de 2024.

Disponível em: <https://clickhouse.com/docs/en/concepts/why-clickhouse-is-so-fast>. Acesso em: 07 de jul. de 2024.

Data de Publicação: 08-07-2024

Categoria: Clickhouse