
백엔드
컬리의 BigQuery 도입기 - 1부
두줄요약
기존 데이터 파이프라인의 지연과 복잡성을 줄이기 위해 컬리가 BigQuery 도입 배경과 주안점을 정리했습니다. 스트리밍 적재, 파티션 관리, 프로젝트 분리로 성능과 비용을 함께 고려했습니다.
문제 상황
- 기존 데이터 파이프라인의 긴 지연시간, 스토리지 부족, 쿼리 응답 지연, 복잡한 적재 과정
- Oracle, Aurora DB, DocumentDB의 CDC 로그가 Kafka, S3, Airflow를 거쳐 적재되는 복잡한 아키텍처
해결 방법
- BigQuery Streaming API로 Kafka Topic의 데이터를 BigQuery에 직접 적재해 I/O와 병목 최소화
- 테이블별 생성일자 파티션과 보관 주기 설정으로 스토리지 및 스캔 범위 관리
- 데이터 파이프라인용 프로젝트와 조회용 프로젝트 분리로 쿼리 응답 시간과 비용 제어
성능/운영 포인트
- S3 파일 읽기와 재적재 과정 제거로 적재 지연 완화
- 파티션 범위 지정 강제를 통한 불필요한 스캔 방지
- 슬롯 예약과 스캔 용량 제한을 함께 둔 비용 관리
