DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
KOEN
Read Original

Contents

Continue Reading

  • More from Pinterest
  • Related reads#CDC
#Backend

핀터레스트의 차세대 DB 인제스션 프레임워크 내 자동화된 스키마 진화

핀터레스트의 차세대 DB 인제스션 프레임워크 내 자동화된 스키마 진화
01

Summary

핀터레스트가 스키마 변경 지옥에서 벗어난 방법: 자동화된 스키마 진화 프레임워크

Flink와 Iceberg를 활용해 데이터 중단 없이 스키마를 동기화하는 3단계 전략

핀터레스트 엔지니어링 팀이 대규모 CDC 파이프라인에서 발생하는 스키마 변경 문제를 해결하기 위한 기술적 여정을 공유합니다. 단순히 DDL을 업데이트하는 것을 넘어 코드 생성, 메타데이터 버전 관리, 데이터 수렴을 자동화하여 파이프라인의 가용성을 극대화한 사례입니다.

  • 01Kafka-Flink-Spark-Iceberg로 이어지는 전 과정의 스키마 자동 전파
  • 02가용성을 해치지 않는 3단계 수렴(Divergence - Code - Data) 모델 채택
  • 03안정성을 고려한 하위 호환성 위주의 가산(Additive) 스키마 변경 지원
  • 04Pull/Push 방식을 결합한 스키마 변경 감지 및 자동 PR 생성 워크플로우
  • 05복잡한 DDL 추론을 위한 MySQL binlog 기반 감사(Audit) 트레일 활용

+RECOMMENDATION

대규모 CDC 파이프라인에서 빈번한 스키마 변경으로 고통받는 데이터 엔지니어와 백엔드 개발자에게 강력히 추천합니다.

The Problem

업스트림 스키마의 빈번한 변경이 인제스션, 변환, 저장소 등 파이프라인 전반의 계약을 깨뜨려 데이터 정합성을 해치고 수동 대응 부담을 가중시키는 문제가 있었습니다.

The Solution

Kafka, Flink, Spark, Iceberg를 아우르는 SLA 기반의 자동화된 스키마 전파 프레임워크를 구축하고, 3단계 수렴 모델(Phase-based Convergence)을 도입했습니다.

The Result

스키마 변경 시 발생하던 파이프라인 중단 위험을 최소화하고, PR 기반의 감사와 자동화된 롤아웃을 통해 온라인과 오프라인 데이터 간의 정합성을 안정적으로 유지하게 되었습니다.

Trade-off

안정성을 위해 추가적인(Additive) 변경 위주로 자동화를 제한했으며, 복잡한 타입 변경이나 삭제 등은 수동 개입이나 전체 재처리(Backfill)가 필요한 한계가 있습니다.

03

Key Concepts

Concept · 01

SLA-Based Convergence

스키마 변경을 원자적 작업이 아닌 단계적 프로세스로 취급하여, 일정 시간 내에 온라인과 오프라인 스키마를 일치시키는 모델입니다.

  • Iceberg 스키마를 먼저 업데이트하고 이후에 Flink/Spark 코드를 순차적으로 배포하여 중단을 방지합니다.
Concept · 02

Change Data Capture (CDC)

데이터베이스의 변경 사항을 실시간으로 감지하여 외부 시스템으로 전달하는 기술입니다.

  • 업스트림 DB의 DDL 변경을 감지하여 전체 파이프라인의 스키마 진화를 트리거하는 원동력이 됩니다.
Concept · 03

Apache Iceberg

대규모 분석 데이터셋을 위한 오픈 테이블 포맷으로, 원자적인 스키마 진화 기능을 제공합니다.

  • CDC 테이블과 베이스 테이블의 스키마 관리를 담당하며, 필드 ID 기반의 추적을 통해 안전한 변경을 지원합니다.
Continue reading · same source

PinterestMore from Pinterest

View all posts from Pinterest
  • 핀터레스트 홈 피드를 위한 조건부 학습 검색(CLR) 확장하기

    Recommendation SystemsLearned RetrievalTransformer
    3일 전
  • 피너의 성장: 핀터레스트의 주간 활성 사용자 증가를 이끄는 유스케이스 표현 개선 사례

    Recommendation SystemsClusteringEmbeddings
    1개월 전
  • 대규모 인프라 보안 확보: 핀터레스트의 리소스 프로비저너 파이프라인(RPP) 도입기

    TerraformAWSGitHub Actions
    1개월 전
  • 핀터레스트 파운데이션 모델을 위한 선형에 가까운 학습 확장성 달성

    Distributed TrainingPyTorchNCCL
    2개월 전
  • 사용자 시퀀스 데이터를 더 효율적이고 빠르며 사용하기 쉽게 만들기

    User SequenceLambda ArchitectureML Infrastructure
    3개월 전

Related reads#CDC

Explore #CDC
Flex·ReBAC

사람은 떠났는데 권한은 남았다

#CDC1개월 전
여기어때·MongoDB

데이터 통합— MongoDB 원칙으로 document를 통합하고 동기화를 재설계하다 (3/3)

#CDC1개월 전
올리브영·Kafka

옴니채널 재고 정합성 한계에 대응하는 인벤토리 데이터 파이프라인 구축기

#CDC1개월 전
올리브영·Datadog

에러로그 하나에 깨던 새벽에서 벗어나기까지 — 상품 모니터링 진화기

#CDC2개월 전
라인·Apache Iceberg

Hive에서 Iceberg로: 데이터 반영 속도 12배 향상의 비밀

#CDC4개월 전

Source

Pinterest
Pinterest
Engineering Blog

Published · June 24, 2026

Topics

CDCApache IcebergFlinkSparkKafka