ClickHouse — o motor de análise em tempo real da stack da plataforma
O stack da 4buildsite inclui o ClickHouse — uma base de dados colunar criada especificamente para análise de grandes volumes. É sobre ela que construímos o módulo de estatísticas de tráfego e vendas da plataforma (em desenvolvimento): os dados continuam a ser teus, e a recolha fica separada do teu site — é assim que a arquitetura foi desenhada.
O que é o ClickHouse e porque o usamos
O ClickHouse é uma base de dados colunar do tipo OLAP (análise online), criada na Yandex para o Yandex.Metrica — um dos maiores sistemas de análise web do mundo — e publicada em código aberto em 2016 sob licença Apache 2.0. Foi construída para uma única coisa, que faz de forma excecional: agregações rápidas sobre volumes enormes de dados. Na arquitetura da 4buildsite, o ClickHouse é o motor escolhido para a camada de estatísticas: cada visita, clique e encomenda torna-se um evento que pode ser analisado de imediato.
O segredo está no armazenamento por colunas: em vez de ler cada «linha» por inteiro, o ClickHouse lê apenas as colunas de que o relatório precisa e processa-as de forma vetorizada, em blocos grandes. Por isso, uma pergunta como «quantos visitantes tive ontem, por página e por origem» pode ser respondida mesmo sobre milhões de eventos — algo que uma base de dados clássica, orientada a linhas, resolve com muito mais dificuldade.
Não é uma tecnologia de nicho: a Cloudflare usa-a para analisar o tráfego HTTP à escala global, e a Uber, o eBay e o Spotify usam-na para analítica e processamento de registos em volumes enormes. Na 4buildsite, o mesmo motor faz parte do stack da plataforma — sem que tenhas de contratar uma equipa de engenheiros de dados.
Estatísticas em tempo real — como o módulo foi desenhado
O módulo de estatísticas da plataforma está em desenvolvimento e a sua arquitetura é simples: os eventos de tráfego são recolhidos de forma assíncrona e escritos no ClickHouse, completamente separados dos servidores que entregam as páginas. A recolha é assíncrona e separada dos servidores que entregam as páginas. Não existe um script de tracking de terceiros na página — a recolha é mínima e first-party.
Os relatórios em panel.4buildsite.net serão calculados diretamente no ClickHouse: tráfego por página, origens dos visitantes, conversões, vendas por produto. As agregações frequentes são pré-calculadas através de materialized views a cada escrita, por isso o painel não lança um cálculo pesado sempre que o abres.
- Tráfego em direto: visitas, páginas, origens e dispositivos — consultáveis após a recolha
- Vendas por produto, encomendas e conversões da tua loja, agregadas no ClickHouse
- Histórico de meses e anos a baixo custo — a compressão colunar reduz o armazenamento várias vezes face aos dados em bruto
- A recolha é assíncrona e os relatórios correm noutro sistema
PostgreSQL + ClickHouse: porque usamos os dois
O stack da plataforma combina duas bases de dados porque fazem coisas fundamentalmente diferentes. O PostgreSQL é o registo transacional (OLTP): encomendas, pagamentos, stock, contas de utilizador — operações que têm de estar perfeitamente corretas uma a uma, com garantias transacionais. O ClickHouse é a sala de análise (OLAP): milhões de eventos lidos de uma só vez para responder às tuas perguntas sobre tráfego e vendas.
Se os relatórios pesados corressem na mesma base de dados que processa as encomendas, cada relatório competiria com os clientes que estão a pagar nesse momento. A separação OLTP/OLAP elimina esse conflito: a encomenda do cliente não compete com o teu relatório e o teu relatório não compete com as encomendas dos outros. Cada motor faz exatamente aquilo para que foi construído.
- PostgreSQL: encomendas, pagamentos Stripe, stock, clientes — correção transacional
- ClickHouse: eventos de tráfego, relatórios, estatísticas — agregação em volume
- O desenho prevê que os dados transacionais relevantes cheguem ao ClickHouse como eventos, pelo que os relatórios de vendas nunca tocam na base que serve a loja
Analítica própria, respeitadora da privacidade — em vez do Google Analytics
O princípio do módulo de estatísticas: os dados do teu site permanecem na infraestrutura da plataforma. Não são enviados para a Google nem para outras redes de publicidade, não são vendidos e não são combinados com perfis externos de utilizadores. É analítica first-party no sentido próprio: os dados sobre os teus visitantes são teus.
Como a abordagem não usa cookies de tracking de terceiros, a conformidade com o RGPD torna-se muito mais simples. O contexto importa: em 2022, as autoridades de proteção de dados da Áustria, França e Itália declararam que a utilização do Google Analytics não estava conforme com o RGPD devido às transferências de dados para os EUA. Com uma analítica própria, alojada na Europa, esta categoria de risco desaparece à partida.
Há ainda um benefício prático direto: os relatórios calculados no ClickHouse não são amostrados, ao contrário dos relatórios padrão das ferramentas gratuitas de analítica. Números completos.
Relatórios de loja e marketplace — o que o módulo vai entregar
Para uma loja online, o ClickHouse significará respostas às perguntas que contam: que produtos se vendem, de que origens vêm os clientes que compram, onde são abandonados os carrinhos. Para um marketplace multivendedor, as mesmas agregações correrão sobre todas as encomendas: volume por vendedor, comissões, produtos mais vendidos por categoria — sem exportações manuais e sem folhas de cálculo.
E à escala as coisas continuam baratas. A compressão colunar reduz os dados várias vezes face ao formato em bruto, pelo que guardas anos de histórico com um custo de armazenamento pequeno. E quando o tráfego passa de milhares para milhões de eventos, o motor foi desenhado desde o início para milhares de milhões de linhas, não adaptado mais tarde.
Vantagens e limitações
Vantagens
- Agregações sobre milhões de eventos em menos de um segundo, graças ao armazenamento por colunas.
- A analítica corre num sistema separado daquele que serve as páginas.
- Os dados de tráfego continuam a ser teus, na infraestrutura da plataforma — sem transferência para a Google ou para redes de publicidade.
- Sem cookies de tracking de terceiros — conformidade com o RGPD mais simples.
- Compressão colunar forte — anos de histórico com um custo de armazenamento pequeno.
- Código aberto (Apache 2.0), sem licenças por volume — o custo não dispara quando o tráfego cresce.
Limitações
- Não é uma base de dados transacional — alterar ou apagar linhas individuais é uma operação pesada; por isso as encomendas e os pagamentos ficam no PostgreSQL.
- Otimizado para escritas em lotes grandes; muitas inserções pequenas e frequentes exigem batching — a plataforma trata disso, mas é um limite real do motor.
- Os JOIN complexos são menos flexíveis do que no PostgreSQL — o esquema de eventos tem de ser desenhado para análise desde o início.
- A procura de uma única linha (point lookup) é mais lenta do que numa base OLTP indexada — não substitui a base principal da loja.
Veredicto breve
O ClickHouse é a escolha certa para analítica em volume: estatísticas de tráfego e vendas em tempo real, com os teus dados, separado do site. Para encomendas, pagamentos e stock fica o PostgreSQL — é por isso que o stack da 4buildsite combina os dois, cada um naquilo em que é melhor. O módulo de estatísticas construído sobre o ClickHouse está em desenvolvimento.
Tabela de especificações
| Capacidade | Limite / limiar | Utilização típica | |
|---|---|---|---|
| Agregações analíticas | Menos de um segundo sobre milhões de eventos (colunar + vetorizado) | Lento na procura de uma única linha — não serve para lookups OLTP | Relatórios de tráfego e vendas (módulo de estatísticas, em desenvolvimento) |
| Ingestão de eventos | Grandes volumes, escritos em lotes | As inserções pequenas e frequentes exigem batching / async insert | Recolha de pageviews, cliques e encomendas |
| Armazenamento e compressão | Compressão colunar (LZ4/ZSTD), várias vezes abaixo do volume em bruto | Os dados muito aleatórios comprimem-se menos | Histórico de eventos de meses e anos, a baixo custo |
| Atualizações e eliminações | Mutations assíncronas para correções ocasionais | Pouco adequado para UPDATE frequentes sobre linhas individuais | Eliminações RGPD (os dados de um utilizador, a pedido) |
| Materialized views | Agregados pré-calculados a cada escrita | Os agregados têm de ser definidos à partida, por relatório | Painéis: vendas por dia, produto e origem |
| Tempo real | Os eventos ficam consultáveis depois de ocorrerem | Não é um sistema de streaming ao nível do milissegundo | Estatísticas em direto de tráfego e conversões |
ClickHouse vs PostgreSQL vs Google Analytics / BigQuery — para analítica
| Critério | ClickHouse (4buildsite) | PostgreSQL (para analítica) | Google Analytics / BigQuery |
|---|---|---|---|
| Velocidade das agregações em volume | Menos de um segundo sobre milhões de linhas | Cai visivelmente em dezenas de milhões de linhas (armazenamento por linhas) | BigQuery rápido; o GA4 tem relatórios padrão pré-agregados, sem consultas livres |
| Propriedade dos dados / RGPD | Os teus dados, na infraestrutura da plataforma, na Europa | Os teus dados, nos teus servidores | Os dados ficam na Google; as transferências do GA para os EUA foram declaradas não conformes com o RGPD por autoridades da UE em 2022 |
| Cookies e consentimento | Sem cookies de tracking de terceiros | Depende da implementação própria | Exige banner de consentimento para o tracking |
| Tempo real | Dados consultáveis após a recolha | É possível, mas os relatórios pesados carregam a base transacional | Os relatórios padrão do GA4 podem surgir com horas de atraso; o streaming do BigQuery custa à parte |
| Custo em volume | Código aberto — o custo é apenas a infraestrutura, incluída na subscrição | Cresce com índices, vacuum e hardware em grandes volumes | O BigQuery cobra por volume consultado; a variante empresarial do GA é dispendiosa |
| Impacto na velocidade do site | Recolha assíncrona, relatórios num sistema separado | Os relatórios podem competir com as encomendas na mesma base | Script de terceiros (gtag.js) na página — JavaScript e pedidos externos a mais |
Perguntas frequentes
O ClickHouse tem impacto na velocidade do meu site ou da minha loja?
O ClickHouse corre num sistema separado daquele que serve as páginas — é assim que a arquitetura foi desenhada. Os eventos de tráfego são enviados de forma assíncrona e os relatórios nunca tocam na base de dados da loja.
Porque não usam simplesmente o Google Analytics?
Por três razões. Os dados continuam a ser teus, na infraestrutura da plataforma, e não na Google. Não precisas de cookies de tracking de terceiros, por isso a conformidade com o RGPD é mais simples — em 2022, autoridades da Áustria, França e Itália declararam o GA não conforme com o RGPD. E os relatórios aparecem completos, sem amostragem.
Qual é a diferença entre o ClickHouse e o PostgreSQL — porquê os dois?
O PostgreSQL é a base transacional (OLTP): processa encomendas, pagamentos e stock, um a um, com garantias de correção. O ClickHouse é a base analítica (OLAP): lê milhões de eventos de uma só vez para os relatórios. A separação significa que um relatório pesado não toca nas encomendas dos teus clientes.
Os meus dados de tráfego estão seguros e em conformidade com o RGPD?
Sim — por desenho. As estatísticas são first-party: ficam na infraestrutura da plataforma, na Europa, não são vendidas nem partilhadas com redes de publicidade. A abordagem não usa cookies de tracking de terceiros, e os dados de um utilizador podem ser apagados a pedido, ao abrigo do RGPD.
Até que ponto as estatísticas são «em tempo real»?
Um evento — uma visita, um clique, uma encomenda — torna-se visível nos relatórios depois de acontecer. As agregações sobre períodos longos (meses, anos) continuam a ser respondidas pelo mesmo motor, porque o ClickHouse foi construído exatamente para este tipo de consultas.
Tenho de configurar alguma coisa para ter estatísticas no meu site?
Não será necessário. O módulo de estatísticas está em desenvolvimento e é construído como parte da plataforma: quando ficar ativo no painel de administração, a recolha arranca automaticamente para os sites publicados — sem scripts para instalar e sem contas externas.