Skip to main content
이 문서는 데이터 엔지니어링 섹션의 일부입니다.

시나리오

온라인 쇼핑몰의 주문 데이터(JSON)고객 마스터 데이터(CDC) 를 수집하여, Medallion 아키텍처 기반의 분석 파이프라인을 구축합니다. Bronze(원본 수집) → Silver(정제·검증) → Gold(비즈니스 집계) 3계층 파이프라인을 SDP(Spark Declarative Pipelines)로 구현합니다.

사전 준비

1. 카탈로그 및 스키마 생성

2. 샘플 데이터 준비

실습에 사용할 JSON 데이터를 Volumes에 업로드합니다.

Step 1: 파이프라인 노트북 작성

하나의 SQL 노트북에 전체 파이프라인을 작성합니다. SDP에서는 “무엇을 만들지”만 선언 하면, 실행 순서와 의존성은 자동으로 관리됩니다.

Bronze Layer — 원본 수집

💡 Bronze 계층의 원칙: 소스 데이터를 변환 없이 원본 그대로 저장합니다. 메타데이터(_metadata)를 함께 저장하면 데이터 출처를 추적할 수 있습니다.

Silver Layer — 정제 및 검증

💡 Expectations의 역할: ON VIOLATION DROP ROW는 품질 규칙을 위반하는 행을 자동으로 제거합니다. 제거된 행의 수는 Pipeline UI에서 확인할 수 있어, 데이터 품질을 모니터링할 수 있습니다.

Gold Layer — 비즈니스 집계


Step 2: 파이프라인 생성 (UI)

  1. 좌측 메뉴 WorkflowsPipelines 클릭
  2. Create Pipeline 버튼 클릭
  3. 설정 입력:
  1. Create 클릭

Step 3: 파이프라인 실행

  1. Pipeline 상세 페이지에서 Start 클릭
  2. 실행 과정을 실시간으로 모니터링:

Step 4: 결과 확인 및 모니터링

Pipeline UI에서 확인

SQL로 결과 확인


Step 5: 증분 데이터 추가 및 재실행

SDP의 핵심 장점 중 하나는 증분 처리 입니다. 새 데이터를 추가하고 파이프라인을 다시 실행하면, 새 데이터만 처리합니다.

새 주문 데이터 추가

고객 데이터 변경 (CDC 시뮬레이션)

파이프라인 재실행

Pipeline UI에서 Start 클릭 (또는 CLI: databricks pipelines start-update --pipeline-id <id>)
💡 증분 처리 확인: 재실행 후 Bronze 테이블의 행 수가 증가했는지, Gold 테이블의 집계가 업데이트되었는지 확인하세요. Auto Loader는 이전에 처리한 파일을 건너뛰고 새 파일(batch3, update1)만 처리 합니다.

Step 6: Full Refresh vs 증분 업데이트

⚠️ Full Refresh 주의: Streaming Table의 Full Refresh는 모든 데이터를 다시 수집합니다. 대용량 데이터의 경우 시간과 비용이 많이 소요될 수 있으므로 신중하게 사용하세요.

트러블슈팅

자주 발생하는 오류

유용한 디버깅 쿼리


클린업

실습이 끝나면 리소스를 정리합니다.

정리


참고 링크