목록 보기
컬리의 BigQuery 도입기 - 2부
백엔드

컬리의 BigQuery 도입기 - 2부

마켓컬리
마켓컬리
2023년 2월 17일

두줄요약

BigQuery 기반 CDC 파이프라인으로 정형·비정형 데이터를 Final 테이블에 동기화했습니다.\nMerge와 리소스 분리로 적재 시간·조회 응답 시간·비용을 개선했습니다.

구조와 흐름

  • RDBMS의 CDC 로그를 AWS DMS로 Kafka Topic에 전송하고 BigQuery Streaming API로 일자 파티션 CDC 로그 테이블 적재
  • Cloud Composer(Airflow)의 BigQuery Job Operator로 Merge Procedure를 주기 실행해 원본 DB와 동일한 Final 테이블 구성
  • DocumentDB Change Stream은 JSON Format Processing으로 병합 필수 칼럼을 추출하고 원본 Document는 JSON 타입 data 칼럼에 보관

선택 이유

  • 저렴한 스토리지 비용과 높은 확장성을 활용한 데이터 레이크하우스 구축
  • JSON 타입 지원을 통한 스키마가 고정되지 않은 로그와 Document 데이터 보관

성능/운영 포인트

  • Merge 문으로 Insert·Update·Delete를 반영해 기존 UPSERT 방식의 삭제 미반영 문제 해소
  • 30분 이상 소요되던 Task를 13초로 단축하고 데이터 연동 지연 감소
  • 파이프라인·조회 프로젝트 분리, 파티션 조회 강제, 슬롯 예약 및 일일 스캔 한도로 응답 시간과 비용 개선

적용해볼 점

  • CDC 로그에 Primary Key, 생성일자, DML operation, CDC 발생 시각을 포함한 Final 테이블 동기화
  • 스캔량과 사용자 수에 따른 BigQuery 슬롯 예약 및 쿼리 스캔량 제한

컬리 계열사 채용12건

채용 사이트에서 전체 보기

다음 읽기

#BigQuery 주제를 이어서 읽기

컬리의 BigQuery 도입기 - 2부

BigQuery 도입으로 정형·비정형 데이터 파이프라인을 분리해 구축하고, CDC 기반 적재와 Merge Procedure로 원본 정합성을 맞췄습니다. 또한 데이터 레이크하우스화, 쿼리 성능 개선, 비용 절감 효과를 얻었습니다.

마켓컬리
마켓컬리
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...