증분 새로 고침 및 실시간 데이터 구성
이 문서에서는 의미 체계 모델의 증분 새로 고침 및 실시간 데이터를 구성하는 방법을 설명합니다. 데이터 흐름의 증분 새로 고침을 구성하는 방법에 대한 자세한 내용은 데이터 흐름의 프리미엄 기능 - 증분 새로 고침을 참조하세요.
증분 새로 고침을 구성하려면 RangeStart 및 RangeEnd 매개 변수를 만들고, 필터를 적용하고, 증분 새로 고침 정책을 정의해야 합니다. Power BI 서비스에 게시한 후 모델의 초기 새로 고침 작업을 수행합니다. 초기 새로 고침 작업 및 후속 새로 고침 작업은 정의한 증분 새로 고침 정책을 적용합니다. 이러한 단계를 완료하기 전에 의미 체계 모델의 증분 새로 고침 및 실시간 데이터에 설명된 기능을 완전히 이해해야 합니다.
매개 변수 만들기
이 작업에서는 파워 쿼리 편집기를 사용하여 기본값이 있는 RangeStart 및 RangeEnd 매개 변수를 만듭니다. 기본값은 Power BI Desktop에서 모델로 로드할 데이터를 필터링할 때만 적용됩니다. 입력하는 값에는 데이터 원본에서 적은 양의 최근 데이터만 포함해야 합니다. 서비스에 게시된 경우 증분 새로 고침 정책은 이러한 시간 범위 값을 덮어씁니다. 즉, 정책은 들어오는 데이터의 창을 하나씩 만듭니다.
Power BI Desktop의 홈 리본에서 데이터 변환을 선택하여 파워 쿼리 편집기를 엽니다.
매개 변수 관리 드롭다운을 선택한 다음, 새 매개 변수를 선택합니다.
이름 필드에 RangeStart(대/소문자 구분)를 입력합니다. 형식 필드의 드롭다운에서 날짜/시간을 선택합니다. 현재 값 필드에 시작 날짜 및 시간 값을 입력합니다.
새로 만들기를 선택하여 RangeEnd라는 두 번째 매개 변수를 만듭니다. 형식 필드에서 날짜/시간을 선택한 다음, 현재 값 필드에 종료 날짜 및 시간 값을 입력합니다. 확인을 선택합니다.
RangeStart 및 RangeEnd 매개 변수를 정의했으므로 가 이제 해당 매개 변수를 기반으로 모델에 로드할 데이터를 필터링합니다.
데이터 필터링
참고 항목
이 작업을 계속하기 전에 원본 테이블에 날짜/시간 데이터 형식의 날짜 열이 있는지 확인합니다. 날짜/시간 열은 없지만 yyyymmdd
형식인 정수 서로게이트 키의 날짜 열이 있는 경우 이 문서의 뒷부분에 있는 DateTime을 정수로 변환의 단계에 따라 원본 테이블의 정수 서로게이트 키와 일치하도록 매개 변수의 날짜/시간 값을 변환하는 함수를 만듭니다.
이제 RangeStart 및 RangeEnd 매개 변수에서 조건에 따라 필터를 적용합니다.
파워 쿼리 편집기에서 필터링할 날짜 열을 선택한 다음, 드롭다운 화살표 >날짜 필터>사용자 지정 필터를 선택합니다.
필터 행에서 첫 번째 조건을 지정하려면 이후 또는 이후 또는 같음을 선택하고 매개 변수를 선택한 다음, RangeStart를 선택합니다.
두 번째 조건을 지정하려면 첫 번째 조건에서 이후를 선택했으면 두 번째 조건으로 이전 또는 같음을, 첫 번째 조건에서 이후 또는 같음을 선택했으면 두 번째 조건으로 이전을 선택한 다음, 매개 변수를 선택하고 RangeEnd를 선택합니다.
중요: 쿼리에서 RangeStart와 RangeEnd 둘 다가 아니라 둘 중 하나에만 같음(=)이 있는지 확인하세요. 두 매개 변수 모두에 같음(=)이 있으면 행이 두 파티션에 대한 조건을 충족할 수 있고, 그러면 모델의 데이터가 중복될 수 있습니다. 예를 들어 RangeStart 및 RangeEnd 둘 다와 일치하는 OrderDate가 있는 경우
= Table.SelectRows(#"Changed Type", each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd)
를 지정하면 중복 데이터가 발생할 수 있습니다.확인을 선택하여 닫습니다.
Power Query 편집기의 홈 리본에서 닫기 및 적용을 선택합니다. 그러면 파워 쿼리에서는 RangeStart 및 RangeEnd 매개 변수에 정의된 필터와 정의한 다른 모든 필터를 기준으로 데이터를 로드합니다.
파워 쿼리는 RangeStart 및 RangeEnd 매개 변수 간에 지정된 데이터만 로드합니다. 해당 기간의 데이터양에 따라 테이블이 빠르게 로드됩니다. 로드가 느리고 프로세스를 많이 사용하는 것처럼 보이는 경우 쿼리가 폴딩되지 않았을 수 있습니다.
정책 정의
RangeStart 및 RangeEnd 매개 변수를 정의하고 해당 매개 변수를 기반으로 데이터를 필터링했으면 증분 새로 고침 정책을 정의합니다. 이 정책은 모델이 서비스에 게시되고 수동 또는 예약된 새로 고침 작업이 수행된 후에만 적용됩니다.
테이블 보기에서 데이터 창의 테이블을 마우스 오른쪽 단추로 클릭하고 증분 새로 고침를 선택합니다.
증분 새로 고침 및 실시간 데이터>테이블 선택에서 테이블을 확인하거나 선택합니다. 선택 테이블 목록 상자의 기본값은 테이블 보기에서 선택한 테이블입니다.
필요한 설정을 지정합니다.
Set import and refresh ranges(가져오기 및 새로 고침 범위 설정)>Incrementally refresh this table(이 테이블을 증분 방식으로 새로 고침)에서 슬라이더를 켜기로 이동합니다. 슬라이더를 사용할 수 없으면 테이블의 파워 쿼리 식에 RangeStart 및 RangeEnd 매개 변수를 기반으로 하는 필터가 포함되어 있지 않은 것입니다.
데이터 보관 시작:에서 모델에 포함하려는 기록 보관 기간을 지정합니다. 다른 필터가 적용되지 않으면 이 기간의 날짜가 있는 모든 행이 서비스의 모델에 로드됩니다.
데이터를 증분 방식으로 새로 고침 시작:에서 새로 고침 기간을 지정합니다. Power BI 서비스에서 수동 또는 예약된 새로 고침 작업이 수행될 때마다 이 기간의 날짜가 있는 모든 행이 모델에서 새로 고쳐집니다.
선택적 설정을 지정합니다.
Choose optional settings(선택적 설정 선택)에서 Get the latest data in real time with DirectQuery (Premium only)(DirectQuery를 사용하여 최신 데이터를 실시간으로 가져오기(Premium 전용))를 선택하여 최신 새로 고침 기간 이후에 데이터 원본에서 발생한 최신 데이터 변경 내용을 포함합니다. 이렇게 설정하면 증분 새로 고침 정책에서 테이블에 DirectQuery 파티션을 추가합니다.
전일만 새로 고치려면 완료 날만 새로 고침을 선택합니다. 새로 고침 작업에서 하루가 완료되지 않은 것을 검색하는 경우 해당 전일의 행이 새로 고쳐지지 않습니다. 이 옵션은 DirectQuery를 사용하여 최신 데이터를 실시간으로 가져오기(Premium 전용)를 선택하는 경우 자동으로 사용하도록 설정됩니다.
데이터가 변경된 날짜만 식별하고 새로 고치는 데 사용되는 날짜/시간 열을 지정하려면 데이터 변경 내용 검색을 선택합니다. 날짜/시간 열은 데이터 원본에 있어야 하며, 일반적으로 감사 목적으로 사용됩니다. 이 열은 RangeStart 및 RangeEnd 매개 변수로 데이터를 분할하는 데 사용되는 것과 동일한 열이 아니어야 합니다. 이 열의 최댓값은 증분 범위의 각 기간에 대해 계산됩니다. 마지막 새로 고침 이후 변경되지 않은 경우 현재 기간이 새로 고쳐지지 않습니다. 프리미엄 용량에 게시된 모델의 경우 사용자 지정 쿼리를 지정할 수도 있습니다. 자세히 알아보려면 고급 증분 새로 고침 - 데이터 변경 내용을 검색하기 위한 사용자 지정 쿼리를 참조하세요.
설정에 따라 정책이 다음과 같이 표시됩니다.
설정을 검토하고 적용을 선택하여 새로 고침 정책을 완료합니다. 이 단계에서는 데이터를 로드하지 않습니다.
저장 및 서비스에 게시
RangeStart 및 RangeEnd 매개 변수, 필터링, 새로 고침 정책 설정이 완료되었으므로 모델을 저장한 다음, 서비스에 게시합니다. 모델이 커지면 서비스에서 첫 번째 새로 고침을 호출하기 전에 큰 모델 스토리지 형식사용하도록 설정해야.
모델 새로 고침
서비스에서 모델을 새로 고칩니다. 첫 번째 새로 고침은 새로 고침 기간에 새 데이터와 업데이트된 데이터뿐만 아니라 전체 저장소 기간의 기록 데이터를 모두 로드합니다. 데이터양에 따라 이 새로 고침이 상당히 오래 걸릴 수 있습니다. 후속 새로 고침은 수동이든 예약된 것이든 일반적으로 훨씬 빠른데, 증분 새로 고침 정책이 적용되고 새로 고침 정책 설정에 지정된 기간의 데이터만 새로 고치기 때문입니다.
DateTime을 정수로 변환
이 작업은 RangeStart 및 RangeEnd 필터 정의에 사용하려는 날짜 열에 날짜/시간 값 대신 테이블에서 정수 서로게이트 키를 사용하는 경우에만 필요합니다.
RangeStart 및 RangeEnd 매개 변수의 데이터 형식은 날짜 열의 데이터 형식에 관계없이 날짜/시간 데이터 형식이어야 합니다. 하지만 많은 데이터 원본의 경우 테이블에 날짜/시간 데이터 형식의 열이 없고 대신 yyyymmdd
형식인 정수 서로게이트 키의 날짜 열이 있습니다. 결과가 비 폴딩 쿼리 식이 되기 때문에 일반적으로 이러한 정수 서로게이트 키를 날짜/시간 데이터 형식으로 변환할 수 없습니다. 그러나 폴딩 성능을 잃지 않고 데이터 원본 테이블의 정수 서로게이트 키와 일치하도록 매개 변수의 날짜/시간 값을 변환하는 함수를 만들 수 있습니다. 그런 다음, 필터 단계에서 함수를 호출합니다. 이 변환 단계는 데이터 원본 테이블에 정수 데이터 형식의 서로게이트 키만 포함되어 있는 경우에 필요합니다.
파워 쿼리 편집기의 홈 리본에서 새 원본 드롭다운을 선택하고 빈 쿼리를 선택합니다.
쿼리 설정에서 이름(예: DateKey)을 입력한 다음, 수식 편집기에서 다음 수식을 입력합니다.
= (x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)
수식을 테스트하려면 매개 변수 입력에서 날짜\시간 값을 입력한 다음, 호출을 선택합니다. 수식이 올바르면 날짜의 정수 값이 반환됩니다. 확인한 후 이 새 호출된 함수 쿼리를 삭제합니다.
쿼리에서 테이블을 선택한 다음, RangeStart 및 RangeEnd 매개 변수로 함수를 호출하도록 쿼리 수식을 편집합니다.
= Table.SelectRows(#"Reordered Column OrderDateKey", each [OrderDateKey] > DateKey(RangeStart) and [OrderDateKey] <= DateKey(RangeEnd))
관련 콘텐츠
- Troubleshoot configuring incremental refresh(증분 새로 고침 구성 문제 해결)
- XMLA 엔드포인트를 사용하여 고급 증분 새로 고침
- 예약된 새로 고침 구성