컬리 데이터플랫폼팀이 기존 Data Warehouse를 BigQuery로 이관한 2부로, CDC 기반 신규 데이터 파이프라인 아키텍처와 도입 후 성과를 다룬다. 정형·비정형 데이터를 CDC 로그로 받아 Merge 문으로 원본 DB와 동일 상태의 테이블을 유지하는 구조가 핵심이다.
핵심 포인트- 정형(Oracle·Aurora)은 AWS DMS로 CDC 로그를 Kafka Topic에 보내고 BigQuery Streaming API로 CDC 로그 테이블에 적재한다.
- 비정형(DocumentDB)은 Change Stream을 JSON Format Processing으로 필요한 컬럼만 추출하고, 원본 Document는 JSON 타입 컬럼에 보관해 스키마 변화에 대응한다.
- Cloud Composer(Airflow)가 Merge Procedure를 주기 실행해 CDC 로그를 Final 테이블에 반영하고 원본과 동일 상태를 유지한다.
- 기존 UPSERT 스크립트는 Delete 미반영으로 정합성이 깨졌으나 Merge 문으로 Insert·Update·Delete를 한 번에 처리한다.
- 30분 이상 걸리던 Task가 13초로 단축되고 쿼리 응답·비용도 대폭 개선됐다.
상세 정리- 정형 파이프라인: RDBMS에서 AWS DMS로 CDC 로그를 Kafka Topic에 보내고 BigQuery Streaming API로 일자 파티션된 CDC 로그 테이블에 적재한다. 로그 테이블은 변경 레코드·DML operation·발생 timestamp를 저장한다.
- Merge Procedure: Primary Key·생성일자·DML operation·CDC timestamp 4개 컬럼으로 Final 테이블과 CDC 로그를 비교해 원본 DB와 동일 상태로 만든다. 컬리 모든 RDBMS 테이블에 PK와 생성일자가 있어 가능하다.
- 비정형 파이프라인: DocumentDB Change Stream을 Kafka로 보내고 JSON Format Processing으로 Merge에 필요한 컬럼을 추출해 CDC 로그 테이블에 저장하되, 원본 Document 전체는 data라는 JSON 컬럼에 담아 추가 컬럼 누락을 막는다. BigQuery의 JSON 타입 지원으로 스키마 변화에 일일이 대응하지 않아도 된다.
- 데이터 레이크하우스: BigQuery는 스토리지 비용이 저렴하고 확장성이 커, 운영 DB 이력(CDC 로그)·데이터 마트·대용량 로그를 삭제 없이 장기 보관한다.
- 파이프라인 개선: 기존은 임시 테이블 생성·과거 삭제·신규 삽입·임시 삭제 4단계 UPSERT로 느리고 Delete가 반영되지 않아 정합성 문제가 있었다. Merge 문으로 스크립트 없이 빠르게 적재해 연동 지연이 대폭 줄었고, 30분 이상 걸리던 Task가 13초로 단축됐다.
- 쿼리 응답: 데이터 파이프라인용과 조회용 프로젝트를 분리해 자원 경합을 줄이고, 조회 시 파티션 필수 옵션으로 스캔 용량을 줄여 응답 시간을 개선했다.
- 비용: 기존 DW는 서버 규모 기반 고정 비용이었는데, BigQuery는 스캔 비용 또는 슬롯 예약 방식이라, 스캔이 크고 사용자가 많은 프로젝트는 슬롯을 예약하고 그 외는 하루 스캔 용량을 제한해 비용을 절감했다.
- 이관: POC부터 신규 파이프라인 설계·구축·이관까지 6개월이 걸렸고, 기존 파이프라인을 함께 운영하며 진행했다. e-Commerce 최초 BigQuery 도입 사례다.
왜 읽나CDC로 운영 DB를 데이터 웨어하우스에 동기화하려는 데이터 엔지니어에게 BigQuery Merge·JSON 처리·프로젝트 분리로 성능·비용을 잡은 실전 아키텍처를 보여주는 사례.