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.