본문으로 이동
토스증권 Iceberg 적용기 #1: CDC 환경은 왜 제대로 동작하지 않을까?
문서

토스증권 Iceberg 적용기 #1: CDC 환경은 왜 제대로 동작하지 않을까?

김용우 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

토스증권은 잦은 Update/Delete가 발생하는 CDC 파이프라인에서 Iceberg 데이터가 중복되는 정합성 문제를 겪었습니다. Iceberg의 COW·MOR 방식과 Position Delete·Equality Delete의 Data Sequence Number 적용 규칙을 분석해, 같은 Commit 안의 변경은 이전 Row를 Position Delete로 지워야 한다는 원칙을 세웠습니다. Databricks Iceberg Sink Connector에서 파티션 분산, Commit Timeout, Schema Evolution이 `insertedRowMap`을 초기화하거나 공유하지 못하게 해 이 원칙을 깨뜨리는 경로를 찾아, Kafka 키 설정과 preCommit 단계, 별도 Registry로 대응했습니다. 그 결과 Iceberg를 준실시간 CDC 적재와 Upsert·History·Delete-only 테이블에 활용하고, 저장소 수준의 중복 제거에도 사용할 수 있게 됐습니다.

  • MOR은 쓰기 비용을 낮추지만 Delete File이 쌓이면 읽기 성능이 저하되므로 컴팩션 계획도 함께 세워야 합니다.
  • Kafka에서 같은 키의 이벤트 순서를 보장하려면 레코드 키를 Iceberg의 식별자 컬럼으로 설정해 같은 파티션에 보내야 합니다.
  • Commit 경계와 Writer 수명 주기를 점검해, 파일이 다음 Commit으로 넘어가거나 Writer가 교체돼도 삭제 위치 정보가 유지되는지 확인하세요.
  • Equality Delete는 같은 Data Sequence Number의 새 파일에는 적용되지 않지만, Commit 경계가 어긋나면 의도치 않은 중복을 만들 수 있습니다.

소개

CDC를 Iceberg에 어떻게 안전하게 적재할 수 있는지에 초점을 맞춰, 우리가 마주했던 문제와 원칙들을 공유합니다.

비슷한 학습 자료

컨퍼런스 SLASH

다양한 장애 상황에도 사용자에게 매끄러운 서비스 경험을 제공하는 방법은 뭘까요? 더 견고하고 편리한 증권 서비스 구축을 위한 토스증권의 ‘Kafka IDC 이중화’ 과정을 소개합니다. 강병수 / 토스증권 Data Engineer 발표 자료 👉🏻 https://bit.ly/3CkW4mc 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #kafka #idc #dataengineer #토스증권 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배포전...

데브옵스 · 인프라 네트워크

문서 토스

Kafka Broker request log를 활용해서 서비스 간 의존성 파악하기

백엔드 데브옵스 · 인프라

문서 송지수

토스증권은 현재 Active-Active 구성으로 Kafka를 운영하고 있는데요. 오늘은 Active-Active를 유지하기 위해 필요한 양방향 데이터 미러링에 대해 소개하려고 합니다.

백엔드 데이터베이스

문서 조승완

오늘은 데이터 효율성을 높이기 위해 도입한 ‘Iceberg’에 대해 이야기해 보려고 합니다. Iceberg의 기본적인 정보는 다른 곳에서도 쉽게 찾아볼 수 있지만, 저는 특히 유지보수와 운영 측면에 집중해서 이야기하려 합니다.

데이터베이스

문서 김용우

문제 없이 여러 데이터들을 CDC를 통해 제공하던 어느 날, 근본적인 질문이 떠오릅니다. 우리의 CDC는 얼마나 잘 운영되고 있는가? CDC가 잘 운영되고 있다는걸 우리는 어떻게 믿을 수 있을까?

데이터베이스 데브옵스 · 인프라

문서 강병수

이번 글에서 토스증권 실시간 데이터 프로세싱에 활용 중인 ksqlDB에 대해서 소개하려고 합니다.

백엔드 데이터베이스