적용 대상: Microsoft Fabric의✅ Warehouse
이 문서에서는 성능, 확장성 및 비용 효율성을 높이는 Fabric Data Warehouse 아키텍처의 기능과 혁신을 강조합니다.
패브릭 데이터 웨어하우스는 수렴형 데이터 플랫폼의 미래 대비 아키텍처에서 실행됩니다. 개방형 Delta Storage 형식 및 OneLake 통합을 통해 Fabric Data Warehouse의 데이터를 분석할 준비가 되었습니다.
상위 수준 아키텍처
패브릭 데이터 웨어하우스는 다음 구성 요소를 사용하여 대규모 분석을 위해 특별히 빌드되었습니다.
| 기본 구성 요소 | 설명 |
|---|---|
| 통합 쿼리 최적화 프로그램 | 사용자가 작성한 SQL 쿼리의 품질에 관계없이 분산 클라우드 환경에 대한 최적의 실행 계획을 생성합니다. |
| 분산 쿼리 처리 | 빠른 자동 크기 조정 클라우드 인프라를 사용하여 대규모 병렬 쿼리 실행을 지원하여 쿼리에 필요한 컴퓨팅 리소스를 즉시 제공합니다. 별도의 SELECT 및 DML 워크로드는 효율적이고 격리된 실행을 위해 고유 풀을 사용합니다. |
| 쿼리 실행 엔진 | 빠른 성능과 높은 동시성으로 대량의 데이터에 대한 분석 쿼리를 실행하기 위한 SQL 기반 엔진입니다. |
| 메타데이터 및 트랜잭션 관리 | 메타데이터는 프런트 엔드, 백 엔드 및 로컬 SSD 캐시와 원격 OneLake 스토리지에 모두 상주합니다. 동시 트랜잭션을 지원하고 ACID 규정 준수를 보장합니다. |
| OneLake의 스토리지 | 개방형 Delta 테이블 형식을 사용하여 구현된 로그 구조적 테이블, 안전한 개방형 스토리지가 있는 Lakehouse 모델입니다. |
| 패브릭 플랫폼 | Fabric 플랫폼은 통합 인증 및 보안 모델, 모니터링 및 감사를 제공합니다. 패브릭 데이터 웨어하우스는 Power BI, Data Factory의 데이터 파이프라인, Real-Time 인텔리전스 등을 비롯한 비즈니스 요구 사항을 충족하기 위해 다른 패브릭 플랫폼 서비스에서 자동으로 사용할 수 있습니다. |
통합 쿼리 최적화 프로그램 엔진
Fabric Data Warehouse의 통합 쿼리 최적화 프로그램은 SQL 쿼리를 실행하는 가장 현명한 방법을 결정하는 엔진입니다.
쿼리를 제출할 때 통합 쿼리 최적화 프로그램은 테이블 조인 방법, 데이터 이동 위치 및 CPU, 메모리 및 네트워크와 같은 리소스를 사용하는 방법 등 쿼리를 실행할 수 있는 방법을 살펴봅니다. 통합 쿼리 최적화 프로그램은 첫 번째 옵션만 선택하는 것이 아니라 이러한 요인과 사용 가능한 메타데이터 및 통계를 통해 비용을 평가하여 허용되는 시간 내에 가장 최적의 계획을 선택합니다.
쿼리 실행 계획을 최적화할 때 통합 쿼리 최적화 프로그램은 쿼리의 모양, 테이블의 데이터 분포, 데이터 이동 비용 및 로컬 처리 비용 등 모든 것을 한 번으로 고려합니다. 통합 쿼리 최적화 엔진은 작은 테이블을 브로드캐스트하는 것이 큰 테이블을 셔플링하는 것보다 저렴할지 여부와 같은 스마트한 절충안을 선택할 수 있습니다. 즉, 복잡하거나 잘못 작성된 T-SQL 쿼리에 대해서도 불필요한 데이터 순서 섞기 수가 줄어들고 컴퓨팅을 더 잘 사용하고 성능이 더 빨라집니다.
일관된 성능은 개발자가 수동 T-SQL 쿼리 튜닝에 시간을 할애할 필요가 없습니다. 예를 들어 쿼리에서 최적의 JOIN 순서를 수동으로 결정할 필요는 없습니다. SQL에서 큰 테이블을 먼저 나열하고 더 작은 고도로 선택적인 데이터 테이블 초를 나열하는 경우 최적화 프로그램은 성능을 향상하기 위해 해당 위치를 자동으로 전환할 수 있습니다. 더 작은 테이블을 일치하는 행("빌드" 쪽)의 시작점으로 사용하고 더 큰 테이블을 검색할 테이블로 사용합니다(일치 항목이 확인된 "프로브" 쪽). 이 방법은 메모리 사용량을 최소화하고, 데이터 이동을 줄이고, 병렬 처리를 개선하는 동시에 정확한 결과를 제공합니다.
통합 쿼리 최적화 프로그램은 워크로드가 진화함에 따라 과거 쿼리 실행에서 지속적으로 학습하여 최적화 알고리즘을 구체화하여 최상의 성능을 제공합니다. 사용자는 복잡성에 관계없이 개입할 필요 없이 자동으로 빠른 쿼리 실행을 활용할 수 있습니다.
분산 쿼리 처리 엔진
패브릭 데이터 웨어하우스에서 분산 쿼리 처리 엔진은 쿼리 계획의 작업에 컴퓨팅 리소스를 할당합니다. 분산 쿼리 처리 엔진은 각 노드가 쿼리 계획의 일부를 실행하도록 컴퓨팅 노드 간에 작업을 예약할 수 있으므로 더 빠른 성능을 위해 병렬 실행을 사용할 수 있습니다. 대규모 데이터 세트에 대한 복잡한 보고서는 분산 쿼리 처리의 이점을 활용할 수 있습니다.
리소스를 더욱 최적화하기 위해 분산 쿼리 처리 엔진은 컴퓨팅 리소스를 쿼리 및 데이터 수집 태스크(SELECT쿼리)의 두 풀 NON-SELECT 로 구분합니다. 각 워크로드는 필요에 따라 전용 리소스를 받습니다. 예를 들어 야간 ETL 작업은 아침 대시보드를 지연시키지 않습니다.
클라우드에서 빠른 노드 프로비저닝을 사용하면 분산 쿼리 처리 엔진은 쿼리 볼륨, 데이터 크기 및 쿼리 복잡성의 변화에 따라 컴퓨팅 리소스를 자동으로 확장 또는 축소합니다. Fabric Data Warehouse에는 다중 페타바이트 규모의 작은 데이터 세트 또는 데이터에 대한 병렬 처리 기능이 있습니다.
쿼리 실행 엔진
쿼리 실행 엔진은 개별 컴퓨팅 노드에 할당된 분산 실행 계획의 일부를 실행하는 프로세스입니다. 쿼리 실행 엔진은 최적의 비용으로 빅 데이터에 대한 효율적인 분석을 위해 일괄 처리 모드 실행 및 열 형식 데이터 형식을 사용하기 위해 SQL Server 및 Azure SQL Database에서 사용하는 것과 동일한 엔진을 기반으로 합니다.
쿼리 실행 엔진은 Fabric OneLake에 저장된 Delta Parquet 파일에서 직접 데이터를 읽고 여러 캐싱 계층(메모리 및 SSD)을 활용하여 쿼리 성능을 가속화하고 쿼리가 최적의 속도로 실행되도록 합니다. 쿼리 실행 엔진은 메모리 내 데이터를 처리하고 필요한 경우 SSD 캐시 또는 OneLake 스토리지에서 추가 데이터를 검색합니다.
데이터를 처리할 때 쿼리 실행 엔진은 열 및 행 그룹 제거를 수행하여 쿼리와 관련이 없는 세그먼트를 건너뜁니다. 이 최적화는 파일 및 메모리 캐시에서 검색되는 데이터의 양을 줄여 리소스 사용을 최소화하고 전체 실행 시간을 개선하는 데 도움이 됩니다.
쿼리 실행 엔진은 수십억 개의 행을 필터링하고 집계하는 데 탁월하며 최신 데이터 웨어하우스 솔루션에 사용되는 일반 데이터 분석 패턴을 지원합니다. 일괄 처리 모드 실행은 최신 CPU 기능을 활용하여 여러 행을 병렬로 처리하여 오버헤드를 크게 줄이고 쿼리가 기존 행 단위 실행에 비해 최대 수백 배 더 빠르게 실행되도록 합니다.
메타데이터 및 트랜잭션 관리
웨어하우스 엔진은 메타데이터를 사용하여 테이블 스키마, 파일 조직, 버전 기록 및 트랜잭션 상태를 설명합니다. 이 메타데이터를 사용하면 웨어하우스 엔진이 데이터를 효율적으로 관리하고 쿼리할 수 있습니다. Fabric Data Warehouse는 강력하고 포괄적인 메타데이터 및 트랜잭션 관리 아키텍처를 제공하며 OLTP 트랜잭션 관리자를 확장하여 동시 메타데이터 작업을 오케스트레이션하고 ACID 규정 준수를 보장합니다.
이 설계를 사용하면 트랜잭션 상태를 빠르고 안정적으로 탐색할 수 있으며 일관성을 유지하면서 동시성이 높은 워크로드를 지원합니다.
스토리지 및 데이터 수집
Fabric Data Warehouse는 확장 가능하고 안전한 고성능 스토리지를 위해 오픈 소스 델타 형식의 레이크하우스 아키텍처를 사용합니다. 델타 테이블 형식은 데이터 버전 관리 기능을 지원하므로 안전한 테스트 및 롤백 작업을 위해 시간 이동 및 제로 복사 복제를 통해 기록 스냅샷에 즉시 액세스할 수 있습니다. 사용자 데이터는 OneLake 내에 저장되므로 모든 패브릭 엔진이 중복성 없이 공유 데이터에 효율적으로 액세스할 수 있습니다.
이 기반을 바탕으로 Fabric Data Warehouse는 단순성과 유연성에 중점을 두고 최적의 데이터 수집 성능을 제공하도록 설계되었습니다. 엔진은 자동 데이터 압축을 통해 테이블 데이터 스토리지를 효율적으로 관리하여 백그라운드에서 조각화된 파일을 통합하여 불필요한 데이터 검색을 줄입니다. 지능형 데이터 배포 방법은 데이터를 마이크로 분할된 셀로 나누고 구성하여 병렬 처리를 강화하고 쿼리 결과를 향상시킵니다. 이러한 기능은 수동 조정 없이도 자율적으로 작동합니다.