다음을 통해 공유


Power BI Desktop에서 스토리지 모드 관리

Microsoft Power BI Desktop에서 테이블의 스토리지 모드를 지정할 수 있습니다. 스토리지 모드를 사용하면 Power BI Desktop이 보고서의 메모리 내 테이블 데이터를 캐시하는지 여부를 제어할 수 있습니다. 캐싱은 일시적으로 메모리에 데이터를 저장하는 것을 의미합니다.

스토리지 모드를 설정하면 많은 이점이 있습니다. 모델에서 각 테이블에 대한 스토리지 모드를 개별적으로 설정할 수 있습니다. 이 작업을 통해 다음과 같은 이점을 제공하는 단일 의미 체계 모델을 사용할 수 있습니다.

  • 쿼리 성능: 사용자가 Power BI 보고서의 시각적 개체와 상호 작용할 때 DAX(데이터 분석 표현식) 쿼리가 시맨틱 모델에 제출됩니다. 스토리지 모드를 올바르게 설정하여 데이터를 메모리에 캐시하면 보고서의 쿼리 성능과 대화형 작업이 향상됩니다.

  • 큰 의미 체계 모델: 캐시되지 않은 테이블은 캐싱 목적으로 메모리를 사용하지 않습니다. 메모리에 완전히 캐시하기에는 너무 크거나 비용이 많이 드는 대규모 의미 체계 모델에 대해 대화형 분석을 사용하도록 설정할 수 있습니다. 캐싱할 가치가 있는 테이블과 그렇지 않은 테이블을 선택할 수 있습니다.

  • 데이터 새로 고침 최적화: 캐시되지 않은 테이블을 새로 고칠 필요가 없습니다. 서비스 수준 계약 및 비즈니스 요구 사항을 충족하는 데 필요한 데이터만 캐싱하여 새로 고침 시간을 줄일 수 있습니다.

  • 근 실시간 요구 사항: 거의 실시간 요구 사항이 있는 테이블은 캐시되지 않고 데이터 대기 시간을 줄일 수 있습니다.

  • 쓰기 저장: 쓰기 저장을 사용하면 비즈니스 사용자가 셀 값을 변경하여 what-if 시나리오를 탐색할 수 있습니다. 사용자 지정 애플리케이션은 데이터 원본에 변경 내용을 적용할 수 있습니다. 캐시되지 않은 테이블은 변경 내용을 즉시 표시할 수 있으므로 효과를 즉시 분석할 수 있습니다.

Power BI Desktop의 스토리지 모드 설정은 다음과 같은 세 가지 관련 기능 중 하나입니다.

  • 복합 모델: 보고서에 DirectQuery 연결 또는 가져오기를 비롯한 두 개 이상의 데이터 연결을 조합하여 포함할 수 있습니다. 자세한 내용은 Power BI Desktop복합 모델 사용을 참조하세요.

  • 다대다 관계: 복합 모델을 사용하면 테이블 간에 다대다 관계를 설정할 수 있습니다. 다 대 다 관계에서는 테이블의 고유 값에 대한 요구 사항이 제거됩니다. 또한 관계를 설정하기 위해서만 새 테이블을 도입하는 것과 같은 이전 해결 방법을 제거합니다. 자세한 내용은 다 대 다 관계를 Power BI Desktop에서 참조하세요.

  • 스토리지 모드: 이제 스토리지 모드를 사용하여 백 엔드 데이터 원본에 쿼리가 필요한 시각적 개체를 지정할 수 있습니다. 쿼리가 필요하지 않은 시각적 개체는 DirectQuery를 기반으로 하는 경우에도 가져옵니다. 이 기능은 성능을 향상시키고 백 엔드 부하를 줄이는 데 도움이 됩니다. 이전에는 슬라이서와 같은 간단한 시각적 개체도 백 엔드 원본으로 쿼리를 전송하기 시작했습니다.

스토리지 모드 속성 사용

스토리지 모드 속성은 모델의 각 테이블에 설정할 수 있는 속성이며 Power BI에서 테이블 데이터를 캐시하는 방법을 제어합니다.

Storage 모드 속성을 설정하거나 현재 설정을 보려면 다음을 수행합니다.

  1. 모델 보기에서 속성을 보거나 설정할 테이블을 선택합니다.

  2. 속성 창에서 고급 섹션을 확장하고 드롭다운 스토리지 모드를 확장합니다.

    관계 보기의 스크린샷은 스토리지 모드를 변경하는 옵션 드롭다운을 강조합니다.

Storage 모드 속성을 다음 세 가지 값 중 하나로 설정합니다.

  • 가져오기: 이 설정을 사용하여 가져온 테이블이 캐시됩니다. 가져오기 테이블에서 데이터를 반환하는 Power BI 의미 체계 모델에 제출된 쿼리는 캐시된 데이터에서만 처리할 수 있습니다.

  • DirectQuery: 이 설정이 있는 테이블은 캐시되지 않습니다. Power BI 의미 체계 모델(예: DAX 쿼리)에 제출하고 DirectQuery 테이블에서 데이터를 반환하는 쿼리는 주문형 쿼리를 데이터 원본으로 실행해야만 수행할 수 있습니다. 데이터 원본에 제출하는 쿼리는 해당 데이터 원본에 대한 쿼리 언어(예: SQL)를 사용합니다.

  • 이중: 이 설정이 있는 테이블은 Power BI 의미 체계 모델에 제출된 쿼리의 컨텍스트에 따라 캐시되거나 캐시되지 않는 역할을 할 수 있습니다. 경우에 따라 캐시된 데이터에서 쿼리를 수행합니다. 다른 경우에는 데이터 원본에 대한 주문형 쿼리를 실행하여 쿼리를 수행합니다.

테이블의 스토리지 모드가져오기로 변경하는 것은 되돌릴 수 없는 작업입니다. 이 속성을 설정한 후에는 나중에 DirectQuery 또는 이중으로 변경할 수 없습니다.

메모

Power BI Desktop과 Power BI 서비스 모두에서 이중 스토리지 모드를 사용할 수 있습니다.

DirectQuery 및 이중 테이블에 대한 제약 조건

이중 테이블은 DirectQuery 테이블과 동일한 기능 제약 조건을 갖습니다. 이러한 제약 조건에는 계산 열의 제한된 M 변환 및 제한된 DAX 함수가 포함됩니다. 자세한 내용은 DirectQuery 제한 사항참조하세요.

이중 설정 전파

가져오기 및 DirectQuery를 지원하는 단일 원본에서 모든 테이블이 있는 다음 모델을 고려합니다.

스토리지 모드의 관계 보기 예제 스크린샷

이 모델의 모든 테이블을 처음에 DirectQuery로 설정했다고 가정해 보겠습니다. 그런 다음 저장 모드SurveyResponse 테이블의 가져오기로 변경하면, 다음 경고 창이 표시됩니다.

스토리지 모드를 가져오기로 변경한 결과를 설명하는 경고 창을 보여 주는 스크린샷

차원 테이블(Customer, GeographyDate)을 이중 설정하여 의미 체계 모델의 제한된 관계 수를 줄이고 성능을 향상시킬 수 있습니다. 제한된 관계에는 일반적으로 조인 논리를 원본 시스템으로 푸시할 수 없는 DirectQuery 테이블이 하나 이상 포함됩니다. 이중 테이블은 DirectQuery 또는 가져오기 테이블로 작동할 수 있으므로 이 상황은 방지됩니다.

전파 논리는 많은 테이블을 포함하는 모델에 도움이 되도록 설계되었습니다. 테이블이 50개이고 특정 팩트(트랜잭션) 테이블만 캐시해야 하는 모델이 있다고 가정해 보겠습니다. Power BI Desktop의 논리는 이중설정해야 하는 최소 차원 테이블 집합을 계산하므로 필요하지 않습니다.

전파 논리는 일대다 관계의 한 쪽으로만 트래버스됩니다.

스토리지 모드 사용 예제

다음 스토리지 모드 속성 설정을 적용하는 경우를 상상해 보세요.

테이블 스토리지 모드
영업 DirectQuery
설문 응답 수입
날짜 이중의
고객 이중
지리학 이중의

이러한 스토리지 모드 속성을 설정하면 Sales 테이블에 상당한 데이터 볼륨이 있다고 가정하면 다음과 같은 동작이 발생합니다.

  • Power BI Desktop은 차원 테이블, 날짜, 고객Geography캐시하므로 표시할 슬라이서 값을 검색할 때 초기 보고서의 로드 시간이 빠릅니다.

  • Power BI Desktop은 Sales 테이블을 캐시하지 않습니다. Power BI Desktop은 이 테이블을 캐싱하지 않음으로써 다음 결과를 제공합니다.

    • 데이터 새로 고침 시간이 개선되고 메모리 사용량이 줄어듭니다.
    • Sales 테이블을 기반으로 하는 보고서 쿼리는 DirectQuery 모드에서 실행됩니다. 캐싱 대기 시간이 발생하지 않으므로 이러한 쿼리는 더 오래 걸릴 수 있지만 실시간에 더 가깝습니다.
  • SurveyResponse 테이블을 기반으로 하는 보고서 쿼리는 메모리 내 캐시에서 반환되므로 비교적 빠릅니다.

캐시를 적중하거나 누락한 쿼리

POWER BI Desktop의 진단 포트에 SQL Profiler를 연결하는 경우 다음 이벤트를 기반으로 하는 추적을 수행하여 메모리 내 캐시에 적중하거나 누락된 쿼리를 확인할 수 있습니다.

  • 쿼리 이벤트 \ 쿼리 시작
  • 쿼리 처리\Vertipaq SE 쿼리 시작
  • 쿼리 처리\DirectQuery 시작

Query Begin 이벤트마다 같은 ActivityID를 가진 다른 이벤트를 체크합니다. 예를 들어 DirectQuery Begin 이벤트가 없지만 Vertipaq SE Query Begin 이벤트가 있는 경우 캐시에서 쿼리가 응답됩니다.

이중 테이블을 참조하는 쿼리는 가능한 경우 캐시에서 데이터를 반환합니다. 그렇지 않으면 DirectQuery로 되돌려 갑니다.

다음 쿼리는 이전 테이블에서 계속됩니다. 이중 모드에 있는 날짜 테이블의 열만을 참조합니다. 따라서 쿼리가 캐시에 도달해야 합니다.

날짜 테이블을 참조하는 쿼리 텍스트를 보여 주는 스크린샷

다음 쿼리는 DirectQuery 모드에 있는 Sales 테이블의 열만 참조합니다. 따라서 캐시에 적중해서는 안 .

Sales 테이블을 참조하는 쿼리 텍스트를 보여 주는 스크린샷

다음 쿼리는 두 열을 모두 결합하기 때문에 흥미롭습니다. 이 쿼리는 캐시에 적중되지 않습니다. 처음에는 캐시에서 CalendarYear 값을 검색하고 원본에서 SalesAmount 값을 가져와서 결과를 결합할 것으로 예상할 수 있지만, 이 방법은 SUM/GROUP BY 작업을 원본 시스템에 제출하는 것보다 효율적이지 않습니다. 작업이 원본으로 푸시될 경우, 반환되는 행 수가 훨씬 적어질 가능성이 있습니다.

Date 테이블과 Sales 테이블을 모두 참조하는 쿼리 텍스트를 보여 주는 스크린샷

메모

이 동작은 Power BI Desktop에서 캐시된 테이블과 캐시되지 않은 테이블이 결합될 때 발생하는 다 대 다 관계와는 다릅니다.

캐시를 동기화 상태로 유지해야 합니다.

이전 섹션에 표시된 쿼리는 이중 테이블이 때때로 캐시에 도달하고 때로는 그렇지 않음을 보여 줍니다. 따라서 캐시가 만료된 경우 다른 값을 반환할 수 있습니다. 쿼리 실행은 예를 들어 캐시된 값과 일치하도록 DirectQuery 결과를 필터링하여 데이터 문제를 마스킹하려고 시도하지 않습니다. 데이터 흐름을 아는 것은 사용자의 책임이며 그에 따라 디자인해야 합니다. 필요한 경우 원본에서 이러한 사례를 처리하는 확립된 기술이 있습니다.

이중 스토리지 모드는 성능 최적화입니다. 비즈니스 요구 사항을 충족하는 기능을 손상시키지 않는 방식으로만 사용해야 합니다. 대체 동작의 경우 Power BI Desktop다대다 관계에 설명된 기술을 사용하는 것이 좋습니다.

표 보기

의미 체계 모델의 테이블 중 적어도 하나에서 스토리지 모드가 가져오기 또는 이중으로 설정된 경우, 테이블 보기가 표시됩니다.

테이블 보기 아이콘을 강조 표시하는 스크린샷

테이블 보기에서 이중 테이블과 가져오기 테이블을 선택하면 캐시된 데이터가 표시됩니다. DirectQuery 테이블에는 데이터가 표시되지 않으며 DirectQuery 테이블을 표시할 수 없다는 메시지가 표시됩니다.

고려 사항 및 제한 사항

스토리지 모드의 현재 릴리스 및 복합 모델과의 상관 관계에는 몇 가지 제한 사항이 있습니다.

다음 라이브 연결(다차원) 원본은 복합 모델에서 사용할 수 없습니다.

  • SAP HANA
  • SAP Business Warehouse

DirectQuery를 사용하여 해당 다차원 원본에 연결하는 경우 다른 DirectQuery 원본에 연결하거나 가져온 데이터와 결합할 수 없습니다.

복합 모델을 사용하는 경우에도 DirectQuery를 사용하는 기존 제한 사항이 적용됩니다. 이러한 제한 사항의 대부분은 이제 테이블의 스토리지 모드에 따라 테이블별로 적용됩니다. 예를 들어 가져온 테이블의 계산 열은 다른 테이블을 참조할 수 있지만 DirectQuery 테이블의 계산 열은 동일한 테이블의 열만 참조하도록 제한됩니다. 모델 내의 테이블이 DirectQuery인 경우 모델 전체에 다른 제한 사항이 적용됩니다.

복합 모델 및 DirectQuery에 대한 자세한 내용은 다음 문서를 참조하세요.