다음을 통해 공유


Microsoft Fabric에서 medallion 레이크하우스 아키텍처 구현

이 문서에서는 medallion 레이크 아키텍처를 소개하고 Microsoft Fabric에서 레이크하우스를 구현하는 방법을 설명합니다. 여러 대상 그룹을 대상으로 합니다.

  • 데이터 엔지니어: 조직에서 대량의 데이터를 수집, 저장, 처리 및 분석할 수 있도록 하는 인프라와 시스템을 설계, 구축 및 유지 관리하는 기술 직원입니다.
  • Center of Excellence, IT 및 BI 팀: 조직 전체에서 분석을 감독하는 팀입니다.
  • 패브릭 관리자: 조직에서 패브릭 감독을 담당하는 관리자입니다.

일반적으로 medallion 아키텍처라고 하는 medallion 레이크하우스 아키텍처는 레이크하우스에서 데이터를 논리적으로 구성하기 위해 조직에서 사용하는 디자인 패턴입니다. Fabric에 권장되는 디자인 방법입니다.

medallion 아키텍처는 세 개의 개별 레이어 또는 영역으로 구성됩니다. 각 레이어는 레이크하우스에 저장된 데이터의 품질을 나타내며, 수준이 높을수록 더 높은 품질을 나타냅니다. 이 다중 레이어 접근 방식은 엔터프라이즈 데이터 제품에 대한 단일 정보 원본을 구축하는 데 도움이 됩니다.

중요한 점은 medallion 아키텍처는 데이터가 레이어를 통해 진행됨에 따라 ACID(원자성, 일관성, 격리, 내구성) 속성 집합을 보장한다는 것입니다. 원시 데이터에서 시작하여 일련의 유효성 검사 및 변환은 효율적인 분석에 최적화된 데이터를 준비합니다. 브론즈(원시), 실버(유효성 검사됨), 골드(보강됨)의 세 가지 medallion 스테이지가 있습니다.

자세한 내용은 medallion 레이크하우스 아키텍처란?을 참조하세요.

Fabric의 OneLake 및 레이크하우스

최신 Data Warehouse의 기반은 데이터 레이크입니다. Microsoft OneLake는 는 전체 조직을 위한 논리적 단일 통합 데이터 레이크입니다. 모든 Fabric 테넌트에 자동으로 프로비전되며, 모든 분석 데이터를 위한 단일 위치가 되도록 설계되었습니다.

OneLake는 다음을 위해 사용할 수 있습니다.

  • 사일로를 제거하고 관리 활동을 줄입니다. 모든 조직 데이터는 하나의 데이터 레이크 리소스 내에서 저장, 관리 및 보호됩니다. OneLake는 Fabric 테넌트에서 프로비전되므로 프로비전하거나 관리하기 위한 추가 리소스가 필요하지 않습니다.
  • 데이터 이동 및 중복을 줄입니다. OneLake는 하나의 데이터 복사본만 저장하기 위한 것입니다. 데이터 복사본이 적을수록 데이터 이동 프로세스가 줄어들어 효율성이 향상되고 복잡성이 감소합니다. 필요한 경우 OneLake에 복사하는 대신 다른 위치에 저장된 데이터를 참조하는 바로 가기를 만들 수 있습니다.
  • 여러 분석 엔진에서 사용합니다. OneLake의 데이터는 개방형 형식으로 저장됩니다. 이렇게 하면 Analysis Services(Power BI에서 사용), T-SQL 및 Apache Spark를 포함한 다양한 분석 엔진에서 데이터를 쿼리할 수 있습니다. 다른 비 Fabric 애플리케이션도 API와 SDK를 사용하여 OneLake에 액세스할 수 있습니다.

자세한 내용은 OneLake, 데이터용 OneDrive를 참조하세요.

데이터를 OneLake에 저장하려면 레이크하우스를 Fabric에 만듭니다. 레이크하우스는 단일 위치에서 정형 및 비정형 데이터를 저장, 관리 및 분석하기 위한 데이터 아키텍처 플랫폼입니다. 모든 파일 형식과 크기의 큰 데이터 볼륨으로 쉽게 확장할 수 있으며, 단일 위치에 저장되므로 조직 전체에서 쉽게 공유하고 다시 사용할 수 있습니다.

각 레이크하우스에는 데이터를 이동할 필요 없이 Data Warehouse 기능을 잠금 해제하는 기본 제공 SQL 분석 엔드포인트가 있습니다. 즉, 특별한 설정 없이 SQL 쿼리를 사용하여 레이크하우스에서 데이터를 쿼리할 수 있습니다.

레이크하우스에 대한 자세한 내용은 Microsoft Fabric의 레이크하우스란?을 참조하세요.

Tables 및 Files

Fabric에서 레이크하우스를 만들면 테이블 및 파일에 대한 두 개의 실제 스토리지 위치가 자동으로 프로비전됩니다.

  • Tables는 Apache Spark(CSV, Parquet 또는 Delta)에서 모든 형식의 테이블을 호스트하기 위한 관리되는 영역입니다. 자동으로 만들어지든 명시적으로 만들어지든 모든 테이블은 레이크하우스에서 테이블로 인식됩니다. 또한 파일 기반 트랜잭션 로그가 있는 Parquet 데이터 파일인 Delta 테이블도 테이블로 인식됩니다.
  • Files는 모든 파일 형식의 데이터를 저장하기 위한 관리되지 않는 영역입니다. 이 영역에 저장된 Delta 파일은 테이블로 자동으로 인식되지 않습니다. 테이블을 관리되지 않는 영역의 Delta Lake 폴더에 만들려면 Apache Spark의 Delta Lake 파일이 포함된 관리되지 않는 폴더를 가리키는 위치가 있는 바로 가기 또는 외부 테이블을 명시적으로 만들어야 합니다.

관리되는 영역(Tables)과 관리되지 않는 영역(Files) 간의 주요 차이점은 자동 테이블 검색 및 등록 프로세스입니다. 이 프로세스는 관리되는 영역에만 만든 폴더에 대해 실행되지만 관리되지 않는 영역에서는 실행되지 않습니다.

Microsoft Fabric에서 레이크하우스 탐색기는 사용자가 데이터를 탐색, 액세스 및 업데이트할 수 있도록 전체 레이크하우스에 대한 통합 그래픽 표현을 제공합니다.

자동 테이블 검색에 대한 자세한 내용은 자동 테이블 검색 및 등록을 참조하세요.

Delta Lake 스토리지

Delta Lake는 데이터와 테이블을 저장하기 위한 기반을 제공하는 최적화된 스토리지 레이어입니다. 빅 데이터 워크로드에 대한 ACID 트랜잭션을 지원하며, 이러한 이유로 Fabric 레이크하우스의 기본 스토리지 형식입니다.

중요한 점은 Delta Lake가 스트리밍 및 일괄 처리 작업 모두에 대해 레이크하우스에서 안정성, 보안 및 성능을 제공한다는 것입니다. 내부적으로 데이터를 Parquet 파일 형식으로 저장합니다. 그러나 표준 Parquet 형식보다 향상된 기능과 성능을 제공하는 트랜잭션 로그와 통계도 유지 관리합니다.

제네릭 파일 형식에 비해 Delta Lake 형식은 다음과 같은 주요 이점을 제공합니다.

  • ACID 속성, 특히 데이터 손상을 방지하기 위한 내구성을 지원합니다.
  • 읽기 쿼리가 빠릅니다.
  • 데이터 신선도가 향상됩니다.
  • 일괄 처리 및 스트리밍 워크로드를 모두 지원합니다.
  • Delta Lake 시간 이동을 사용하여 데이터 롤백을 지원합니다.
  • Delta Lake 테이블 기록을 사용하여 규정 준수 및 감사가 강화됩니다.

Fabric은 Delta Lake를 사용하여 스토리지 파일 형식을 표준화하며, 기본적으로 Fabric의 모든 워크로드 엔진은 데이터를 새 테이블에 쓸 때 Delta 테이블을 만듭니다. 자세한 내용은 레이크하우스 및 Delta Lake 테이블을 참조하세요.

Fabric의 medallion 아키텍처

medallion 아키텍처는 각 단계를 진행하면서 데이터의 구조와 품질을 점진적인 증분 방식으로 향상시키는 것입니다.

medallion 아키텍처는 세 개의 개별 레이어(또는 영역)로 구성됩니다.

  • 브론즈: 원시 영역이라고도 하는 이 첫 번째 레이어는 원본 데이터를 원래 형식으로 저장합니다. 이 레이어의 데이터는 일반적으로 추가 전용이며 변경할 수 없습니다.
  • 실버: 보강된 영역이라고도 하는 이 레이어는 브론즈 레이어에서 공급된 데이터를 저장합니다. 원시 데이터가 정리되고 표준화되어 있으며 이제 테이블(행 및 열)로 구성됩니다. 또한 고객, 제품 등과 같은 모든 비즈니스 엔터티에 대한 엔터프라이즈 보기를 제공하기 위해 다른 데이터와 통합될 수도 있습니다.
  • 골드: 큐레이팅된 영역이라고도 하는 이 최종 레이어는 실버 레이어에서 공급된 데이터를 저장합니다. 데이터가 특정 다운스트림 비즈니스 및 분석 요구 사항을 충족하도록 구체화됩니다. 테이블은 일반적으로 성능 및 유용성에 최적화된 데이터 모델 개발을 지원하는 별모양 스키마 디자인을 따릅니다.

Important

Fabric 레이크하우스는 단일 영역을 나타내므로 세 영역 각각에 대해 레이크하우스를 하나씩 만듭니다.

데이터 원본을 보여주고, 세 개의 레이어로 준비하고 변환하고, SQL 및 Power BI를 사용하여 분석하는 OneLake medallion 아키텍처의 다이어그램

Fabric의 일반적인 medallion 아키텍처 구현에서 브론즈 영역은 데이터를 데이터 원본과 동일한 형식으로 저장합니다. 데이터 원본이 관계형 데이터베이스인 경우 Delta 테이블이 적합합니다. 실버 및 골드 영역에는 Delta 테이블이 포함됩니다.

레이크하우스를 만드는 방법을 알아보려면 레이크하우스 엔드투엔드 시나리오 자습서를 살펴보세요.

Fabric 레이크하우스 지침

이 섹션에서는 medallion 아키텍처를 사용하여 Fabric 레이크하우스 구현과 관련된 지침을 제공합니다.

배포 모델

Fabric에서 medallion 아키텍처를 구현하려면 레이크하우스(영역당 하나씩), Data Warehouse 또는 둘 다의 조합을 사용할 수 있습니다. 사용자는 자신의 선호도와 팀의 전문 지식을 기반으로 하여 결정해야 합니다. Fabric은 유연성을 제공합니다. OneLake에 있는 하나의 데이터 복사본에서 작동하는 다양한 분석 엔진을 사용할 수 있습니다.

고려해야 하는 두 가지 패턴은 다음과 같습니다.

  • 패턴 1: 각 영역을 레이크하우스로 만듭니다. 이 경우 비즈니스 사용자는 SQL 분석 엔드포인트를 사용하여 데이터에 액세스합니다.
  • 패턴 2: 브론즈 및 실버 영역을 레이크하우스로 만들고, 골드 영역을 Data Warehouse로 만듭니다. 이 경우 비즈니스 사용자는 Data Warehouse 엔드포인트를 사용하여 데이터에 액세스합니다.

모든 레이크하우스를 단일 Fabric 작업 영역에 만들 수 있지만, 각 레이크하우스는 사용자 고유의 개별 Fabric 작업 영역에 만드는 것이 좋습니다. 이 방법은 영역 수준에서 더 많은 제어와 더 나은 거버넌스를 제공합니다.

브론즈 영역의 경우 데이터를 원래 형식으로 저장하거나 Parquet 또는 Delta Lake를 사용하는 것이 좋습니다. 가능하면 데이터를 원래 형식으로 유지합니다. 원본 데이터가 OneLake, ADLS Gen2(Azure Data Lake Store Gen2), Amazon S3 또는 Google에서 제공되는 경우 데이터를 복사하는 대신 바로 가기를 브론즈 영역에 만듭니다.

실버 및 골드 영역의 경우 Delta 테이블에서 추가 기능과 향상된 성능을 제공하므로 Delta 테이블을 사용하는 것이 좋습니다. Fabric은 Delta Lake 형식을 표준화하며, Fabric의 모든 엔진에서는 기본적으로 데이터를 이 형식으로 씁니다. 또한 이러한 엔진은 V 순서 쓰기 시간 최적화를 Parquet 파일 형식에 사용합니다. 이러한 최적화를 사용하면 Power BI, SQL, Apache Spark 등과 같은 Fabric 컴퓨팅 엔진에서 매우 빠르게 읽을 수 있습니다. 자세한 내용은 Delta Lake 테이블 최적화 및 V 순서를 참조하세요.

마지막으로, 오늘날 많은 조직에서 데이터 볼륨의 엄청난 증가에 직면하고 있으며, 더 많은 대상에 대한 효율적인 사용과 거버넌스를 용이하게 하면서 논리적 방식으로 해당 데이터를 구성하고 관리해야 하는 필요성이 증가하고 있습니다. 이렇게 하면 거버넌스를 사용하여 분산되거나 페더레이션된 데이터 조직을 설정하고 관리할 수 있습니다.

이 목표를 달성하려면 데이터 메시 아키텍처를 구현하는 것이 좋습니다. 데이터 메시는 데이터를 제품으로 제공하는 데이터 도메인을 만드는 데 집중하는 아키텍처 패턴입니다.

데이터 도메인을 만들면 Fabric에서 데이터 자산에 대한 데이터 메시 아키텍처를 만들 수 있습니다. 마케팅, 영업, 재고, 인사 등과 같은 비즈니스 도메인에 매핑되는 도메인을 만들 수 있습니다. 그런 다음, 각 도메인 내에서 데이터 영역을 설정하여 medallion 아키텍처를 구현할 수 있습니다.

도메인에 대한 자세한 내용은 도메인을 참조하세요.

Delta 테이블 데이터 스토리지 이해

이 섹션에서는 Fabric에서 medallion 레이크하우스 아키텍처를 구현하는 것과 관련된 다른 지침 항목에 대해 설명합니다.

파일 크기

일반적으로 빅 데이터 플랫폼은 작은 파일이 많은 경우보다 큰 파일이 적은 경우에 성능이 더 좋습니다. 이는 컴퓨팅 엔진에서 많은 메타데이터 및 파일 작업을 관리해야 할 때 성능 저하가 발생하기 때문입니다. 쿼리 성능을 향상시키려면 약 1GB 크기의 데이터 파일을 지향하는 것이 좋습니다.

Delta Lake에는 예측 최적화라는 기능이 있습니다. 예측 최적화에서는 Delta 테이블에 대한 유지 관리 작업을 수동으로 관리할 필요가 없습니다. 이 기능이 사용하도록 설정되면 Delta Lake에서 자동으로 유지 관리 작업의 이점을 얻을 수 있는 테이블을 식별한 다음, 해당 스토리지를 최적화합니다. 많은 수의 작은 파일을 큰 파일로 투명하게 병합할 수 있으며 데이터의 다른 판독기와 기록기에는 영향을 주지 않습니다. 이 기능은 운영 우수성과 데이터 준비 작업의 일부가 되어야 하지만 Fabric에는 데이터 쓰기 중에 이러한 데이터 파일을 최적화하는 기능도 있습니다. 자세한 내용은 Delta Lake에 대한 예측 최적화를 참조하세요.

기록 보존

기본적으로 Delta Lake는 모든 변경 내용의 기록을 유지 관리합니다. 즉, 기록 메타데이터의 크기가 시간이 지남에 따라 증가합니다. 비즈니스 요구 사항에 따라 특정 기간 동안만 기록 데이터를 유지하여 스토리지 비용을 줄이는 것을 목표로 해야 합니다. 기록 데이터는 지난 달 또는 기타 적절한 기간 동안만 보존하는 것이 좋습니다.

VACUUM 명령을 사용하여 Delta 테이블에서 이전 기록 데이터를 제거할 수 있습니다. 그러나 데이터의 일관성을 유지하기 위해 기본적으로 지난 7일 이내의 기록 데이터는 삭제할 수 없습니다. 기본 일 수는 delta.deletedFileRetentionDuration = "interval <interval>" 테이블 속성으로 제어됩니다. vacuum 작업의 후보로 간주되기 전에 파일을 삭제해야 하는 기간을 결정합니다.

테이블 파티션

데이터를 각 영역에 저장할 때는 해당되는 경우 분할된 폴더 구조를 사용하는 것이 좋습니다. 이 기술은 데이터 관리 효율성과 쿼리 성능을 향상시키는 데 도움이 됩니다. 일반적으로 폴더 구조의 분할된 데이터는 파티션 잘라내기/제거로 인해 특정 데이터 항목을 더 빠르게 검색할 수 있습니다.

일반적으로 새 데이터가 도착하면 해당 데이터를 대상 테이블에 추가합니다. 그러나 기존 데이터를 동시에 업데이트해야 하므로 경우에 따라 데이터를 병합할 수도 있습니다. 이 경우 MERGE 명령을 사용하여 upsert 작업을 수행할 수 있습니다. 대상 테이블이 분할되면 파티션 필터를 사용하여 작업 속도를 높여야 합니다. 이렇게 하면 엔진에서 업데이트할 필요가 없는 파티션을 제거할 수 있습니다.

데이터 액세스

마지막으로, 레이크하우스에서 특정 데이터에 액세스해야 하는 사용자를 계획하고 제어해야 합니다. 또한 이 데이터에 액세스하는 동안 사용할 다양한 트랜잭션 패턴을 이해해야 합니다. 그런 다음, Delta Lake Z 순서 인덱스를 사용하여 올바른 테이블 분할 구성표 및 데이터 배치를 정의할 수 있습니다.

Fabric 레이크하우스를 구현하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.