PostHog, DuckDB 웨어하우스 5개월 만에 접고 Trino·HogLake로 재구축
- PostHog가 5개월 전 DuckDB로 재구축한 자사 데이터 웨어하우스를 다시 걷어내고 Trino와 HogLake로 옮기는 중이며, 이번 재설계에 들어간 기간은 3개월
- 옮기기 직전 DuckLake에는 약 2PB, 1조 행, 1,530만 개 스냅샷이 있었음. 카탈로그 통계 행의 99% 이상이 이미 삭제된 테이블 것이었고, 정리하니 쓰기가 30~50배 빨라졌지만 통계 행은 계속 다시 쌓였음
- DuckLake 카탈로그 스키마가 여러 SQL 데이터베이스에서 이식 가능해야 해서 엔진별 최적화가 제한됐고, 테이블 한 건 쓰기에 3분 이상 걸리는 경우도 있었음
- Postgres 와이어 프로토콜을 5432 포트로 직접 노출하는 방식은 HTTP보다 확장이 어려웠음. pgwire 로드밸런싱 도구가 거의 없고 AWS NLB와 ALB의 차이를 근거로 들었음
- 단일 노드 엔진을 클라우드에서 안전하게 굴리려면 쿼리가 도착하기 전에 워커 크기를 정해야 하는데, 쿼리별 CPU와 메모리를 예측하기 어려웠음
Hacker News opinions
Quack(DuckDB 클라이언트-서버 프로토콜)을 쓰면 확장 문제가 좀 나았으려나?
작성자인데, Quack은 분산 쿼리라고 부를 만한 것에는 못 쓴다고 알고 있음.
글에 기술적 디테일이 '1조 행은 많은 데이터니까 이번엔 Trino면 되겠지' 밖에 없는 것 같은데. 측정도 별로 없고 그냥 갈아엎기만 반복하는 느낌임.
핵심은 고객별로 VM을 띄워 쿼리를 라우팅할 거면 쿼리 비용을 먼저 추정할 수 있어야 한다는 거 아님? Snowflake도 실행 전에 최적화를 돌려서 자원이 얼마나 들지 어림잡음.
이 제품 쓰는 입장이면 '5개월 전에 다시 짰는데 안 돼서 또 다시 짠다'는 메시지에 좀 불안할 듯.
작성자임. 엔지니어링하고 측정하고 꽤 오래 붙잡고 있었음. 아키텍처를 완전히 버리고 처음부터 다시 가기로 한 건 그 뒤임.
5개월 전엔 DuckDB로 재구축했다고 글 써놓고 왜 벌써 이런 글을 씀? 승리 선언하고 홍보하려는 것처럼 보이는데.
작성자임. ClickHouse를 대체한 게 아니라 웨어하우스 제품을 모델링 작업과 멀티테넌시에 더 맞는 스택으로 옮기려는 것. 파일럿 고객들의 대규모 워크로드에서 배운 게 많음.
창업자인데, DuckDB 웨어하우스는 소수 파일럿 고객용이었고 ClickHouse는 전체 분석 쿼리를 계속 서비스 중임.
ClickHouse에서 DuckDB로 갔다가 다시 Trino 파생으로? 글은 새 구성이 문제를 해결했는지 말하기 전에 끝남. 6개월마다 스택 갈아타는 팀 생각남.
ORM 쓰면서 쿼리나 인덱스는 안 뜯어보고 DB 탓하는 사람들 떠오름.
트래픽이 수천 TPS로 돌기 시작하면 실패 모드가 뭔지 알 시간이 없음. 문제가 작을 때 정리했어야 함.
이건 채용 글 같음. 아키텍처 결정은 이미 끝났고 이제 그걸 구현할 사람을 찾는 거니까.
포스트호그 웹사이트 디자인 진짜 별로임. 예전 픽셀 버전이 더 나았는데.
쿠키 배너도 이해가 안 감. 필수 쿠키만 쓰면 배너가 필요 없고, 분석용이면 거부할 수 있어야 함.
데이터 레이크를 직접 만드는 게 요즘 유행인 듯. 우리도 했음.
3개월 뒤엔 포크한 ClickHouse로 다시 돌아왔다는 글 올라오겠지.
프런티어 모델이 좋아져서 우리 인프라도 다시 짤 수 있게 됐다는 뜻 아닌가.