제품 분석(product analytics) 도구 제공사 PostHog가 고객 데이터 웨어하우스의 아키텍처를 DuckDB에서 Trino(트리노) 기반으로 다시 변경했습니다. 이는 불과 5개월 전 ClickHouse(클릭하우스)에서 DuckDB로 전환한 지 얼마 되지 않아 이뤄진 결정으로, 예상보다 커지고 복잡해진 고객 워크로드를 효율적으로 처리하기 위한 재설계의 일환입니다.
PostHog는 5개월 전, 공유 ClickHouse 클러스터가 장시간 모델링 쿼리를 감당하지 못하고 비용 기반 쿼리 옵티마이저가 없다는 문제 때문에 DuckDB로 전환했습니다. DuckDB는 단일 노드에서 대량 데이터를 분석하는 데 강점이 있었고, 고객별 별도 인스턴스 제공 및 dbt 같은 도구와의 Postgres(포스트그레스) 호환성도 장점이었죠. 하지만 고객 워크로드의 규모와 복잡성을 과소평가했습니다. 클라우드 환경에서 단일 노드 엔진을 운영하려면 쿼리 도착 전에 워커 크기를 미리 정해야 하는데, 고객 쿼리의 CPU와 메모리 요구량을 예측하기 어려웠습니다. 또한, DuckDB를 완전한 웨어하우스로 사용하기 위해 도입했던 DuckLake(덕레이크) 확장 기능은 카탈로그 호환성 요구사항 때문에 최적화에 제약이 많았고, 1조 행 규모의 데이터에서 단일 테이블 쓰기가 3분 이상 걸리는 병목 현상을 겪었습니다.
새로운 웨어하우스는 자체 변형한 Trino와 개방형 테이블 포맷인 HogLake(호그레이크)를 기반으로 구축되었습니다. PostHog는 이 새로운 아키텍처를 자사의 페타바이트(PB) 규모 데이터로 먼저 검증하며 안정성을 확보하고 있습니다. 이번 전환의 핵심은 기술 자체보다 사용자 경험(user experience)에 초점을 맞춰, 사용자가 리소스 문제를 고민하지 않고 필요한 쿼리를 실행할 수 있도록 하는 것입니다. 이처럼 대규모 데이터 처리 시스템의 아키텍처를 빠르게 변경하는 것은 기술 스택 선택의 중요성과 함께, 실제 운영 환경에서의 예측 불가능한 변수들을 해결해나가는 과정의 어려움을 보여줍니다.