아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
토스 favicon토스

토스증권, Iceberg CDC 적용 중 발생한 데이터 정합성 문제 해결 노하우 공개!

by DD
2025-09-10
10개월 전
조회수 4

Iceberg의 CDC 환경 적용 시, 데이터 정합성 문제 발생

COW/MOR 방식, Position Delete/Equality Delete 차이점 분석

Iceberg Sink Connector 문제점 및 데이터 중복 방지 해결

Iceberg Update 전략: COW vs MOR

COW(Copy-on-Write)는 읽기 성능을, MOR(Merge-on-Read)은 쓰기 효율성을 극대화한다. 구체적으로, COW는 데이터 파일 전체를 다시 쓰므로 쓰기 비용이 크다. 따라서 CDC와 같이 잦은 갱신에는 비효율적이다. 반면, MOR은 삭제 파일을 사용하여 쓰기 부담을 줄인다.

Position Delete vs Equality Delete

Position Delete는 정확한 위치를 지정하여 삭제하므로, 데이터 무결성을 보장한다. 따라서 동일 Commit 내에서 Update/Delete 시 반드시 사용해야 한다. 구체적으로, Equality Delete는 값 조건만으로 삭제하므로, 데이터 중복을 발생시킬 수 있다. 따라서 Iceberg Writer는 이 점을 고려해야 한다.

Iceberg Sink Connector 문제점 및 해결

Iceberg Sink Connector는 Kafka의 key 설정을 통해 데이터 중복을 방지한다. 구체적으로, Commit Timeout 발생 시 insertedRowMap 초기화로 인해 Equality Delete가 발생할 수 있다. 따라서 preCommit 단계를 추가하여 데이터 정합성을 확보한다. 결과적으로 Schema Evolution 시에도 Position Delete를 유지하도록 개선했다.

토스증권 Iceberg 적용기 #1: CDC 환경은 왜 제대로 동작하지 않을까?
고급
아키텍처
Iceberg
Kafka
Go
Data
Backend
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

Kafka Streams 윈도우 도입으로 정산 시스템 안정성 확보!

컬리 로고

토스증권, Kafka 로그 분석으로 MSA 가시성 확보!

토스 로고

올리브영, Kafka 메시지 중복/유실 문제 해결 노하우 공개!

올리브영 로고

Iceberg와 Flink로 데이터 파이프라인(Data Pipeline) 성능 12배 향상!

라인 로고

Spring Boot에서 Go로의 전환, 개발자는 무엇을 얻고 잃었을까?

레딧 로고

Pinterest, 자동화된 스키마 변경 관리로 데이터 일관성 확보

핀터레스트 로고
토스 favicon토스
고급
아키텍처
Iceberg
Kafka
Go
Data
Backend

관련 추천 글

Kafka Streams 윈도우 도입으로 정산 시스템 안정성 확보!

컬리 로고

토스증권, Kafka 로그 분석으로 MSA 가시성 확보!

토스 로고

올리브영, Kafka 메시지 중복/유실 문제 해결 노하우 공개!

올리브영 로고