O que é ClickHouse?
ClickHouse® é um sistema gerenciador de banco de dados SQL orientado a colunas (DBMS) para processamento analítico online (OLAP). Está disponível tanto como software de código aberto quanto como serviço em nuvem.
ClickHouse® é um sistema de gerenciamento de banco de dados SQL (DBMS) de alto desempenho, orientado a colunas, para processamento analítico online (OLAP). Está disponível tanto como software de código aberto quanto como oferta na nuvem.
Você pode executar esta consulta no Playground do ClickHouse SQL que seleciona e filtra apenas algumas entre mais de 100 colunas existentes, retornando o resultado em milissegundos:
Como você pode ver na seção de estatísticas do diagrama acima, a consulta processou 100 milhões de linhas em 92 milissegundos, com uma taxa de transferência de pouco mais de 1 bilhão de linhas por segundo, ou pouco menos de 7 GB de dados transferidos por segundo.
SGBD orientado a linhas
Em um banco de dados orientado a linhas, embora a consulta acima processe apenas algumas das colunas existentes, o sistema ainda precisa carregar do disco para a memória os dados das outras colunas. Isso acontece porque os dados são armazenados em disco em partes chamadas blocos (geralmente com tamanhos fixos, por exemplo, 4 KB ou 8 KB). Os blocos são as menores unidades de dados lidas do disco para a memória. Quando um aplicativo ou banco de dados solicita dados, o subsistema de E/S de disco do sistema operacional lê os blocos necessários do disco. Mesmo que apenas parte de um bloco seja necessária, o bloco inteiro é lido para a memória (isso se deve ao design do disco e do sistema de arquivos):
SGBD orientado a colunas
Como os valores de cada coluna são armazenados sequencialmente, um após o outro, no disco, nenhum dado desnecessário é carregado quando a consulta acima é executada.
Como o armazenamento em blocos e a transferência do disco para a memória estão alinhados com o padrão de acesso aos dados das consultas analíticas, apenas as colunas necessárias para uma consulta são lidas do disco, evitando I/O desnecessária com dados não utilizados. Isso é muito mais rápido em comparação com o armazenamento baseado em linhas, no qual linhas inteiras (incluindo colunas irrelevantes) são lidas:
Analytics, também conhecida como OLAP (Online Analytical Processing), refere-se a consultas SQL com cálculos complexos (por exemplo, agregações, processamento de strings e aritmética) sobre grandes volumes de dados.
Ao contrário das consultas transacionais (ou OLTP, Online Transaction Processing), que leem e gravam apenas algumas linhas por consulta e, portanto, são concluídas em milissegundos, as consultas analíticas costumam processar bilhões e trilhões de linhas.
Em muitos casos de uso, as consultas analíticas precisam ser “em tempo real”, ou seja, retornar um resultado em menos de um segundo.
Esse nível de desempenho só pode ser alcançado com a “orientação” correta dos dados.
Os bancos de dados armazenam os dados de forma orientada a linhas ou orientada a colunas.
Em um banco de dados orientado a linhas, as linhas consecutivas de uma tabela são armazenadas sequencialmente, uma após a outra. Essa organização permite recuperar linhas rapidamente, pois os valores de coluna de cada linha ficam armazenados juntos.
ClickHouse é um banco de dados orientado a colunas. Em sistemas desse tipo, as tabelas são armazenadas como uma coleção de colunas, ou seja, os valores de cada coluna são armazenados sequencialmente, um após o outro. Essa organização dificulta a recuperação de linhas individuais (já que passam a existir lacunas entre os valores de uma linha), mas operações em colunas, como filtros ou agregação, tornam-se muito mais rápidas do que em um banco de dados orientado a linhas.
A diferença é mais bem explicada com uma consulta de exemplo executada sobre 100 milhões de linhas de dados reais anonimizados de análise de tráfego da web:
O ClickHouse usa um esquema de replicação assíncrona multi-master para garantir que os dados sejam armazenados com redundância em vários nós. Depois de serem gravados em qualquer réplica disponível, todas as demais réplicas obtêm sua cópia em segundo plano. O sistema mantém dados idênticos em diferentes réplicas. A recuperação da maioria das falhas é realizada automaticamente ou, em casos complexos, de forma semiautomática.
O ClickHouse implementa o gerenciamento de contas de usuário por meio de consultas SQL e permite configurar o controle de acesso baseado em funções, de forma semelhante ao padrão ANSI SQL e a sistemas populares de gerenciamento de bancos de dados relacionais.
O ClickHouse oferece suporte a uma linguagem de consulta declarativa baseada em SQL que, em muitos casos, é idêntica ao padrão ANSI SQL. As cláusulas de consulta compatíveis incluem GROUP BY, ORDER BY, subconsultas em FROM, a cláusula JOIN, o operador IN, funções de janela e subconsultas escalares.
O ClickHouse oferece maneiras de abrir mão de precisão em favor do desempenho. Por exemplo, algumas de suas funções de agregação calculam de forma aproximada a contagem de valores distintos, a mediana e os quantis. Além disso, as consultas podem ser executadas em uma amostra dos dados para obter rapidamente um resultado aproximado. Por fim, as agregações podem ser executadas com um número limitado de chaves, em vez de considerar todas elas. Dependendo de quão assimétrica for a distribuição dessas chaves, isso pode fornecer um resultado razoavelmente preciso usando muito menos recursos do que um cálculo exato.
O ClickHouse escolhe o algoritmo de junção de forma adaptativa: começa com hash joins rápidos e recorre a merge joins quando há mais de uma tabela grande.
O ClickHouse é amplamente conhecido por ter um desempenho extremamente rápido em consultas.
Para entender por que o ClickHouse é tão rápido, consulte o guia Por que o ClickHouse é tão rápido?.
Última modificação em 10 de junho de 2026