Pular para o conteúdo principal
ClickHouse® é um sistema de gerenciamento de banco de dados SQL de alto desempenho, orientado a colunas, para processamento analítico online (OLAP). Está disponível como software de código aberto e também como uma oferta em nuvem.

O que são análises?

Análises, também conhecidas como OLAP (Processamento Analítico Online), referem-se a consultas SQL com cálculos complexos (por exemplo, agregações, processamento de strings e aritmética) sobre volumes massivos de dados. Ao contrário das consultas transacionais (ou OLTP, Processamento de Transações Online), 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 ou 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.

Armazenamento orientado a linhas vs. orientado a colunas

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 das colunas 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 torna mais difícil reconstruir 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 fica mais clara com uma consulta de exemplo executada sobre 100 milhões de linhas de dados reais anonimizados de análise da web:
SELECT MobilePhoneModel, COUNT() AS c
FROM metrica.hits
WHERE
      RegionID = 229
  AND EventDate >= '2013-07-01'
  AND EventDate <= '2013-07-31'
  AND MobilePhone != 0
  AND MobilePhoneModel not in ['', 'iPad']
GROUP BY MobilePhoneModel
ORDER BY c DESC
LIMIT 8;
Você pode executar esta consulta no playground SQL do ClickHouse que seleciona e filtra apenas algumas das 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 aproximadamente 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 de outras colunas. Isso acontece porque os dados são armazenados em disco em blocos chamados blocks (geralmente de tamanho fixo, por exemplo, 4 KB ou 8 KB). Os blocos são as menores unidades de dados lidas do disco para a memória. Quando uma aplicação ou banco de dados solicita dados, o subsistema de E/S de disco do sistema operacional lê do disco os blocos necessários. Mesmo que apenas parte de um bloco seja necessária, o bloco inteiro é lido na 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 em sequência 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 E/S desnecessária de 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:

Replicação e integridade dos dados

O ClickHouse usa um esquema de replicação assíncrona multi-master para garantir que os dados sejam armazenados de forma redundante 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 após a maioria das falhas é feita automaticamente ou, em casos complexos, de forma semiautomática.

Controle de Acesso Baseado em Funções

O ClickHouse implementa o gerenciamento de contas de usuário usando consultas SQL e permite configurar o controle de acesso baseado em funções, de forma semelhante ao padrão ANSI SQL e aos sistemas populares de gerenciamento de bancos de dados relacionais.

Suporte a SQL

O ClickHouse oferece suporte a uma linguagem de consulta declarativa baseada em SQL que, em muitos casos, é idêntica ao padrão ANSI SQL. Entre os recursos de consulta compatíveis estão GROUP BY, ORDER BY, subconsultas em FROM, a cláusula JOIN, o operador IN, funções de janela e subconsultas escalares.

Cálculo aproximado

O ClickHouse oferece maneiras de abrir mão de precisão em troca de 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 sobre 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.

Algoritmos de junção adaptativos

O ClickHouse escolhe o algoritmo de junção de forma adaptativa: começa com junções hash rápidas e, se houver mais de uma tabela grande, recorre a junções por mesclagem.

Desempenho superior das consultas

O ClickHouse é amplamente conhecido por oferecer desempenho de consultas extremamente rápido. Para entender por que o ClickHouse é tão rápido, consulte o guia Por que o ClickHouse é rápido?.
Última modificação em 10 de junho de 2026