다음을 통해 공유


증분 새로 고침 및 실시간 데이터 문제 해결

증분 새로 고침 및 실시간 데이터 솔루션을 구현하는 경우 첫 번째 단계는 Power BI Desktop에서 매개 변수 구성, 필터링 및 정책 정의, 두 번째는 초기 의미 체계 모델 새로 고침 작업 및 서비스의 후속 새로 고침인 두 단계가 있습니다. 이 문서에서는 이러한 각 단계에 대한 문제 해결을 별도로 설명합니다.

Power BI 서비스에서 테이블을 분할한 후에는 DirectQuery를 사용하여 실시간 데이터를 가져오는 증분 새로 고침 테이블이 이제 하이브리드 모드에서 작동하므로 가져오기 모드와 DirectQuery 모드 모두에서 작동한다는 점을 명심해야 합니다. 이러한 증분 새로 고침 하이브리드 테이블과 관계가 있는 모든 테이블은 성능 저하 없이 가져오기 및 DirectQuery 모드에서 사용할 수 있도록 이중 모드를 사용해야 합니다. 또한 보고서의 시각적 요소는 결과를 캐시하여 쿼리를 데이터 원본으로 다시 보내는 것을 방지할 수 있으므로 테이블이 실시간으로 최신 데이터 업데이트를 반영하지 못할 수 있습니다. 마지막 문제 해결 섹션에서는 이러한 하이브리드 모드 문제를 다룹니다.

증분 새로 고침 및 실시간 데이터 문제를 해결하기 전에 모델 및 실시간 데이터에 대한 증분 새로 고침증분 새로 고침 및 실시간 데이터 구성의 단계별 정보를 검토해야 합니다.

Power BI Desktop에서 구성

증분 새로 고침 및 실시간 데이터를 구성할 때 발생하는 대부분의 문제는 쿼리 폴딩과 관련이 있습니다. 모델 개요 - 지원되는 데이터 원본에 대한 증분 새로 고침에 설명된 대로 데이터 원본은 쿼리 폴딩을 지원해야 합니다.

문제: 데이터 로드 시간이 너무 오래 걸립니다.

파워 쿼리 편집기에서 적용을 선택한 후 데이터를 로드하는 데 과도한 시간과 컴퓨터 리소스가 소요됩니다. 몇 가지 잠재적인 원인이 있습니다.

원인: 데이터 형식 불일치

이 문제는 RangeStartRangeEnd 매개 변수에 대해 요구되는 데이터 유형으로 Date/Time를 사용해야 하지만 필터가 적용되는 테이블의 날짜 열은 Date/Time 데이터 유형이 아니거나 그 반대의 경우도 마찬가지입니다. 매개 변수 데이터 형식과 필터링된 데이터 열은 모두 데이터 형식이어야 Date/Time 하며 형식은 동일해야 합니다. 그렇지 않은 경우 쿼리를 접을 수 없습니다.

해결 방법: 데이터 형식 확인

증분 새로 고침 테이블의 날짜/시간 열이 데이터 형식인지 Date/Time 확인합니다. 테이블에 데이터 형식의 열이 포함되지 않고 대신 정수 데이터 형식을 사용하는 경우 데이터 원본 테이블의 Date/Time 정수 서로게이트 키와 일치하도록 매개 변수의 RangeStart 날짜/시간 값을 RangeEnd 변환하는 함수를 만들 수 있습니다. 자세한 내용은 증분 새로 고침 구성 - DateTime을 정수로 변환을 참조하세요.

원인: 데이터 원본이 쿼리 폴딩을 지원하지 않음

모델의 증분 새로 고침 및 실시간 데이터에 설명된 대로 요구 사항, 증분 새로 고침은 쿼리 폴딩을 지원하는 데이터 원본을 위해 설계되었습니다. 서비스에 게시하기 전에 Power BI Desktop에서 데이터 원본 쿼리가 접히는지 확인합니다. 여기서 쿼리 접기 문제는 상당히 복잡해질 수 있습니다. 이 방법은 실시간 DirectQuery 파티션에 쿼리 폴딩이 필요하기 때문에 증분 새로 고침 정책에 실시간 데이터를 포함할 때 특히 중요합니다.

해결 방법: 쿼리 확인 및 테스트

대부분의 경우 데이터 원본에 대해 실행할 쿼리가 쿼리 폴딩을 지원하지 않는지 여부를 나타내는 증분 새로 고침 정책 대화 상자에 경고가 표시됩니다. 그러나 경우에 따라 쿼리 폴딩이 가능한지 추가로 확인해야 할 수도 있습니다. 가능하면 SQL Profiler와 같은 도구를 사용하여 데이터 원본에 전달되는 쿼리를 모니터링합니다. RangeStartRangeEnd을 기반으로 한 필터가 포함된 쿼리는 단일 쿼리로 실행되어야 합니다.

또한 몇 천 개 이하의 행을 포함하는 짧은 날짜/기간 RangeStartRangeEnd 매개 변수를 지정할 수 있습니다. 데이터 원본에서 모델로 필터링된 데이터를 로드하는 데 시간이 오래 걸리고 프로세스 집약적인 경우 쿼리가 폴딩되지 않을 수 있습니다.

쿼리가 폴딩되지 않는 것으로 확인되면 Power BI Desktop파워 쿼리 쿼리 폴딩 의 쿼리 접기 지침을 참조하여 쿼리 폴딩을 방해할 수 있는 항목과 데이터 원본에서 쿼리 폴딩을 지원할 수 있는 방법 또는 방법을 식별하는 데 도움이 됩니다.

서비스의 의미 체계 모델 새로 고침

서비스의 증분 새로 고침 문제 해결은 모델이 게시된 용량 유형에 따라 다릅니다. 프리미엄 용량의 의미 체계 모델은 SSMS(SQL Server Management Studio)와 같은 도구를 사용하여 개별 파티션을 보고 선택적으로 새로 고칠 수 있도록 지원합니다. 반면 Power BI Pro 모델은 XMLA 엔드포인트를 통해 도구 액세스를 제공하지 않으므로 증분 새로 고침 문제를 해결하려면 좀 더 많은 시행 착오가 필요할 수 있습니다.

문제: 초기 새로 고침 시간이 초과되었습니다.

공유 용량의 Power BI Pro 모델에 대한 예약된 새로 고침에는 2시간의 시간 제한이 있습니다. 프리미엄 용량의 모델의 경우 이 시간 제한이 5시간으로 증가합니다. 데이터 원본 시스템은 쿼리 반환 크기 제한 또는 쿼리 시간 제한을 적용할 수도 있습니다.

원인: 데이터 원본 쿼리가 폴딩되지 않음

쿼리 폴딩 문제는 일반적으로 서비스에 게시하기 전에 Power BI Desktop에서 확인할 수 있지만 모델 새로 고침 쿼리가 접히지 않아 과도한 새로 고침 시간과 쿼리 매시업 엔진 리소스 사용률이 발생할 수 있습니다. 이 상황은 모델의 모든 파티션에 대해 쿼리가 생성되므로 발생합니다. 쿼리가 폴딩되지 않고 데이터 원본에서 데이터가 필터링되지 않는 경우 엔진은 데이터 필터링을 시도합니다.

해결 방법: 쿼리 폴딩 확인

데이터 원본에서 추적 도구를 사용하여 각 파티션에 대해 전달되는 쿼리가 RangeStart 및 RangeEnd 매개 변수를 기반으로 하는 필터를 포함하는 단일 쿼리인지 확인합니다. 그렇지 않은 경우 필터링된 적은 양의 데이터를 모델에 로드할 때 Power BI Desktop 모델에서 쿼리 폴딩이 발생하는지 확인합니다. 그렇지 않은 경우 먼저 모델에서 수정하거나, XMLA 엔드포인트를 사용하여 모델에 대한 메타데이터 업데이트만 수행하거나, 공유 용량에서 Power BI Pro 모델이 있는 경우 서비스에서 불완전한 모델을 삭제하고, 다시 게시하고, 초기 새로 고침 작업을 다시 시도합니다.

쿼리가 폴딩되지 않음을 확인한 경우 Power BI Desktop의 쿼리 폴딩 지침Power Query의 쿼리 폴딩 문서를 참조하여 쿼리 폴딩을 방해하는 요소를 식별하는 데 도움을 받을 수 있습니다.

원인: 파티션에 로드된 데이터가 너무 큽니다.

해결 방법: 모델 크기 줄이기

대부분의 경우 시간 제한은 쿼리하고 모델 파티션에 로드해야 하는 데이터의 양이 용량에 의해 부과된 시간 제한을 초과하여 발생합니다. 모델의 크기 또는 복잡성을 줄이거나 모델을 더 작은 조각으로 나누는 것이 좋습니다.

해결 방법: 대형 모델 스토리지 형식 사용

프리미엄 용량에 게시된 모델의 경우 모델이 1GB 이상 증가하는 경우 서비스에서 첫 번째 새로 고침 작업을 수행하기 전에 큰 모델 스토리지 형식을 사용하도록 설정하여 모델이 새로 고침 작업 성능을 향상시키고 크기 제한을 초과하지 않도록 할 수 있습니다. 더 자세히 알아보려면 Power BI Premium에서의 대형 모델을 참조하세요.

해결 방법: 부트스트랩 초기 새로 고침

프리미엄 용량에 게시된 모델의 경우 초기 새로 고침 작업을 부트스트랩할 수 있습니다. 부트스트래핑을 사용하면 서비스에서 모델에 대한 테이블 및 파티션 개체를 만들 수 있지만 기록 데이터를 파티션으로 로드하고 처리하지는 않습니다. 자세히 알아보려면 고급 증분 새로 고침 - 초기 전체 새로 고침에서의 시간 초과 방지를 참조하세요.

원인: 데이터 원본 쿼리 시간 제한

쿼리는 데이터 원본에 대한 기본 시간 제한으로 제한될 수 있습니다.

해결 방법: 쿼리 식의 시간 제한 재정의

많은 데이터 원본을 사용하면 쿼리 식에서 시간 제한을 재정의할 수 있습니다. 자세한 내용은 모델에 대한 증분 새로 고침 - 시간 제한을 참조하십시오.

문제: 중복 값으로 인해 새로 고침 실패

원인: 게시 날짜가 변경되었습니다.

새로 고침 작업을 사용하면 데이터 원본에서 변경된 데이터만 모델에서 새로 고쳐집니다. 데이터가 날짜로 나뉘기 때문에 게시(트랜잭션) 날짜는 변경되지 않는 것이 좋습니다.

실수로 날짜가 변경된 경우 두 가지 문제가 발생할 수 있습니다. 사용자가 기록 데이터에서 일부 합계가 변경되었음을 확인하거나 새로 고치는 동안 고유한 값이 실제로 고유하지 않음을 나타내는 오류가 반환됩니다. 후자의 경우, 증분 새로 고침이 구성된 테이블이 다른 테이블과 1:N 측의 관계로 사용될 때, 1에는 고유한 값이 있어야 합니다. 이런 상황에서 문제가 발생할 수 있습니다. 특정 ID에 대한 데이터가 변경되면 해당 ID가 다른 파티션에 표시되고 엔진에서 값이 고유하지 않음을 감지합니다.

해결 방법: 특정 파티션 새로 고침

특정 날짜의 일부 과거 데이터를 변경해야 할 비즈니스 요구가 있을 때, 가능한 해결 방법으로는 SSMS를 사용하여 변경된 지점부터 현재 새로 고침 파티션까지 모든 파티션을 새로 고침으로써, 관계의 1 부분을 고유하게 유지할 수 있습니다.

문제: 데이터가 잘립니다.

원인: 데이터 원본 쿼리 제한이 초과되었습니다.

Azure Data Explorer, Log Analytics 및 Application Insights와 같은 일부 데이터 원본은 외부 쿼리에 대해 반환될 수 있는 데이터에 대해 64MB(압축)로 제한됩니다. Azure Data Explorer는 명시적인 오류를 반환할 수 있지만, Log Analytics 및 Application Insights와 같은 서비스에서는 반환된 데이터가 잘립니다.

해결 방법: 더 작은 새로 고침 및 저장 기간 지정

더 작은 새로 고침을 지정하고 정책에 기간을 저장합니다. 예를 들어 새로 고침 기간을 1년으로 지정하고 쿼리 오류가 반환되거나 반환된 데이터가 잘린 경우 12 개월의 새로 고침 기간을 시도합니다. 현재 새로 고침 파티션에 대한 쿼리 또는 새로 고침 및 저장소 기간을 기반으로 하는 기록 파티션에 대한 쿼리가 64MB 이상의 데이터를 반환하지 않도록 해야 합니다.

문제: 파티션 키 충돌로 인해 새로 고침 실패

원인: 데이터 원본의 날짜 열에 있는 날짜가 업데이트됨

날짜 열의 필터는 Power BI 서비스의 기간 범위로 데이터를 동적으로 분할하는 데 사용됩니다. 증분 새로 고침은 원본 시스템에서 필터링된 날짜 열이 업데이트되는 경우를 지원하도록 설계되지 않았습니다. 업데이트는 실제 업데이트가 아닌 삽입 및 삭제로 해석됩니다. 삭제가 증분 범위가 아닌 기록 범위에서 발생하는 경우 선택되지 않으므로 파티션 키 충돌로 인해 데이터 새로 고침 오류가 발생할 수 있습니다.

서비스의 하이브리드 모드

Power BI는 실시간 데이터를 사용하여 증분 새로 고침 정책을 적용하면 증분 새로 고침 테이블을 가져오기 및 DirectQuery 모드 모두에서 작동하는 하이브리드 테이블로 바꿉니다. 샘플 테이블의 다음 파티션 목록 끝에 DirectQuery 파티션이 표시됩니다. DirectQuery 파티션의 존재는 이 테이블을 쿼리하는 관련 테이블 및 보고서 시각적 개체에 영향을 줍니다.

하이브리드 테이블의 스크린샷.

문제: 쿼리 성능 저하

가져오기 및 DirectQuery 모드에서 작동하는 하이브리드 테이블은 Power BI 모델에 제출된 쿼리의 컨텍스트에 따라 캐시되거나 캐시되지 않은 상태로 작동할 수 있도록 관련 테이블이 이중 모드에서 작동해야 합니다. 이중 모드를 사용하면 Power BI가 모델의 제한된 관계 수를 줄이고 효율적인 데이터 원본 쿼리를 생성하여 성능을 향상할 수 있습니다. 제한된 관계는 Power BI가 필요한 것보다 더 많은 데이터를 검색하도록 요구하는 데이터 원본으로 푸시할 수 없습니다. 이중 테이블은 DirectQuery 또는 가져오기 테이블로 작동할 수 있으므로 이 상황은 방지됩니다.

증분 새로 고침 정책을 구성할 때 Power BI Desktop은 DirectQuery를 사용하여 실시간으로 최신 데이터 가져오기를 선택할 때 관련 테이블을 이중 모드로 전환하라는 알림을 표시합니다(프리미엄 전용). 또한 모델 뷰의 모든 기존 테이블 관계를 검토해야 합니다.

관련 테이블을 이중 모드로 변환하는 스크린샷

현재 DirectQuery 모드에서 작동하는 테이블은 이중 모드로 쉽게 전환됩니다. 테이블 속성의 고급 아래에서 스토리지 모드 목록 상자에서 이중을 선택합니다. 그러나 현재 가져오기 모드에서 작동하는 테이블에는 수동 작업이 필요합니다. 이중 테이블은 DirectQuery 테이블과 동일한 기능 제약 조건을 갖습니다. 따라서 Power BI Desktop은 이중 모드에서 사용할 수 없는 다른 기능을 사용할 수 있으므로 가져오기 테이블을 변환할 수 없습니다. DirectQuery 모드에서 이러한 테이블을 수동으로 다시 만들고 이중 모드로 변환해야 합니다. 자세한 내용은 Power BI Desktop의 스토리지 모드 관리를 참조하세요.

문제: 보고서 시각적 개체에 최신 데이터가 표시되지 않음

원인: Power BI 캐시 쿼리 결과 성능 향상 및 백 엔드 로드 감소

기본적으로 Power BI는 쿼리 결과를 캐시하므로 DirectQuery를 기반으로 하는 경우에도 보고서 시각적 개체의 쿼리를 신속하게 처리할 수 있습니다. 불필요한 데이터 원본 쿼리를 방지하면 성능이 향상되고 데이터 원본 로드가 감소하지만 원본의 최신 데이터 변경 내용이 결과에 포함되지 않을 수도 있습니다.

해결 방법: 자동 페이지 새로 고침 구성

원본에서 최신 데이터 변경 내용을 계속 가져오려면 Power BI 서비스에서 보고서에 대한 자동 페이지 새로 고침을 구성합니다. 자동 페이지 새로 고침은 5초 또는 10분과 같은 고정 간격으로 수행할 수 있습니다. 특정 간격에 도달하면 해당 페이지의 모든 시각적 개체가 데이터 원본에 업데이트 쿼리를 보내고 그에 따라 업데이트됩니다. 또는 데이터를 변경 사항을 감지하여 페이지의 시각적 요소를 업데이트할 수 있습니다. 이 접근 방식은 Power BI가 데이터 원본에서 변경 사항을 감지하고 불러오기 위해 사용하는, 변경 감지 측정값을 필요로 합니다. 변경 검색은 프리미엄 용량의 일부인 작업 영역에서만 지원됩니다. 자세한 내용은 Power BI에서 자동 페이지 새로 고침을 참조하세요.