Por que usar ClickHouse em vez de Postgres?
GROUP BY, como um banco de dados OLAP, enquanto o Postgres é um banco de dados OLTP projetado para cargas de trabalho transacionais.
Os bancos de dados OLTP, ou de processamento transacional online, são projetados para gerenciar informações transacionais. O principal objetivo desses bancos de dados, dos quais o Postgres é o exemplo clássico, é garantir que um engenheiro possa enviar um bloco de atualizações ao banco de dados e ter certeza de que ele — em sua totalidade — ou terá êxito ou falhará. Esse tipo de garantia transacional com propriedades ACID é o foco principal dos bancos de dados OLTP e um grande ponto forte do Postgres. Diante desses requisitos, bancos de dados OLTP normalmente esbarram em limitações de desempenho quando usados para consultas analíticas sobre grandes conjuntos de dados.
Os bancos de dados OLAP, ou de processamento analítico online, são projetados para atender a essas necessidades — gerenciar cargas de trabalho analíticas. O principal objetivo desses bancos de dados é garantir que engenheiros consigam consultar e agregar grandes conjuntos de dados com eficiência. Sistemas OLAP em tempo real, como o ClickHouse, permitem que essa análise aconteça conforme os dados são ingeridos em tempo real.
Veja aqui uma comparação mais aprofundada entre ClickHouse e PostgreSQL.
Para ver as possíveis diferenças de desempenho entre ClickHouse e Postgres em consultas analíticas, consulte Rewriting PostgreSQL Queries in ClickHouse.
Estratégias de migração
Replicação em tempo real (CDC)
Carga em massa manual + atualizações periódicas
INSERT diretos ou pela exportação e importação de arquivos CSV. Após a migração inicial, você pode atualizar periodicamente os dados no ClickHouse, sincronizando as alterações do PostgreSQL em intervalos regulares.
O processo de carga em massa é simples e flexível, mas tem a desvantagem de não oferecer atualizações em tempo real. Depois que os dados iniciais estiverem no ClickHouse, as atualizações não serão refletidas imediatamente, portanto, é necessário agendar atualizações periódicas para sincronizar as alterações do PostgreSQL. Essa abordagem funciona bem para casos de uso menos sensíveis ao tempo, mas introduz um atraso entre o momento em que os dados mudam no PostgreSQL e o momento em que essas mudanças aparecem no ClickHouse.
Qual estratégia escolher?
Comece o guia de migração do PostgreSQL aqui.