RDBMS의 한계를 넘어 OLAP 시스템으로 실시간 타게팅의 정점에 도달하는 여정
채널톡이 폭발적으로 늘어나는 고객 행동 데이터를 정교한 마케팅으로 연결하기 위해 선택한 ClickHouse 도입기입니다. 단순한 기술 도입을 넘어 ReplacingMergeTree의 한계와 JOIN 성능 문제를 하이브리드 아키텍처로 돌파하며 얻은 시니어 엔지니어의 생생한 기술적 통찰을 담고 있습니다.
대규모 쓰기 트래픽과 복잡한 분석 쿼리를 동시에 해결해야 하는 데이터 엔지니어에게 추천하며, 특히 실시간 세그먼테이션 기능이 필요한 B2B SaaS 또는 커머스 서비스 설계 시 실질적인 가이드를 제공합니다.
채널톡의 기존 RDBMS(PostgreSQL) 및 NoSQL(DynamoDB) 환경은 20억 건이 넘는 쿠폰 데이터와 장바구니 등 복잡한 커머스 행동 데이터를 실시간으로 JOIN하고 타게팅 쿼리를 수행하기에는 I/O 병목 및 꼬리 지연(Tail Latency) 문제가 발생하여 확장성에 한계가 있었습니다. 특히 100:1에 달하는 쓰기 집중형 워크로드와 블랙 프라이데이와 같은 스파이키(Spiky)한 트래픽 환경에서 정교한 세그먼테이션을 구현해야 하는 과제가 존재했습니다.
대규모 데이터 분석에 특화된 OLAP 시스템인 ClickHouse를 도입하였으며, 관리 효율성을 위해 ClickHouse Cloud를 활용했습니다. 데이터 업데이트의 한계를 극복하기 위해 Hot/Cold 데이터를 분리하여 관리하고, ClickHouse의 약점인 포인트 쿼리 성능을 보완하기 위해 Key-Value Store를 병행 운영하는 하이브리드 아키텍처를 설계하여 데이터 정합성과 쿼리 성능을 동시에 확보했습니다.
수억 건 이상의 팩트 테이블(Fact Table)을 대상으로 수백 밀리초 수준의 지연 시간 내에 정교한 고객 타게팅이 가능해졌으며, Parallel Hash Join 등을 통해 수백만 건 이하의 필터링된 데이터셋 연산을 안정적으로 처리하게 되었습니다. 또한 OLAP 도입 과정에서 얻은 기술적 이해도를 바탕으로 향후 StarRocks 도입 등 더 복잡한 분석 요구사항을 해결할 수 있는 기반을 마련했습니다.
Trade-off
ClickHouse의 단순한 구조를 유지하기 위해 전체 시스템 아키텍처에 Key-Value Store를 추가하는 등 하이브리드 구성을 선택함으로써 데이터 동기화 과정에서의 엔지니어링 비용과 시스템 복잡도가 상승하는 결과가 초래되었습니다. 또한 대규모 JOIN 연산 시 시스템 자원 소모가 크며, 포인트 쿼리 처리를 위해 추가적인 레이어가 필요하다는 구조적 제약이 존재합니다.
ClickHouse에서 데이터 업데이트를 지원하기 위한 엔진으로, 중복된 데이터를 백그라운드 머지 시점에 제거하는 방식입니다.
데이터를 행(Row) 단위가 아닌 열(Column) 단위로 저장하여 분석에 필요한 특정 컬럼만 빠르게 읽어오는 방식입니다.
ClickHouse가 데이터를 인덱싱하고 저장하는 최소 단위로, 수천 개의 아이템을 하나의 블록으로 관리합니다.