
Flink와 Iceberg를 활용해 데이터 중단 없이 스키마를 동기화하는 3단계 전략
핀터레스트 엔지니어링 팀이 대규모 CDC 파이프라인에서 발생하는 스키마 변경 문제를 해결하기 위한 기술적 여정을 공유합니다. 단순히 DDL을 업데이트하는 것을 넘어 코드 생성, 메타데이터 버전 관리, 데이터 수렴을 자동화하여 파이프라인의 가용성을 극대화한 사례입니다.
대규모 CDC 파이프라인에서 빈번한 스키마 변경으로 고통받는 데이터 엔지니어와 백엔드 개발자에게 강력히 추천합니다.
업스트림 스키마의 빈번한 변경이 인제스션, 변환, 저장소 등 파이프라인 전반의 계약을 깨뜨려 데이터 정합성을 해치고 수동 대응 부담을 가중시키는 문제가 있었습니다.
Kafka, Flink, Spark, Iceberg를 아우르는 SLA 기반의 자동화된 스키마 전파 프레임워크를 구축하고, 3단계 수렴 모델(Phase-based Convergence)을 도입했습니다.
스키마 변경 시 발생하던 파이프라인 중단 위험을 최소화하고, PR 기반의 감사와 자동화된 롤아웃을 통해 온라인과 오프라인 데이터 간의 정합성을 안정적으로 유지하게 되었습니다.
Trade-off
안정성을 위해 추가적인(Additive) 변경 위주로 자동화를 제한했으며, 복잡한 타입 변경이나 삭제 등은 수동 개입이나 전체 재처리(Backfill)가 필요한 한계가 있습니다.
스키마 변경을 원자적 작업이 아닌 단계적 프로세스로 취급하여, 일정 시간 내에 온라인과 오프라인 스키마를 일치시키는 모델입니다.
데이터베이스의 변경 사항을 실시간으로 감지하여 외부 시스템으로 전달하는 기술입니다.
대규모 분석 데이터셋을 위한 오픈 테이블 포맷으로, 원자적인 스키마 진화 기능을 제공합니다.




