Day 17: Spark에서 Bronze–Silver–Gold 아키텍처를 사용한 실제 ETL 파이프라인 구축
발행: (2025년 12월 18일 오전 01:54 GMT+9)
2 min read
원문: Dev.to
Source: Dev.to

Welcome to Day 17 of the Spark Mastery Series.
Today you’ll build what most data engineers actually do in production—a layered ETL pipeline using Spark and Delta Lake.
왜 Bronze–Silver–Gold 구조인가?
레이어 없이
- 디버깅이 어려움
- 데이터 품질 문제가 전파됨
- 재처리가 고통스러움
레이어가 있으면
- 각 레이어가 하나의 책임만 가짐
- 실패가 격리됨
- 파이프라인 유지보수가 쉬움
Bronze 레이어 — 원시 데이터
목적
- 받은 그대로 원시 데이터를 저장
- 변환 없음
- Append‑only
장점
- 감사 가능성
- 재생 가능성
Silver 레이어 — 정제 및 정규화된 데이터
목적
- 중복 제거
- 스키마 강제 적용
- 비즈니스 규칙 적용
데이터 품질이 이곳에 존재합니다.
Gold 레이어 — 비즈니스 메트릭
목적
- 집계된 메트릭
- KPI
- 사실 및 차원 테이블
사용 대상
- BI 도구
- 대시보드
- ML 피처
실제 소매 예시
| 레이어 | 변환 예시 |
|---|---|
| Bronze | order_id, customer_id, amount, updated_at |
| Silver | - order_id당 최신 레코드 유지- 음수 금액 제거 |
| Gold | - 일일 매출 - 일별 총 주문 수 |
왜 Delta Lake가 여기서 완벽한가
- ACID 쓰기 보장
- 증분 로드를 위한
MERGE - 디버깅을 위한 타임 트래블
- 스키마 진화 지원
- 레이어드 ETL에 이상적
요약
- Bronze–Silver–Gold 아키텍처
- Spark를 이용한 엔드‑투‑엔드 ETL
- 윈도우 함수를 활용한 중복 제거
- 비즈니스 집계 로직
- 프로덕션 베스트 프랙티스