일반적으로 메달리온 아키텍처로 알려진 메달리온 레이크하우스 아키텍처는 레이크하우스에서 데이터를 조직하는 데 사용되는 디자인 패턴입니다. Fabric에 권장되는 디자인 방법입니다. OneLake는 패브릭의 데이터 레이크이므로 Medallion 아키텍처는 OneLake에서 레이크하우스를 만들어 구현됩니다.
Medallion 아키텍처는 세 개의 고유한 계층으로 구성됩니다. 세 가지 메달 계층은 브론즈(원시 데이터), 실버(보강 데이터) 및 골드(큐레이팅된 데이터)입니다. 각 레이어는 레이크하우스에 저장된 데이터의 품질을 나타내며, 수준이 높을수록 더 높은 품질을 나타냅니다.
Medallion 아키텍처는 ACID(원자성, 일관성, 격리 및 내구성)의 원칙에 따라 데이터를 정확하고 안정적으로 유지하는 데 도움이 됩니다. 데이터는 원시 형식으로 시작하며, 유효성 검사 및 변환 파이프라인이 분석을 위해 데이터를 준비하는 동안 원본 복사본은 진실의 원본으로 유지됩니다.
자세한 내용은 메달리언 레이크하우스 아키텍처란 무엇인가?를 참조하세요.
청중
이 문서에서는 medallion Lake 아키텍처를 소개하고 Microsoft Fabric에서 디자인 패턴을 구현하는 방법을 설명합니다. 여러 대상 그룹을 대상으로 합니다.
- 데이터 엔지니어: 조직에서 대량의 데이터를 수집, 저장, 처리 및 분석할 수 있도록 하는 인프라와 시스템을 설계, 구축 및 유지 관리하는 기술 직원입니다.
- 우수, IT 및 BI 팀의 센터: 조직 전체에서 분석을 감독할 책임이 있는 팀입니다.
- 패브릭 관리자: 조직에서 패브릭 감독을 담당하는 관리자입니다.
메달리온 아키텍처란 무엇인가요?
medallion 아키텍처의 목표는 데이터의 구조와 품질을 증분 방식으로 개선하는 것입니다. medallion 아키텍처를 데이터에 대한 3단계 정리 및 구성 프로세스로 간주합니다. 각 계층을 사용하면 데이터를 보다 안정적이고 쉽게 사용할 수 있습니다.
- 브론즈 (원시): 도착하는 대로 모든 것을 정확하게 저장합니다. 변경할 수 없습니다.
- Silver(보강됨) : 오류를 수정하고 형식을 표준화하며 중복 항목을 제거합니다.
- 골드(큐레이팅됨) : 보고서 및 대시보드를 구성합니다.
각 레이어는 OneLake의 자체 레이크하우스 또는 데이터 웨어하우스에서 분리된 상태로 유지하며, 데이터가 변환 및 구체화될 때 계층 간에 이동됩니다.
패브릭의 일반적인 medallion 아키텍처 구현에서 브론즈 계층은 데이터 원본과 동일한 형식으로 데이터를 저장합니다. 데이터 원본이 관계형 데이터베이스인 경우 Delta 테이블이 적합합니다. 은색 및 금색 계층에는 델타 테이블이 포함되어야 합니다.
팁
레이크하우스를 만드는 방법을 알아보려면 레이크하우스 엔드투엔드 시나리오 자습서를 살펴보세요.
실제 예제
medallion 아키텍처를 데이터에 적용하는 전자 상거래 회사의 다음 예제를 살펴보겠습니다.
브론즈 레이어:
- 웹 사이트에서 원시 판매 데이터 저장(JSON)
- 웨어하우스에서 원시 인벤토리 데이터 저장(CSV)
- CRM에서 원시 고객 데이터 저장(SQL 내보내기)
실버 레이어:
- 모든 원본에서 날짜 형식 표준화
- 모든 통화를 USD로 변환
- 테스트 트랜잭션 제거
- 시스템 간 고객 레코드 일치
골드 레이어:
- 일일 판매 대시보드 테이블 만들기
- 고객 평생 가치 테이블 작성
- 인벤토리 예측 테이블 생성
OneLake의 메달리온 아키텍처
최신 Data Warehouse의 기반은 데이터 레이크입니다. Microsoft OneLake는 전체 조직을 위한 단일 통합 논리 데이터 레이크입니다. 모든 패브릭 테넌트와 함께 자동으로 프로비전되며 모든 분석 데이터의 단일 위치입니다.
데이터를 OneLake에 저장하려면 레이크하우스를 Fabric에 만듭니다. 레이크하우스는 구조화되고 구조화되지 않은 데이터를 단일 위치에 저장, 관리 및 분석하기 위한 데이터 아키텍처 플랫폼입니다. 모든 파일 형식 및 크기의 큰 데이터 볼륨으로 확장할 수 있으며 데이터가 단일 위치에 저장되므로 조직 전체에서 공유 및 재사용할 수 있습니다.
레이크하우스에 대한 자세한 내용은 Microsoft Fabric의 레이크하우스란?을 참조하세요.
테이블 및 파일
OneLake에서 레이크하우스를 만들면 두 개의 물리적 스토리지 위치가 자동으로 프로비전됩니다.
- 테이블은 모든 형식의 테이블을 Apache Spark(CSV, Parquet 또는 Delta)에 저장합니다.
- 파일 은 모든 파일 형식으로 데이터를 저장합니다. 파일 영역의 데이터를 기반으로 테이블을 만들려면 테이블 파일이 포함된 폴더를 가리키는 바로 가기 를 만들 수 있습니다.
브론즈 계층에서는 테이블 또는 파일일 수 있는 원래 형식으로 데이터를 저장합니다. 원본 데이터가 OneLake, ADLS Gen2(Azure Data Lake Store Gen2), Amazon S3 또는 Google에서 온 경우 데이터를 복사하는 대신 브론즈 계층에 바로 가기를 만듭니다.
실버 및 골드 계층에서는 일반적으로 델타 테이블에 데이터를 저장합니다. 그러나 Parquet 또는 CSV 파일에 데이터를 저장할 수도 있습니다. 이 경우 Apache Spark의 Delta Lake 파일이 포함된 관리되지 않는 폴더를 가리키는 위치가 있는 바로 가기 또는 외부 테이블을 명시적으로 만들어야 합니다.
Microsoft Fabric에서 레이크하우스 탐색기는 사용자가 데이터를 탐색, 액세스 및 업데이트할 수 있도록 전체 레이크하우스에 대한 통합 그래픽 표현을 제공합니다.
Delta Lake 스토리지
Delta Lake는 데이터와 테이블을 저장하기 위한 기반을 제공하는 최적화된 스토리지 레이어입니다. 빅 데이터 워크로드에 대한 ACID 트랜잭션을 지원하며, 이러한 이유로 Fabric 레이크하우스의 기본 스토리지 형식입니다.
Delta Lake는 레이크하우스에서 스트리밍 및 일괄 처리 작업 모두에 대한 안정성, 보안 및 성능을 제공합니다. 내부적으로 데이터를 Parquet 파일 형식으로 저장합니다. 그러나 표준 Parquet 형식보다 향상된 기능과 성능을 제공하는 트랜잭션 로그와 통계도 유지 관리합니다.
Delta Lake 형식은 제네릭 파일 형식에 비해 다음과 같은 이점을 제공합니다.
- ACID 속성, 특히 데이터 손상을 방지하기 위한 내구성을 지원합니다.
- 읽기 쿼리가 빠릅니다.
- 데이터 신선도가 향상됩니다.
- 일괄 처리 및 스트리밍 워크로드를 모두 지원합니다.
- Delta Lake 타임 트래블을 사용하여 데이터 롤백을 지원합니다.
- Delta Lake 테이블 기록을 사용하여 향상된 규정 준수 및 감사
Fabric은 Delta Lake를 사용하여 스토리지 파일 형식을 표준화합니다. 기본적으로 Fabric의 모든 워크로드 엔진은 새 테이블에 데이터를 쓸 때 델타 테이블을 만듭니다. 자세한 내용은 레이크하우스 및 Delta Lake 테이블을 참조하세요.
배포 모델
Fabric에서 medallion 아키텍처를 구현하려면 레이크하우스(각 계층에 대해 하나씩), 데이터 웨어하우스 또는 둘 다의 조합을 사용할 수 있습니다. 사용자는 자신의 선호도와 팀의 전문 지식을 기반으로 하여 결정해야 합니다. Fabric을 사용하면 OneLake에서 데이터의 한 복사본에서 작동하는 다양한 분석 엔진을 사용할 수 있습니다.
고려해야 할 두 가지 패턴은 다음과 같습니다.
- 패턴 1: 각 레이어를 레이크하우스로 만듭니다. 이 경우 비즈니스 사용자는 SQL 분석 엔드포인트를 사용하여 데이터에 액세스합니다.
- 패턴 2: 브론즈와 실버 레이어를 레이크하우스로 만들고 골드 레이어를 데이터 웨어하우스로 만듭니다. 이 경우 비즈니스 사용자는 Data Warehouse 엔드포인트를 사용하여 데이터에 액세스합니다.
단일 패브릭 작업 영역에서 모든 레이크하우스를 만들 수 있지만 각 레이크하우스를 고유한 개별 작업 영역에 만드는 것이 좋습니다. 이 방법은 계층 수준에서 더 많은 제어 및 더 나은 거버넌스를 제공합니다.
브론즈 계층의 경우 데이터를 원래 형식으로 저장하거나 Parquet 또는 Delta Lake를 사용하는 것이 좋습니다. 가능하면 데이터를 원래 형식으로 유지합니다. 원본 데이터가 OneLake, ADLS Gen2(Azure Data Lake Store Gen2), Amazon S3 또는 Google에서 온 경우, 브론즈 레이어에 바로 가기를 만들어 데이터를 복사하지 않습니다.
실버 및 골드 계층의 경우 델타 테이블이 제공하는 추가 기능 및 성능 향상으로 인해 델타 테이블을 사용하는 것이 좋습니다. Fabric은 Delta Lake 형식을 표준화하며, Fabric의 모든 엔진에서는 기본적으로 데이터를 이 형식으로 씁니다. 또한 이러한 엔진은 V 순서 쓰기 시간 최적화를 Parquet 파일 형식에 사용합니다. 이 최적화를 통해 Power BI, SQL, Apache Spark 등과 같은 패브릭 컴퓨팅 엔진에서 빠르게 읽을 수 있습니다. 자세한 내용은 Delta Lake 테이블 최적화 및 V 순서를 참조하세요.
마지막으로, 오늘날 많은 조직에서 데이터 볼륨의 엄청난 증가에 직면하고 있으며, 더 많은 대상에 대한 효율적인 사용과 거버넌스를 용이하게 하면서 논리적 방식으로 해당 데이터를 구성하고 관리해야 하는 필요성이 증가하고 있습니다. 이렇게 하면 거버넌스를 사용하여 분산되거나 페더레이션된 데이터 조직을 설정하고 관리할 수 있습니다. 이 목표를 달성하려면 데이터 메시 아키텍처를 구현하는 것이 좋습니다. 데이터 메시는 데이터를 제품으로 제공하는 데이터 도메인을 만드는 데 집중하는 아키텍처 패턴입니다.
데이터 도메인을 만들면 Fabric에서 데이터 자산에 대한 데이터 메시 아키텍처를 만들 수 있습니다. 마케팅, 영업, 재고, 인사 등과 같은 비즈니스 도메인에 매핑되는 도메인을 만들 수 있습니다. 그런 다음 각 도메인 내에서 데이터 계층을 설정하여 medallion 아키텍처를 구현할 수 있습니다. 도메인에 대한 자세한 내용은 도메인을 참조하세요.
메달리온 아키텍처에 대한 구체화된 레이크 뷰 사용
Microsoft Fabric의 구체화된 레이크 뷰는 레이크하우스에서 medallion 아키텍처를 구현하는 데 도움이 됩니다. 브론즈, 실버 및 골드 계층 간에 데이터를 변환하는 복잡한 파이프라인을 빌드하는 대신 변환을 자동으로 관리하는 구체화된 레이크 뷰를 정의할 수 있습니다.
메달리온 아키텍처에 구체화된 레이크 뷰를 사용할 때의 주요 이점은 다음과 같습니다.
- 선언적 파이프라인: 계층 간에 수동 파이프라인을 빌드하는 대신 SQL 문을 사용하여 데이터 변환을 정의합니다.
- 자동 종속성 관리: 패브릭은 뷰 종속성에 따라 올바른 실행 순서를 자동으로 결정합니다.
- 데이터 품질 규칙: 데이터가 계층을 통과할 때 데이터 품질 제약 조건을 정의하고 적용하기 위한 기본 제공 지원입니다.
- 최적 새로 고침: 시스템은 각 보기에 대해 증분 새로 고침, 전체 새로 고침 또는 새로 고침을 수행하지 않을지를 자동으로 결정합니다.
- 시각화 및 모니터링: 모든 계층에서 계보를 보고 실행 진행률을 추적합니다.
예를 들어 브론즈 테이블에서 데이터를 정리하고 조인하는 실버 레이어 뷰를 만든 다음 보고를 위해 실버 계층 데이터를 집계하는 골드 레이어 뷰를 만들 수 있습니다. 시스템은 새로 고침 오케스트레이션을 자동으로 처리합니다.
자세한 내용은 실체화된 레이크 뷰를 사용한 medallion 아키텍처 구현을 참조하세요.
Delta 테이블 데이터 스토리지 이해
이 섹션에서는 Fabric에서 medallion Lakehouse 아키텍처 구현과 관련된 다른 지침을 설명합니다.
파일 크기
일반적으로 빅 데이터 플랫폼은 작은 파일이 많지 않고 큰 파일이 몇 개 있을 때 더 나은 성능을 발휘합니다. 성능 저하는 컴퓨팅 엔진에 관리할 메타데이터 및 파일 작업이 많을 때 발생합니다. 쿼리 성능을 향상시키려면 약 1GB 크기의 데이터 파일을 지향하는 것이 좋습니다.
medallion 아키텍처의 계층마다 사용할 사용 엔진에 따라 파일 크기에 대한 요구 사항이 다릅니다. 브론즈 계층에서는 Spark를 사용하여 데이터 수정 및 준비에 집중하는 한 데이터의 원시 특성 때문에 더 작은 파일을 가질 수 있습니다. 실버 및 골드 계층에서는 더 큰 파일 크기 및 더 큰 행 그룹에 최적화하여 소비 엔진에 대한 쿼리 성능을 향상시켜야 합니다. 여러 계층의 파일 크기를 최적화하는 방법에 대한 자세한 내용은 워크로드 간 테이블 유지 관리 및 최적화를 참조하세요.
기록 보존
기본적으로 Delta Lake는 모든 변경 내용의 기록을 유지하므로 시간이 지남에 따라 기록 메타데이터의 크기가 증가합니다. 비즈니스 요구 사항에 따라 스토리지 비용을 줄이기 위해 특정 기간 동안만 기록 데이터를 유지합니다. 기록 데이터는 지난 달 또는 기타 적절한 기간 동안만 보존하는 것이 좋습니다.
VACUUM 명령을 사용하여 Delta 테이블에서 이전 기록 데이터를 제거할 수 있습니다. 그러나 기본적으로 지난 7일 이내에는 기록 데이터를 삭제할 수 없습니다. 이 제한은 데이터의 일관성을 유지합니다. table 속성을 delta.deletedFileRetentionDuration = "interval <interval>"사용하여 기본 일 수를 구성합니다. 이 속성은 파일이 진공 작업의 후보로 간주되기 전에 파일을 삭제해야 하는 기간을 결정합니다.
테이블 파티션 및 클러스터링
각 계층에 데이터를 저장할 때는 해당하는 경우 분할된 폴더 구조를 사용하는 것이 좋습니다. 이 기술은 데이터 관리 효율성 및 쿼리 성능을 향상시킵니다. 일반적으로 폴더 구조의 분할된 데이터는 파티션 정리/제거로 인해 특정 데이터 항목을 더 빠르게 검색합니다. 브론즈 계층에서 고빈도 데이터 수집 시 분할은 일반적으로 여러 데이터 수집 도구와 연계되므로 좋은 전략입니다. 그러나 Silver 및 Gold 계층의 경우 분할 대신 Liquid Clustering을 사용하여 쿼리 성능을 최적화하는 것이 좋습니다. 여러 계층에 대한 최적화에 대한 자세한 내용은 워크로드 간 테이블 유지 관리 및 최적화를 참조하세요.
일반적으로 새 데이터가 도착하면 해당 데이터를 대상 테이블에 추가합니다. 그러나 기존 데이터를 동시에 업데이트해야 하므로 경우에 따라 데이터를 병합할 수도 있습니다. 이 경우 MERGE 명령을 사용하여 upsert 작업을 수행할 수 있습니다. 대상 테이블이 분할되면 파티션 필터를 사용하여 작업 속도를 높여야 합니다. 이렇게 하면 엔진에서 업데이트할 필요가 없는 파티션을 제거할 수 있습니다.
데이터 액세스
Lakehouse에서 특정 데이터에 액세스해야 하는 사용자를 계획하고 제어해야 합니다. 또한 각 계층에 대해 이 데이터에 액세스하는 동안 사용할 다양한 트랜잭션 패턴을 이해해야 합니다.
팁
각 medallion 계층에는 서로 다른 최적화 요구 사항이 있습니다. V-Order 및 최적의 파일 크기를 사용하도록 설정하는 경우를 포함하여 브론즈, 실버 및 골드 계층에 대한 테이블 유지 관리 전략에 대한 포괄적인 지침은 워크로드 간 테이블 유지 관리 및 최적화를 참조하세요.
관련 콘텐츠
Medallion Lakehouse 아키텍처 구현에 대한 자세한 내용은 다음 리소스를 참조하세요.