Large-Scale Data Migration

대규모 데이터 시스템 마이그레이션의 안전한 실행을 위한 전략과 패턴


핵심 개념

대규모 데이터 시스템 마이그레이션은 단순히 “새 시스템으로 전환”하는 것이 아니라, 수만 개의 작업을 데이터 품질 검증·롤백 안전성·자동화를 갖추고 점진적으로 전환하는 엔지니어링 과제다. CDC 기반 시스템에서는 잘못된 데이터가 후속 파티션에 전파되므로, 조기 탐지와 빠른 차단이 특히 중요하다.

Shadow / Reverse-Shadow 패턴

Meta의 데이터 인제스천 시스템 마이그레이션에서 검증된 3단계 수명주기:

Phase 1: Shadow

  • 새 시스템이 동일 소스를 소비하되 별도 “섀도 테이블”에 적재
  • 프로덕션 작업과 row count + checksum을 지속적으로 비교
  • 프로덕션 데이터에 영향 없이 실제 워크로드에서 새 시스템 검증

Phase 2: Reverse Shadow

  • 새 시스템이 프로덕션 테이블에 쓰고, 기존 시스템이 섀도 테이블에 쓰도록 역전
  • 지속적인 데이터 품질 비교 가능 + 불일치 발견 시 즉시 롤백
  • 롤백 시 구 시스템을 재설정할 필요 없음

Phase 3: Cleanup

  • 불일치 없음을 확인한 후 구 시스템 섀도 작업 제거
  • 새 시스템이 정식 프로덕션으로 확정

배치 계획과 자동화

  • 제한된 용량에서 작업을 배치로 선별하여 마이그레이션
  • 알려진 이슈가 있는 작업은 수정 완료까지 배치에서 제외 — 불필요한 full dump 방지
  • 자동 프로모션/디모션: 마이그레이션 기준(데이터 품질, 랜딩 레이턴시, 리소스 사용량) 충족 여부를 시스템이 지속 판단
  • 대시보드로 전체 진행률 + 개별 작업 디버깅 가시성 제공

CDC 마이그레이션의 특수성

  • CDC는 이전 적재 데이터를 기반으로 새 데이터를 생성 → 잘못된 파티션이 후속 데이터에 전파
  • 파티션 메타데이터에 bad-data 마킹 → delta 파티션이면 적재 중단, target 파티션이면 이전 정상 파티션 + delta 병합
  • 롤백 시 bad-data 마킹된 파티션만 backfill하여 빠르게 복구

트레이드오프

접근법장점비용
Shadow/Reverse-Shadow데이터 품질 지속 검증, 빠른 롤백2배 리소스 사용(양 시스템 병렬 운영)
Big-Bang 전환짧은 전환 기간롤백 어려움, 위험 집중
점진적 테이블 단위리스크 분산긴 전환 기간, 혼합 상태 관리

연관 개념


Source: Migrating Data Ingestion Systems at Meta Scale