테이블 수준 저장소를 사용하여 DirectQuery 모델 최적화
DirectQuery는 데이터를 가져오는 한 가지 방법입니다 Power BI Desktop. DirectQuery 방법은 소스 저장소의 데이터에 내부에서 직접 연결하는 것을 포함합니다 Power BI Desktop. 이는 데이터를 가져오는 것에 대한 대안입니다 Power BI Desktop.
DirectQuery 방법을 사용하면 전반적인 사용자 경험은 기본 데이터 소스의 성능에 크게 좌우됩니다. 느린 쿼리 응답 시간은 부정적인 사용자 경험으로 이어지고, 최악의 경우 쿼리가 시간 초과될 수 있습니다. 또한, 한 번에 보고서를 여는 사용자 수는 데이터 소스에 가해지는 부하에 영향을 미칩니다. 예를 들어, 보고서에 시각적 요소가 20개 있고 10명이 보고서를 사용하는 경우, 각 시각적 요소가 하나 이상의 쿼리를 실행하므로 데이터 소스에 200개 이상의 쿼리가 존재하게 됩니다.
안타깝게도 Power BI 모델의 성능은 기본 데이터 소스의 성능뿐만 아니라 다음과 같은 제어할 수 없는 다른 요소의 영향을 받습니다.
네트워크 지연 시간; 네트워크가 빠를수록 데이터를 더 빨리 반환합니다.
데이터 소스 서버의 성능과 해당 서버에서 실행 중인 다른 작업 부하의 수입니다. 예를 들어, 수백 명의 사람들이 서로 다른 이유로 동일한 서버를 사용하고 있을 때 서버가 새로 고침되는 상황을 생각해 보세요.
따라서 DirectQuery를 사용하면 모델 성능의 품질이 저하될 수 있습니다. 이런 상황에서 성능을 최적화하려면 소스 데이터베이스를 제어하거나 액세스할 수 있어야 합니다.
자세한 내용은 DirectQuery 모델 지침을 참조하세요 Power BI Desktop.
DirectQuery 사용의 의미
데이터를 Power BI Desktop로 가져오는 것이 가장 좋은 방법이지만 조직에서는 다음 이유 중 하나로 인해 DirectQuery 데이터 연결 모드를 사용해야 할 수도 있습니다(DirectQuery의 이점):
데이터가 자주 변경되고 실시간에 가까운 보고가 필요한 경우에 적합합니다.
사전 집계가 필요 없이 대용량 데이터를 처리할 수 있습니다.
법적 요구 사항을 준수하기 위해 데이터 주권 제한을 적용합니다.
SAP Business Warehouse (BW)와 같은 측정값을 포함하는 다차원 데이터 소스와 함께 사용할 수 있습니다.
조직에서 DirectQuery를 사용해야 하는 경우 DirectQuery의 동작을 명확하게 이해하고 Power BI Desktop 제한 사항을 알고 있어야 합니다. 그러면 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 모델에서도 지원됩니다. 단, 기본 소스가 적절한 수준의 성능을 제공해야 합니다. 하지만 보고서를 서비스 내에 게시하면, 빠른 인사이트 및 Q&A 기능은 지원되지 않습니다. Power BI 또한 Excel의 탐색 기능을 사용하면 성능이 저하될 가능성이 있습니다.
DirectQuery 사용의 제한 사항에 대한 자세한 내용은 DirectQuery 사용의 의미를 참조하세요.
이제 DirectQuery의 작동 방식과 이로 인한 한계에 대해 간략하게 이해했으므로 성능을 개선하기 위한 조치를 취할 수 있습니다.
성능 최적화
Tailwind Traders 시나리오를 계속 진행하면서 의미 모델을 검토하는 동안 쿼리가 DirectQuery를 사용하여 소스 데이터에 연결 Power BI Desktop 를 반환한다는 것을 알게 됩니다. DirectQuery를 이렇게 사용하는 것이 사용자가 보고서 성능 저하를 경험하는 이유입니다. 보고서 페이지를 로드하는 데 시간이 너무 오래 걸리고, 특정 선택을 하면 표가 충분히 빠르게 새로 고쳐지지 않습니다. DirectQuery 모델의 성능을 최적화하기 위한 조치를 취해야 합니다.
기본 소스에 전송되는 쿼리를 검토하여 쿼리 성능이 저하된 이유를 파악해 볼 수 있습니다. 그런 다음 Power BI Desktop 및 기본 데이터 소스를 변경하여 전반적인 성능을 최적화할 수 있습니다.
데이터 최적화 Power BI Desktop
데이터 소스를 최대한 최적화한 후에는 Power BI Desktop 성능 분석기 를 사용하여 추가 조치를 취할 수 있습니다.성능 분석기에서는 쿼리를 분리하여 쿼리 계획의 유효성을 검사할 수 있습니다.
기본 소스로 전송되는 쿼리의 지속 시간을 분석하면 로드하는 데 시간이 오래 걸리는 쿼리를 식별할 수 있습니다. 즉, 병목 현상이 어디에 있는지 파악할 수 있습니다.
DirectQuery 모델을 최적화할 때 특별한 방법을 사용할 필요는 없습니다. 가져온 데이터에 사용한 것과 동일한 최적화 기술을 적용하여 DirectQuery 소스의 데이터를 조정할 수 있습니다. 예를 들어, 보고서 페이지에서 시각적 요소의 수를 줄이거나 시각적 요소에 사용되는 필드 수를 줄일 수 있습니다. 불필요한 열과 행을 제거할 수도 있습니다.
DirectQuery 쿼리를 최적화하는 방법에 대한 자세한 지침은 다음을 참조하세요. DirectQuery 모델 지침 Power BI Desktop 및 DirectQuery를 성공적으로 사용하기 위한 지침.
기본 데이터 소스(연결된 데이터베이스) 최적화
첫 번째 단계는 데이터 소스입니다. 가능한 한 소스 데이터베이스를 조정해야 합니다. 소스 데이터베이스의 성능을 개선하면 DirectQuery도 개선됩니다. Power BI 데이터베이스에서 수행하는 작업이 가장 큰 효과를 낼 것입니다.
대부분의 상황에 적용되는 다음 표준 데이터베이스 관행을 고려해 보세요.
계산 표현식이 소스 쿼리에 포함되므로 복잡한 계산 열을 사용하지 마세요. 표현을 소스로 다시 푸시하는 것이 더 효율적입니다. 왜냐하면 아래로 푸시하는 것을 피하기 때문입니다. 차원 유형 테이블에 서로게이트 키 열을 추가하는 것도 고려할 수 있습니다.
인덱스를 검토하고 현재 인덱싱이 올바른지 확인하세요. 새로운 인덱스를 만들어야 하는 경우 적절한지 확인하세요.
데이터 소스의 지침 문서를 참조하고 성능 권장 사항을 구현하세요.
쿼리 감소 옵션 사용자 지정
Power BI Desktop 쿼리를 적게 보내고, 결과 쿼리를 실행하는 데 시간이 오래 걸리는 경우 특정 상호작용을 비활성화하는 옵션을 제공합니다. 이로 인해 사용자 경험이 저하될 수 있습니다. 이러한 옵션을 적용하면 쿼리가 데이터 소스에 지속적으로 접근하는 것을 방지하여 성능이 향상됩니다.
이 예에서는 기본 설정을 편집하여 사용 가능한 데이터 감소 옵션을 모델에 적용합니다. 파일>옵션 및 설정>옵션을 선택하고 페이지를 아래로 스크롤한 다음 쿼리 감소 옵션을 선택하여 설정에 액세스합니다.
다음과 같은 쿼리 감소 옵션을 사용할 수 있습니다.
전송되는 쿼리 수 감소 - 기본적으로 모든 시각적 요소는 다른 모든 시각적 요소와 상호 작용합니다. 이 확인란을 선택하면 기본 상호 작용이 비활성화됩니다. 그런 다음 상호 작용 편집 기능을 사용하여 어떤 시각적 요소가 서로 상호 작용할지 선택할 수 있습니다.
슬라이서 - 기본적으로 슬라이서 변경 사항을 즉시 적용 옵션이 선택되어 있습니다. 보고서 사용자가 슬라이서 변경 사항을 수동으로 적용하도록 하려면 준비가 되면 변경 사항을 적용하기 위해 각 슬라이서에 버튼 적용을 추가 옵션을 선택합니다.
필터 - 기본적으로 기본 필터 변경 사항을 즉시 적용 옵션이 선택되어 있습니다. 보고서 사용자가 필터 변경 사항을 수동으로 적용하도록 하려면 다음 대체 옵션 중 하나를 선택하세요.
준비가 되면 변경 사항을 적용하려면 모든 기본 필터에 버튼를 추가하세요.
변경 사항을 한 번에 적용하려면 필터 창에 단일 apply 버튼를 추가합니다(프리뷰)