← 학습 카테고리

Learn

Databricks

14개 모듈 · 현재 10번째

Databricks 모듈 10/14 databricks-learn-10

메달리온 아키텍처와 Auto Loader 기반 수집

60 Databricks Interview Questions Senior DEs Actually Ask (2026) — 미상 (DataVidhya 블로그, 2026) Data Engineering & ETL Pipelines, Q21-Q23, Q29 (pp.8-9, 11) 및 beginner guide 'Project: E-Commerce Customer Reviews Pipeline' (pp.13-19)

이 모듈을 다 읽으면

  • Bronze/Silver/Gold 각 레이어의 역할과 데이터가 그 사이를 이동하며 어떻게 정제되는지 설명할 수 있다
  • Auto Loader가 대량의 신규 파일을 효율적으로 감지하는 방식을 설명할 수 있다
  • Auto Loader의 스키마 추론·Rescued Data Column과 COPY INTO의 멱등성이 각각 어떤 문제를 해결하는지 구분할 수 있다

메달리온 아키텍처는 데이터 품질과 신뢰성을 위해 데이터를 Bronze(원본)-Silver(정제)-Gold(집계) 세 레이어로 나누는 설계 패턴이다. Databricks는 이 파이프라인의 수집 단계를 Auto Loader(클라우드 스토리지에 도착하는 파일을 스트리밍으로 증분 처리)와 COPY INTO(멱등적인 선언형 SQL 적재)로 지원한다. 초보자 가이드의 E-Commerce 리뷰 파이프라인 프로젝트는 이 패턴을 5개의 노트북(오케스트레이터, Bronze 적재, 데이터 품질, Silver 변환, Gold 집계)으로 구현하는 실제 예시를 보여준다.

Bronze-Silver-Gold 레이어

메달리온 아키텍처는 품질과 신뢰성을 보장하기 위해 데이터를 세 개의 뚜렷한 레이어로 조직하는 데이터 설계 패턴이다. Bronze(Raw)는 소스에서 도착한 그대로의 데이터를 저장한다 — 보통 변환 없이 파일이나 이벤트를 그대로 '덤프'해두어, 파이프라인 나머지 부분을 위한 불변(immutable)의 원본 소스 역할을 한다. Silver(Cleansed)는 데이터가 정제·필터링·조인되는 단계로, 여기서 스키마 강제가 적용되고 분석가를 위한 '진실 공급원(source of truth)'을 만드는 기본 비즈니스 로직이 쓰인다. Gold(Curated)는 BI 대시보드, 리포팅, 머신러닝 피처 같은 특정 비즈니스 용도에 맞춰 고도로 집계·변환된 데이터다.

beginner guide의 E-Commerce 리뷰 파이프라인 프로젝트는 이 패턴을 그대로 구현한다. 원본 CSV를 손대지 않고 저장하는 Bronze 노트북, 결측치·중복·잘못된 레코드를 제거하는 데이터 품질 노트북, 정제된 데이터를 비즈니스 로직으로 변환하는 Silver 노트북, 대시보드·분석가가 쓸 KPI를 만드는 Gold 노트북, 그리고 이 모든 노트북을 `dbutils.notebook.run()`으로 순서대로 실행하는 오케스트레이터 노트북으로 구성된다. 각 레이어는 스토리지의 자신만의 폴더에 쓰기 때문에, 데이터가 raw → Bronze → Silver → Gold로 깔끔하게 흘러간다.

핵심 포인트

  • Bronze는 원본 그대로의 불변 데이터, Silver는 정제·조인·스키마 강제가 적용된 진실 공급원, Gold는 특정 비즈니스 용도로 집계된 데이터다
  • 각 레이어는 스토리지의 자신만의 폴더/테이블에 쓰여 raw→Bronze→Silver→Gold로 데이터가 단계적으로 흐른다
  • 실전 파이프라인은 보통 오케스트레이터 노트북(또는 Job)이 각 레이어 노트북을 순서대로 실행하는 구조로 조립된다

Auto Loader와 COPY INTO

Auto Loader는 클라우드 스토리지에 도착하는 수백만 개의 파일을 처리하기 위한 특화 기능이다. Structured Streaming의 `cloudFiles` 포맷을 사용해, 전체 디렉터리를 나열(list)하는 성능 오버헤드 없이 새 데이터를 증분 처리한다. 신규 파일을 매우 낮은 지연으로 식별하기 위해 '디렉터리 리스팅' 방식이나, AWS SNS/SQS 같은 클라우드 네이티브 서비스를 이용한 '파일 알림(File Notification)' 방식을 쓸 수 있다.

Auto Loader는 처음 몇 개 파일을 샘플링해 스키마를 자동으로 추론할 수 있다. 새 파일이 다른 구조(예: 새 컬럼)로 도착하면 '스키마 진화'나 '스키마 힌트'로 이를 처리한다. 또한 예상 스키마와 맞지 않는 데이터(정수 컬럼에 문자열이 온 경우 등)를 별도의 'Rescued Data Column'에 담아, 수집 과정에서 데이터가 유실되지 않도록 보장한다.

`COPY INTO`는 클라우드 스토리지 폴더의 데이터를 Delta 테이블로 적재하는 선언형 SQL 명령이다. 멱등적(idempotent)으로 설계되어 있어, 이미 처리된 파일을 자동으로 추적해 이후 실행에서 건너뛴다. 간단하고 반복적인 파일 적재 작업이라면, 전체 Structured Streaming Auto Loader 파이프라인을 구성하는 것보다 더 간단한 선택지다.

핵심 포인트

  • Auto Loader는 `cloudFiles` 포맷으로 전체 디렉터리 나열 없이 신규 파일을 스트리밍 증분 처리한다
  • 스키마 자동 추론과 'Rescued Data Column'으로 예상과 다른 구조의 데이터도 유실 없이 수집한다
  • COPY INTO는 이미 처리한 파일을 자동 추적하는 멱등적 SQL 적재 명령으로, 간단한 반복 적재에는 전체 스트리밍 파이프라인보다 가벼운 대안이다