이 문서는 레이크하우스 아키텍처 섹션의 일부입니다.
Column Mapping Mode 내부 동작 상세
Column Mapping은 Delta Lake에서 스키마 유연성을 크게 높이는 핵심 기능입니다. 내부 동작 원리를 이해하면 제한사항과 문제를 예방할 수 있습니다.물리적 이름 vs 논리적 이름
Column Mapping이 활성화되면, 테이블의 논리적 컬럼 이름(사용자가 보는 이름)과 물리적 컬럼 이름(Parquet 파일 내 실제 이름)이 분리됩니다.메타데이터 저장 위치
Column Mapping 정보는 Delta Log의 메타데이터 액션 에 저장됩니다.이름 변경/삭제의 실제 동작
Column Mapping 활성화 시 제한사항
Column Mapping을 활성화하면 강력한 기능을 얻지만, 몇 가지 중요한 제한사항이 있습니다.호환성 제한
Streaming과 Column Mapping의 상호작용
⚠️ 중요: Column Mapping이 활성화된 테이블에서 컬럼을 이름 변경하거나 삭제 하면, 해당 테이블을 읽는 Structured Streaming 쿼리가 실패 할 수 있습니다.
대규모 스키마 변경 전략 (컬럼 100개+ 추가)
실무에서는 스키마가 한 번에 수십~수백 개의 컬럼이 추가되는 경우가 있습니다(예: IoT 센서 데이터, 설문 데이터 등).대량 컬럼 추가 방법 비교
대량 컬럼 추가 실습 (mergeSchema 활용)
스키마 변경 시 다운스트림 영향 관리
Auto Loader 스키마 진화와의 관계
Auto Loader의 스키마 진화는 Delta Lake의 스키마 진화(mergeSchema)와 함께 동작하며, 소스 파일 → 타겟 테이블 전체 흐름에서 스키마를 관리합니다.
Auto Loader + Delta 스키마 진화 전체 흐름
schemaEvolutionMode와 Delta mergeSchema의 관계
Rescue 모드 활용 패턴 (프로덕션 권장)
💡 프로덕션 권장 패턴: Bronze 레이어에서는 rescue 모드를 사용하여 예기치 않은 스키마 변경을 안전하게 캡처하고, Silver/Gold 레이어에서는 DDL로 명시적 스키마 관리를 하는 것이 가장 안정적입니다.