광고 성과 데이터 StarRocks 도입기
두줄요약
MySQL 기반 광고 성과 집계의 확장성과 안정성 문제를 해결하기 위해 StarRocks를 도입했습니다. 외부 원천, MV 설계, 아키텍처 전환으로 부하 분리와 복구 편의성을 확보했습니다.
문제 상황
- MySQL 기반 광고 성과 집계 시스템의 확장성 한계와 DB 쓰기 부하 증가
- 간헐적 집계 누락과 장애 시 원천 수정이 성과 데이터에 자동 반영되지 않는 복구 어려움
원인 분석
- 캠페인 단위 중심 구조라 더 작은 집계 단위 추가 시 배치, 컨슈머, 테이블을 매번 새로 구현해야 하는 비효율
- 증분 업데이트와 커서 기반 조회로 인해 누락·불일치·보정 데이터 생성 문제가 발생
해결 방법
- OLAP DB로 StarRocks 도입, 원천은 Iceberg/Glue 외부에 두고 성과 데이터는 external table과 MV로 서빙
- shared-data에서 shared-nothing으로 전환하고, 파티셔닝·버켓팅·colocate join·nested MV로 조회와 갱신 최적화
성능/운영 포인트
- MySQL 쓰기 부하와 성과 조회 부담 분리로 평균활성세션, 커밋 레이턴시, 커넥션 대기 시간 개선
- 파티션 단위 incremental refresh로 누락 차단, 장애 시 원천 수정만으로 빠른 복구 가능




