Medallion Architecture

Kay(Geun Woo)
4 min readDec 11, 2023

--

What is Medallion Architecture?

Multi-hop Architecture로도 불리는 Medallion Architecture는 데이터 디자인 패턴으로 데이터 레이크하우스(Lakehouse)의 데이터를 정리하는 방법론 중 하나입니다. Medallion Architecture에 대해 본격적으로 설명해보기 이전에 조금은 생소할 수 있는 데이터 레이크하우스에 대해 알아볼까요?

  • Data Lakehouse : 데이터 레이크하우스란 데이터 웨어하우스와 데이터 레이크를 합친 데이터 저장 구조입니다. 비교적 새로운 데이터 관리 구조 방법이며, 정형 데이터가 데이터의 주를 이루던 옛날과 달리 비정형 데이터의 양이 상대적으로 많이 증가했습니다. 그러다보니 일부 기업들은 정형 데이터만 저장하는 Data Warehouse 만으로 데이터를 관리하기 어려워지는 상황에 처하게 됩니다. 하지만 그렇다고 해서 비정형 데이터도 저장하기 위해 Data Lake 로 데이터를 관리하기에는 Data Warehouse의 쿼리 수행 능력을 포기할 수 없었습니다. 그래서, 이 둘의 장점을 합친 Data Lakehouse 라는 새로운 형태의 데이터 관리 방법론이 등장합니다. Data Lakehouse는 데이터 레이크의 범용성과 데이터 웨어하우스의 ACID transactions 능력을 가져 저장한 데이터로 BI(Business Intelligence)와 ML(Machine Learning) 작업을 수행할 수 있습니다.
Data Warehouse, Data Lake, Data Lakehouse의 공통점과 차이점(출처: databricks)

Medallion Architecture은 데이터들의 구조(Structure)와 질(Quality)에 따라 데이터들을 등급별로 분류하는 구조입니다.

Medallion architecture introduced by Delta Lake(출처: databricks)

이름처럼 Medallion architecture는 데이터들을 금, 은, 동 등급으로 분류하여 관리합니다. 물론, 기업에서 등급을 어떻게 설정할지, 등급은 몇개로 설정할지, 등급별로 얼마나 변환된(Transformed) 데이터를 설정할지 등에 따라 구조는 바뀔 수 있습니다. 골드 너머에 다이아몬드 등급이 추가될 수도 있는 거고, 각 등급에 지금 설명하는 구조와 달리 다른 형태의 데이터를 저장할 수도 있습니다. 하지만 보편적으로 사용하는 Medallion 구조의 데이터 등급은 아래와 같습니다.

  • Bronze layer(Raw data) : 동(Bronze) 레이어에는 보통 외부 소스로부터 뽑아 온 날 것의 데이터(Raw data)를 담아 놓습니다. 결측치가 있던, 분석 불가능한 상태의 값이 있던, 비정형 데이터가 있던, 일체 건드리지 않고(as-is) 저장해놓습니다. Raw data는 빠른 CDC(Change Data Capture)를 수행하고 언제 어떻게 사용될지 모를 원본 데이터를 저장하기 위해 저장됩니다. 이런 날 것의 데이터를 저장하는 데이터 저장소를 Cold Storage라고 칭합니다.
  • Silver layer(Cleansed & Conformed data) : 은(Silver) 레이어에는 보통 깔끔하게 정재된 상태의 데이터를 저장합니다. 이 상태를 Cleansed, 혹은 Conformed 된 상태의 데이터라고 칭합니다. Databricks의 문서에서는 이 상태를 just-enough라고도 칭합니다. 보통 기업이 정한 기준에 따른 결측치 보완, 중복값 제거, 데이터 타입 일치화 등의 변환 작업이 이루어진 상태의 데이터를 저장합니다.
  • Gold layer(Curated business-level tables) : 금(Gold) 레이어에는 보통 각 기업이 기획한 분석 프로젝트나 전략 기획 프로젝트에 사용할 수 있는 상태의 데이터를 저장합니다.

Medallion Architecture는 개인적으로 보았을 때 데이터가 직관적으로 정리 할 수 있고, ETL을 분명한 절차에 따라 진행하기 때문에 비교적 유지보수하기 편할 것 같습니다.

--

--