Medallion 아키텍처란 Databricks에서 제시하는 데이터 파이프라인 모델로 Delta Lake와 함께  CDC(Change Data Capture) 방식의 데이터 웨어하우스 구성 방법을 제시합니다. CDF(Change Data Feed) 기능을 사용하면 더욱 쉽게 구현 가능합니다.

출처: https://databricks.com/notebooks/delta-lake-cdf.html

변경 데이터 캡쳐 (Change Data Capture)

Medallion 아키텍처를 살펴보기 전에 CDC라는 개념을 살펴봐야 합니다.

CDC는 어떤 데이터소스의 데이터가 변경 되었을 때, 이를 감지하고 이에 필요한 후속 조치를 할 수 있게 자동화하는 방식의 설계 혹은 메커니즘을 이야기 합니다. CDC 매커니즘이 적용된 데이터 파이프라인에서는 원천 데이터 소스의 변경을 타겟에 반영하는 것이 매우 자연스럽고 자동화된 방식으로 이뤄지기 때문에 효과적으로 파이프라인 관리가 가능합니다.

Delta Lake에서는 CDC를 구현하기 위해 내부적으로 별도의 메타 데이터들을 파일로 저장하고 관리합니다. 그리고 CDC를 사용자가 쿼리 수준으로 간단하게 관리하기 위한 방법으로 Change Data Feed 기능을 제공합니다. 자세한 내용은 공식 문서를 참고하시기 바랍니다.

3 Layer

Medallion 아키텍처는 아래의 세 가지 레이어를 가지고 있습니다.

  1. Bronze: Raw Ingestion Table
  2. Silver: Refined Table
  3. Gold: Feature/Aggregation Table

BRONZE

외부 소스(External feeds, CDC output, Extracts)로부터 Raw 데이터를 가져와서 Bronze 테이블로 적재합니다. Delta 테이블이기 때문에 스키마 변경에 유연하게 대응할 수 있고 CDF 기능을 활용하면 증분 데이터에 대한 히스토리 정보도 확인 가능합니다.

SILVER

Bronze 테이블로부터 특정 필드값에 대한 filter를 통해 새로운 Silver 테이블에 적재합니다. Schema가 고정된 정형 데이터를 가지고 있기 때문에 머신러닝에 활용 가능합니다.

GOLD

Silver 테이블로부터 Aggregation을 수행하여 Gole 테이블에 적재합니다. Business Level로 정재된 데이터를 포함하기 때문에 BI(Business Intelligence) 도구와 연동하여 시각화에 활용 가능합니다.

참고