테이블 수준 스토리지로 DirectQuery 모델 최적화

완료됨

DirectQuery는 Power BI Desktop으로 데이터를 가져오는 한 가지 방법입니다. DirectQuery 메서드에서는 Power BI Desktop 내에서 원본 리포지토리의 데이터에 직접 연결합니다. Power BI Desktop으로 데이터를 가져오는 대신 사용할 수 있습니다.

DirectQuery 옵션을 사용하여 데이터를 가져오는 방법을 보여 주는 스크린샷

DirectQuery 메서드를 사용하는 경우 전반적인 사용자 환경은 기본 데이터 원본의 성능에 크게 좌우됩니다. 쿼리 응답 시간이 느려지는 경우 부정적인 사용자 환경으로 이어지며 최악의 경우 쿼리 시간 초과가 발생할 수도 있습니다. 또한 동시에 보고서를 여는 사용자의 수는 데이터 원본에 가해지는 로드에 영향을 줍니다. 예를 들어 보고서에 시각적 개체가 20개 있고 사용자 10명이 보고서를 사용 중인 경우 각 시각적 개체는 쿼리를 하나 이상 실행하기 때문에 데이터 원본에 쿼리가 200개 이상 존재하게 됩니다.

아쉽게도 Power BI 모델의 성능은 기본 데이터 원본의 성능에 의해 영향을 받을 뿐만 아니라 다음을 비롯하여 제어 불가능한 다른 요소에 의해서도 영향을 받습니다.

  • 네트워크 대기 시간. 네트워크가 빠를수록 데이터가 더 빠르게 반환됩니다.

  • 데이터 원본 서버의 성능 및 이 서버에 있는 다른 워크로드의 수. 예를 들어 수백 명의 사용자가 서로 다른 이유로 동일한 서버를 사용하는 동안 서버 새로 고침이 발생하는 경우의 영향을 생각해 보세요.

따라서 DirectQuery를 사용하면 모델 성능의 품질에 위험을 초래합니다. 이러한 상황에서 성능을 최적화하려면 원본 데이터베이스에 대한 제어 권한이나 액세스 권한이 있어야 합니다.

자세한 내용은 Power BI Desktop의 DirectQuery 모델 지침을 참조하세요.

DirectQuery 사용의 영향

모범 사례는 Power BI Desktop에 데이터를 가져오는 것이지만, 다음과 같은 이유(DirectQuery의 이점) 중 하나로 인해 조직에서 DirectQuery 데이터 연결 모드를 사용해야 할 수도 있습니다.

  • 데이터가 자주 변경되며 근 실시간 보고가 필요한 경우에 적합합니다.

  • 미리 집계할 필요 없이 대량 데이터를 처리할 수 있습니다.

  • 법적 요구 사항을 준수하는 데이터 주권 제한 사항을 적용합니다.

  • SAP BW(Business Warehouse)와 같이 측정값이 포함된 다차원 데이터 원본에 사용할 수 있습니다.

조직에서 DirectQuery를 사용해야 하는 경우 Power BI Desktop 내에서 발생하는 DirectQuery 동작을 명확하게 이해하고 DirectQuery의 제한 사항을 알고 있어야 합니다. 그러면 가능한 한 DirectQuery 모델을 최적화하기 위한 조치를 취하기 좋습니다.

DirectQuery 연결의 동작

DirectQuery를 사용하여 Power BI Desktop의 데이터에 연결하는 경우 이 연결은 다음과 같은 방식으로 작동합니다.

  • Power BI Desktop에서 데이터 가져오기 기능을 처음 사용할 때 원본을 선택합니다. 관계형 원본에 연결하는 경우에는 일련의 테이블을 선택할 수 있으며, 각 테이블은 일련의 데이터를 논리적으로 반환하는 쿼리를 정의합니다. SAP BW와 같은 다차원 원본을 선택하는 경우에는 원본만 선택할 수 있습니다.

  • 데이터를 로드할 때는 Power BI Desktop에 데이터를 가져오지 않고 스키마만 로드됩니다. Power BI Desktop 내에서 시각적 개체를 작성하면 쿼리가 기본 원본으로 전송되어 필수 데이터를 검색합니다. 시각적 개체를 새로 고치는 데 걸리는 시간은 기본 데이터 원본의 성능에 따라 다릅니다.

  • 기본 데이터가 변경되는 경우 캐싱 때문에 이 변경 내용이 Power BI의 기존 시각적 개체에 즉시 반영되지는 않습니다. 새로 고침을 수행해야 이 변경 내용이 확인됩니다. 각 시각적 개체에 대해 필요한 쿼리가 표시되며, 이에 따라 시각적 개체가 업데이트됩니다.

  • Power BI 서비스에 보고서를 게시하면 가져오기의 경우와 동일하게 Power BI 서비스에 의미 체계 모델이 발생합니다. 그러나 해당 의미 체계 모델에는 데이터가 포함되지 않습니다.

  • Power BI 서비스에서 기존 보고서를 열거나 새 보고서를 작성할 때 기본 원본을 다시 쿼리하여 필요한 데이터를 검색합니다. 원래 원본의 위치에 따라 온-프레미스 데이터 게이트웨이를 구성해야 할 수도 있습니다.

  • 시각적 개체 또는 전체 보고서 페이지를 대시보드 타일로 고정할 수 있습니다. 타일은 일정에 따라(예: 매시간) 자동으로 새로 고쳐집니다. 요구 사항에 맞게 이러한 새로 고침의 빈도를 제어할 수 있습니다. 대시보드를 열면 타일은 마지막 새로 고침 시점의 데이터를 반영하며 기본 데이터 원본에 대한 최신 변경 내용을 포함하지 않을 수도 있습니다. 열려 있는 대시보드를 언제든지 새로 고쳐 최신 상태로 유지할 수 있습니다.

DirectQuery 연결의 제한 사항

DirectQuery를 사용하면 부정적인 영향이 있을 수 있습니다. 제한 사항은 사용되는 특정 데이터 원본에 따라 다릅니다. 다음 사항을 고려해야 합니다.

  • 성능 - 앞에서 설명한 대로 전반적인 사용자 환경은 기본 데이터 원본의 성능에 크게 좌우됩니다.

  • 보안 - DirectQuery 모델에서 여러 데이터 원본을 사용하는 경우 데이터가 기본 데이터 원본 간에 이동하는 방식 및 관련 보안 영향을 이해하는 것이 중요합니다. 또한 기본 원본의 데이터에 보안 규칙을 적용할 수 있는지도 식별해야 합니다. Power BI에서 모든 사용자가 이 데이터를 볼 수 있기 때문입니다.

  • 데이터 변환 - 가져온 데이터에 비해 원본 위치가 DirectQuery인 데이터는 Power Query 편집기 내에서 데이터 변환 기술을 적용하는 데 제한이 있습니다. 예를 들어 SAP BW와 같은 OLAP 원본에 연결하는 경우 아무런 변환을 수행할 수 없습니다. 데이터 원본에서 전체 외부 모델을 가져옵니다. 데이터를 변환하려는 경우 기본 데이터 원본에서 이 작업을 수행해야 합니다.

  • 모델링 - 가져온 데이터에 사용하는 모델링 기능 중 일부는 DirectQuery를 사용할 때는 사용할 수 없거나 제한적으로 사용할 수 있습니다.

  • 보고 - 가져온 데이터에 사용하는 거의 모든 보고 기능은 기본 원본이 적절한 수준의 성능을 제공하는 경우 DirectQuery 모델에 대해서도 지원됩니다. 그러나 보고서가 Power BI 서비스에서 게시되면 빠른 인사이트 및 Q&A 기능은 지원되지 않습니다. 또한 Excel의 탐색 기능을 사용하면 성능이 저하될 수 있습니다.

DirectQuery 사용의 제한 사항에 대한 자세한 내용은 DirectQuery 사용의 영향을 참조하세요.

DirectQuery가 작동하는 방식과 이에 따른 제한 사항을 대략적으로 이해했으므로 성능을 향상하기 위한 조치를 취할 수 있습니다.

성능 최적화

앞서 언급한 Tailwind Traders 시나리오에서 의미 체계 모델을 검토하는 동안 쿼리에서 DirectQuery를 사용하여 원본 데이터에 Power BI Desktop을 연결했음을 알게 되었습니다. 이렇게 DirectQuery를 사용하면 사용자가 경험하는 보고서 성능이 저하되는 이유가 됩니다. 보고서의 페이지를 로드하는 데 시간이 너무 오래 걸리고, 특정 항목을 선택했을 때 테이블을 새로 고치는 속도가 떨어지는 편입니다. DirectQuery 모델의 성능을 최적화하는 조치를 취해야 합니다.

기본 원본에 전송되는 쿼리를 검사하여 쿼리 성능이 떨어지는 이유를 식별할 수 있습니다. 그런 다음 Power BI Desktop 및 기본 데이터 원본에서 변경하여 전반적인 성능을 최적화할 수 있습니다.

Power BI Desktop에서 데이터 최적화

데이터 원본을 최대한 많이 최적화했다면 쿼리 계획의 유효성을 검사하기 위해 쿼리를 격리할 수 있는 성능 분석기를 사용하여 Power BI Desktop 내에서 추가 작업을 수행할 수 있습니다.

기본 원본에 쿼리가 전송되는 기간을 분석하여 로드하는 데 시간이 오래 걸리는 쿼리를 식별할 수 있습니다. 즉, 병목 상태가 나타나는 위치를 식별할 수 있습니다.

DirectQuery 모델을 최적화할 때 특별한 접근 방식을 사용할 필요는 없습니다. 가져온 데이터에 사용한 것과 동일한 최적화 기술을 적용하여 DirectQuery 원본의 데이터를 조정할 수 있습니다. 예를 들어 보고서 페이지에서 시각적 개체의 수를 줄이거나 시각적 개체에서 사용되는 필드 수를 줄일 수 있습니다. 불필요한 열과 행을 제거할 수도 있습니다.

DirectQuery 쿼리를 최적화하는 방법에 대한 자세한 지침은 Power BI Desktop의 DirectQuery 모델 지침DirectQuery를 성공적으로 사용하기 위한 지침을 참조하세요.

기본 데이터 원본(연결된 데이터베이스) 최적화

첫 단계는 데이터 원본입니다. 원본 데이터베이스를 가능한 한 많이 조정해야 합니다. 원본 데이터베이스의 성능을 향상하기 위해 수행하는 모든 작업은 Power BI DirectQuery를 향상하기 때문입니다. 데이터베이스에서 수행하는 작업이 가장 적절한 효과를 발휘합니다.

대부분의 상황에 적용되는 다음과 같은 표준 데이터베이스 방법을 따르는 것이 좋습니다.

  • 계산 식이 원본 쿼리에 포함되기 때문에 복잡한 계산 열을 사용하지 않습니다. 푸시다운을 방지하기 때문에 식을 원본에 다시 푸시하는 것이 더 효율적입니다. 또한 차원 유형 테이블에 서로게이트 키 열을 추가하는 것도 고려해야 합니다.

  • 인덱스를 검토하여 현재 인덱싱이 올바른지 확인합니다. 새 인덱스를 만들어야 하는 경우 적절한지 확인합니다.

데이터 원본에 대한 참고 자료 문서를 참조하고 성능 권장 사항을 구현합니다.

쿼리 감소 옵션 사용자 지정

Power BI Desktop에서는 더 적은 쿼리를 전송하는 옵션 및 결과 쿼리를 실행하는 데 시간이 오래 걸리는 경우 사용자 경험을 저하시키는 특정 상호 작용을 비활성화하는 옵션이 제공됩니다. 이러한 옵션을 적용하면 쿼리가 데이터 원본에 지속적으로 적중되지 않으므로 성능이 향상됩니다.

이 예에서는 사용 가능한 데이터 감소 옵션을 모델에 적용하는 기본 설정을 편집합니다. 파일>옵션 및 설정>옵션을 선택하여 설정에 액세스하고 페이지를 아래로 스크롤한 다음, 쿼리 감소 옵션을 선택합니다.

다음과 같은 쿼리 감소 옵션을 사용할 수 있습니다.

  • 보낸 쿼리 수를 다음만큼 감소 - 기본적으로 모든 시각적 개체가 다른 모든 시각적 개체와 상호 작용합니다. 이 확인란을 선택하면 기본 상호 작용이 비활성화됩니다. (선택 사항) 그런 다음 상호 작용 편집 기능을 사용하여 서로 상호 작용할 시각적 개체를 선택할 수 있습니다.

  • 슬라이서 - 기본적으로 슬라이서 변경 내용 즉시 적용 옵션이 선택됩니다. 보고서 사용자가 슬라이서 변경 내용을 수동으로 적용하게 하려면 각 슬라이서에 [적용] 단추를 추가하여 준비가 완료되면 변경 내용을 적용합니다 옵션을 선택합니다.

  • 필터 - 기본적으로 기본 필터 변경 내용을 즉시 적용 옵션이 선택됩니다. 보고서 사용자가 필터 변경 내용을 수동으로 적용하게 하려면 다음 옵션 중 하나를 선택합니다.

    • 준비가 완료되어 변경 내용을 적용하려면 모든 기본 필터에 [적용] 단추를 추가합니다.

    • 변경 내용을 한 번에 적용하려면 필터 창에 단일 [적용] 단추를 추가합니다(미리 보기).

쿼리 감소 설정 액세스