고객 타게팅을 좀 더 정교하게, ClickHouse 도입기
백엔드
고객 타게팅을 좀 더 정교하게, ClickHouse 도입기
두줄요약
고객 타게팅 정교화를 위해 주문·쿠폰·장바구니 데이터를 ClickHouse 기반 OLAP로 옮긴 과정을 정리했습니다. 다만 ReplacingMergeTree, JOIN, Point Query 한계를 보완하려고 하이브리드 아키텍처를 함께 도입했습니다.
문제 상황
- 커머스 마케팅 타게팅에서 주문, 장바구니, 쿠폰 같은 행동 데이터를 더 정교하게 세그먼트화할 필요
- 기존 RDBMS 중심 구조로는 수십억 건 규모의 데이터와 JOIN 기반 조건을 감당하기 어려움
- Write heavy, spiky 트래픽, 준실시간 조회 요구가 겹치며 OLTP 한계가 드러남
원인 분석
- 주문·쿠폰·장바구니 데이터가 사실상 대규모 fact table 성격
- 업데이트가 잦은 데이터와 append-only에 가까운 데이터가 섞여 있어 단일 저장 모델로 처리 곤란
- Point query와 대규모 분석 쿼리의 요구가 동시에 존재
해결 방법
- OLAP 시스템인 ClickHouse 도입으로 대용량 집계와 ad-hoc 세그먼트 쿼리 처리
- ReplacingMergeTree의 중복 제거 한계를 Hot/Cold 분리와 하이브리드 아키텍처로 보완
- 세그먼트 멤버십 확인 같은 point query는 Key-Value Store와 병행 운영
성능/운영 포인트
- ClickHouse Cloud 활용으로 빠른 도입과 프로덕션 안전성 확보
- 작은 dimension 조인과 필터링된 고객 집합의 메모리 연산에는 적합
- FINAL 사용, distributed JOIN, 큰 point lookup은 성능·운영 비용 증가 요인
