피드로 돌아가기
InfoQDatabase
원문 읽기
Discriminator 기반 스키마 통합으로 테이블 수 10개 이상에서 2개로 감축
Article: The Schema Proliferation Problem in Kafka and Flink Pipelines: How to Solve It
AI 요약
Context
이벤트별 1:1 스키마 매핑 구조로 인한 Schema Proliferation 발생. 이벤트 유형 증가에 따라 데이터 레이크 내 테이블 수가 기하급수적으로 늘어나며, 쿼리 복잡도 증가 및 유지보수 비용 상승이라는 한계에 직면.
Technical Solution
- 80~95%의 구조적 중복을 가진 이벤트들을 Discriminator Enum 필드로 구분하여 단일 스키마로 통합 설계
- 새로운 이벤트 변형 추가 시 기존 Consumer 영향도를 없애기 위해 Nullable attribute block 구조 채택
- Flink 파이프라인 내 transformation logic과 framework integration을 분리한 Layered Adapter 디자인 적용
- Producer 중심의 개별 스키마 설계에서 Consumer의 Access Pattern 중심의 통합 스키마 설계로 전환
- 수동 Dispatcher 기반의 Adapter 패턴에서 Framework native support 방식으로 점진적 마이그레이션 전략 수립
실천 포인트
1. 이벤트 간 필드 중복도가 80% 이상인지 확인
2. 동일 도메인 내 여러 테이블을 UNION 하여 쿼리하는 빈도가 높은지 분석
3. 신규 이벤트 추가 시 하위 호환성을 보장하는 Nullable 필드 전략 수립
4. Adapter Layer를 통해 통합 스키마의 효용성을 먼저 검증 후 Framework 수준의 지원 검토