DirectQuery 모델을 개발할 시기 결정
DirectQuery 모델은 스토리지 모드 속성이 DirectQuery로 설정된 테이블로 구성되며 동일한 원본 그룹에 속합니다.
원본 그룹은 데이터 원본과 관련된 모델 테이블 집합입니다. 다음과 같은 두 가지 형식이 있습니다.
- 가져오기 – 계산 테이블을 포함한 모든 스토리지 모드 가져오기 테이블을 나타냅니다. 모델에는 하나의 가져오기 원본 그룹만 있을 수 있습니다.
- DirectQuery – 특정 데이터 원본과 관련된 모든 DirectQuery 스토리지 모드 테이블을 나타냅니다.
참고
가져오기 모델과 DirectQuery 모델은 단일 소스 그룹으로만 구성됩니다. 둘 이상의 원본 그룹이 있는 경우 모델 프레임워크를 복합 모델이라고 합니다. 복합 모델은 단원 5에 설명되어 있습니다.
DirectQuery 모델 이점
DirectQuery 모델을 개발하는 데는 몇 가지 이점이 있습니다.
크거나 빠르게 변화하는 데이터 원본 모델링
DirectQuery 모델은 원본 데이터가 볼륨 및/또는 속도 특성을 나타내는 경우 훌륭한 프레임워크 선택입니다. DirectQuery 테이블에는 새로 고침이 필요하지 않으므로 데이터 웨어하우스와 같은 대규모 데이터 저장소에 적합합니다. 전체 데이터 웨어하우스를 모델로 가져오는 것은 불가능하고 비효율적입니다. 원본 데이터가 빠르게 변경되고 사용자가 현재 데이터를 확인해야 하는 경우 DirectQuery 모델은 거의 실시간 쿼리 결과를 제공할 수 있습니다.
보고서가 DirectQuery 모델을 쿼리할 때 Power BI는 해당 쿼리를 기본 데이터 원본에 전달합니다.
원본 RLS 적용
DirectQuery는 원본 데이터베이스가 RLS(행 수준 보안)를 적용하는 경우에도 유용합니다. 원본 데이터 베이스는 Power BI 모델에서 RLS 규칙을 복제하는 대신 해당 규칙을 적용할 수 있습니다. 이 방법은 일부 관계형 데이터베이스에서만 작동하며 데이터 세트 데이터 원본에 대한 Single Sign-On 설정이 포함됩니다. 자세한 내용은 DirectQuery를 사용한 Azure SQL Database를 참조하세요.
데이터 주권 제한 사항
조직에 프레미스를 벗어나는 데이터를 제한하는 보안 정책이 있는 경우 데이터를 가져올 수 없습니다. 온-프레미스 데이터 원본에 연결하는 DirectQuery 모델이 적절할 수 있습니다. 온-프레미스 보고를 위해 Power BI Report Server를 설치하는 것도 고려할 수 있습니다.
특수 데이터 세트 만들기
일반적으로 DirectQuery 모드는 관계형 데이터베이스 원본을 지원합니다. Power BI는 분석 쿼리를 데이터 원본에서 이해하는 네이티브 쿼리로 변환해야 하기 때문입니다.
그러나 한 가지 강력한 예외가 있습니다. Power BI 데이터 세트(또는 Azure Analysis Services 모델)에 연결하고 DirectQuery 로컬 모델로 변환할 수 있습니다. 로컬 모델은 다른 모델과 모델의 관계를 설명하는 상대 용어입니다. 이 경우 원래 데이터 세트는 원격 모델이며 새 데이터 세트는 로컬 모델입니다. 이러한 모델은 연결된 것으로, 관련 모델을 설명하는 데 사용되는 용어입니다. 이러한 방식으로 최대 세 개의 모델을 연결할 수 있습니다.
모델을 연결하는 이 기능은 원격 모델을 개인 설정 및/또는 확장할 수 있는 가능성을 지원합니다. 가장 간단한 작업은 테이블이나 열과 같은 개체의 이름을 바꾸거나 로컬 모델에 측정값을 추가하는 것입니다. 계산 열 또는 계산 테이블을 사용하여 모델을 확장하거나 새 가져오기 또는 DirectQuery 테이블을 추가할 수도 있습니다. 그러나 이러한 확장은 새 원본 그룹을 생성합니다. 즉, 모델이 복합 모델이 됩니다. 이 시나리오는 단원 5에 설명되어 있습니다.
자세한 내용은 Power BI 데이터 세트 및 Azure Analysis Services용 DirectQuery 사용을 참조하세요.
DirectQuery 모델 제한 사항
DirectQuery 모델과 관련된 많은 제한 사항이 있습니다. 주요 제한 사항은 다음과 같습니다.
모든 데이터 원본이 지원되는 것은 아닙니다. 일반적으로 주요 관계형 데이터베이스 시스템만 지원됩니다. Power BI 데이터 세트 및 Azure Analysis Services 모델도 지원됩니다.
이러한 쿼리는 원본 시스템에서 이해하는 네이티브 쿼리로 변환되어야 하므로 모든 Power Query(M) 변환은 불가능합니다. 따라서 예를 들어 피벗 또는 피벗 해제 변환을 사용할 수 없습니다.
특히 원본 시스템이 최적화되지 않았거나(인덱스 또는 구체화된 뷰를 사용하여) 분석 워크로드에 대한 리소스가 부족한 경우 분석 쿼리 성능이 느려질 수 있습니다.
분석 쿼리는 원본 시스템 성능에 영향을 미칠 수 있습니다. 이로 인해 OLTP 작업을 비롯한 모든 워크로드에 대한 환경이 느려질 수 있습니다.
DirectQuery 모델 성능 향상
DirectQuery 모델을 개발할 근거가 있는 경우 두 가지 방법으로 몇 가지 제한 사항을 완화할 수 있습니다.
데이터 원본 최적화
원본 데이터베이스를 최적화하여 예상 분석 쿼리 워크로드가 잘 수행되도록 할 수 있습니다. 특히 인덱스 및 구체화된 뷰를 만들고 데이터베이스에 모든 워크로드에 대한 충분한 리소스가 있는지 확인할 수 있습니다.
팁
항상 데이터베이스 소유자와 공동 작업하는 것이 좋습니다. DirectQuery 모델이 데이터베이스에 배치할 수 있는 추가 워크로드를 이해하는 것이 중요합니다.
DirectQuery 사용자 정의 집계 테이블
DirectQuery 모델에 사용자 정의 집계 테이블을 추가할 수 있습니다. 사용자 정의 집계 테이블은 사용자, 계산 및 RLS에서 숨겨진 특수 모델 테이블입니다. 대규모 팩트 테이블에 대해 더 높은 수준의 분석 쿼리를 충족할 때 가장 유용합니다. DirectQuery 스토리지 모드를 사용하도록 집계 테이블을 설정하면 데이터 원본에서 구체화된 뷰를 쿼리할 수 있습니다. 스토리지 가져오기 모드를 사용하거나 자동 집계를 사용하도록 집계 테이블을 설정할 수도 있으며, 이러한 옵션은 단원 4에 설명되어 있습니다.
자세한 내용은 Power BI Desktop의 DirectQuery 모델 지침을 참조하세요.