Mudando nosso warehouse para fora do DuckDB

Migrações frequentes de banco de dados e warehouse na empresa de analytics PostHog estão levantando প্রশ্নões sobre planejamento, testes de escalabilidade e a influência de “reescritas fáceis” potencializadas por LLM nas escolhas de engenharia. Comentadores debatem os méritos de DuckDB, ClickHouse, Trino e formatos de data lake/tabela para cargas multi-tenant e de grande escala, enquanto criticam a falta de dados concretos de desempenho e de justificativa técnica clara no post do blog da PostHog sobre sair do DuckDB. Muitos veem a rápida troca de stack como sintoma de desenvolvimento movido por currículo e de pouca disciplina arquitetural, em vez de uma evolução cuidadosamente medida.

Esclarecimentos de escopo e arquitetura

  • A mudança diz respeito a um produto de warehouse oferecido aos clientes, não ao banco de dados principal de analytics.
  • O ClickHouse ainda alimenta a análise central; o DuckDB era usado para uma oferta separada, em piloto, de warehouse para um pequeno número de clientes.
  • O novo design é um motor de consultas distribuído baseado em Trino sobre um formato de tabela personalizado (“HogLake”), voltado principalmente para modelagem de longa duração e ETL, não para consultas de baixa latência.

Experiência com DuckDB e limites de escala

  • O DuckDB funcionou corretamente, mas exigiu pods muito grandes (na ordem de ~46 vCPUs e centenas de GB de RAM) para lidar com consultas reais de clientes, algumas executando por 12+ horas.
  • Sob carga multi-tenant (muitas consultas pesadas do mesmo cliente), isso se tornou economicamente inviável.
  • Estimar o uso de CPU/memória por consulta provou ser difícil. Foi observado que um protocolo cliente/servidor do DuckDB (Quack) não oferece suporte a consultas verdadeiramente distribuídas.

Justificativa para Trino + arquitetura estilo lake

  • O Trino é visto como oferecendo alocação de recursos mais flexível e distribuída, combinando melhor com cargas de trabalho pesadas e em picos.
  • O DuckDB é elogiado como um excelente mecanismo de nó único, mas considerado inadequado para esse contexto em nuvem e multi-tenant.
  • Iceberg/Delta foram avaliados, mas rejeitados devido a escritas lentas e outras desvantagens para este caso de uso.

Críticas: planejamento, churn e metodologia

  • Muitos comentaristas veem a troca de ClickHouse → DuckDB → Trino/HogLake em poucos meses como mau planejamento ou “churn”, com testes de escala insuficientes מראש.
  • Alguns interpretam isso como desenvolvimento movido por currículo ou por “agente/LLM”, trocando tecnologias em vez de ajustar profundamente uma só.
  • Outros defendem a experimentação, argumentando que o comportamento real em escala muitas vezes só aparece sob cargas orgânicas.

Desejo por mais profundidade técnica e engajamento com a comunidade

  • Vários comentaristas queriam métricas concretas, modos de falha e metodologia para previsão e teste de capacidade, além de uma explicação mais clara de por que um formato personalizado era necessário.
  • Alguns argumentam que manter forks e enviar melhorias upstream é normal em escala e queriam mais detalhes sobre patches e colaboração.
  • Ainda não está claro na discussão se a nova configuração Trino/HogLake resolveu definitivamente os problemas originais.

Reações diversas

  • Alguns criticam o estilo do blog de marketing da empresa e o design do site; outros o consideram distinto ou atraente.
  • Temas mais amplos levantados incluem a dificuldade de escolher bancos de dados sem expertise profunda, falhas de liderança em reconhecer padrões e o risco de reescritas fundamentais frequentes.