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

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

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

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

Power BI Desktop에서 구성하기

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

문제: 데이터를 로드하는 데 시간이 너무 오래 걸림

Power Query 편집기에서 적용을 선택하면 데이터를 로드하는 데 과도한 시간과 컴퓨터 리소스가 사용됩니다. 가능한 몇 가지 원인은 다음과 같습니다.

원인: 데이터 형식 불일치

이 문제는 데이터 형식 불일치로 인해 발생할 수 있습니다. 이는 Date/TimeRangeStartRangeEnd 매개 변수에 필요한 데이터 형식이지만, 필터가 적용된 테이블 날짜 열은 Date/Time 데이터 형식이 아니거나, 그 반대인 경우입니다. 매개 변수 데이터 형식과 필터링된 데이터 열은 모두 Date/Time 데이터 형식이어야 하며 형식은 동일해야 합니다. 그렇지 않으면 쿼리를 폴딩할 수 없습니다.

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

증분 새로 고침 테이블의 날짜/시간 열이 Date/Time 데이터 형식인지 확인합니다. 테이블에 Date/Time 데이터 형식 열이 포함되어 있지 않고, 대신 정수 데이터 형식을 사용하는 경우에는 데이터 원본 테이블의 정수 서로게이트 키와 일치하도록 RangeStartRangeEnd 매개 변수의 날짜/시간 값을 변환하는 함수를 만들 수 있습니다. 자세히 알아보려면 증분 새로 고침 구성 - 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의 쿼리 폴딩 지침파워 쿼리의 쿼리 폴딩을 참조하여 쿼리 폴딩을 방지할 수 있는 항목을 확인하세요.

원인: 파티션에 로드된 데이터가 너무 큼

솔루션: 모델 크기 줄이기

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

솔루션: 대형 모델 스토리지 형식 사용

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

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

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

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

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

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

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

문제: 중복 값 때문에 새로 고침이 실패함

원인: 게시 날짜가 변경됨

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

날짜가 실수로 변경된 경우에는 두 가지 문제가 발생할 수 있습니다. 즉, 사용자가 기록 데이터에서 일부 합계가 변경된 것을 확인하거나(발생해서는 안 됨), 새로 고침 중에 고유 값이 실제로 고유하지 않음을 나타내는 오류가 반환됩니다. 후자의 경우 구성된 증분 새로 고침으로 테이블이 1 측으로 다른 테이블과의 1:N 관계에 사용되고 고유한 값이 있어야 하는 경우 이러한 상황이 발생할 수 있습니다. 특정 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에서 자동 페이지 새로 고침을 참조하세요.