PowerBI開發 第十三篇:增量刷新


PowerBI 將要解鎖增量刷新(Incremental refresh)功能,這是一個令人期待的更新,使得PowerBI可以加載大數據集,並能減少數據的刷新時間和資源消耗,該功能目前處於預覽狀態,只對 Power BI Premium 版本開放預覽。

增量刷新只是加快了數據集刷新的速度,對於具有潛在數十億行的大型數據集,可能還是不適合Power BI Desktop,因為它通常受用戶桌面PC上可用資源的限制,以及系統的限制。 因此,這些數據集通常在導入時被過濾,以適應Power BI Desktop。 無論是否使用增量刷新,情況仍然如此。

通常情況下,增量是基於時間戳字段的,在數據源更新數據時,同時更新時間戳。PowerBI保存上一次刷新時的時間戳last_timestamp,所有大於last_timestamp的數據行都是新增加的數據行,也就是說,改變的數據行會被加載到PowerBI的數據集中。

 

我的PowerBI開發系列的文章目錄:PowerBI開發

一,啟用增量刷新

增量刷新默認是禁用的,啟用增量刷新的步驟是:打開選項和設置(Options and Settings)窗口,在全局選項(Global)的 “Preview features” 選項卡中,勾選“Incremental Refresh Policies”,這樣就啟用了PowerBI Service的增量刷新功能。

目前該功能仍然處於預覽階段,后續可能會被加強,這么酷的一個feature,沒有道理會被棄用。

二,設置RangeStart和RangeEnd參數

要在Power BI服務中利用增量刷新,首先需要創建時間區間,這要求用戶在Power Query 編輯器中創建RangeStart和RangeEnd參數,該參數的名稱是保留名稱,類型必須是Date/Time,PowerBI Service使用這兩個參數實現數據集的增量刷新。

創建參數的窗口如下圖所示,Type必須選擇Date/Time類型,並設置默認值(Current Value)。

三,使用參數過濾查詢

使用定義的參數RangeStart和RangeEnd,對查詢的Date/Time字段進行過濾。選中Date字段,展開 "Date/Time Filters" ,選擇“Custom Filter”,

在“Filter Rows”對話框中,設置用於過濾數據行的表達式,如下圖所示:

一旦發布PowerBI,那么參數值會被PowerBI Service自動覆蓋,這種行為不需要顯式設置。

四,定義刷新策略

在PowerBI Desktop中定義刷新策略,在PowerBI Service中應用刷新策略。

在Report視圖中,選擇被參數RangeStart和RangeEnd過濾的表,右擊彈出快捷菜單,點擊“Incremental Refresh”,

打開增量刷新的窗口,如下圖所示,在該窗口中定義增量刷新的策略:

1,為數據表啟用增量刷新

 

2,定義刷新的區間

數據刷新的區間包括保留區間和增量區間,保留區間為6個月,增量區間為7天,這意味着保留近6個月的數據,當刷新數據時,加載數據的時間區間是:開始日期=當前日期-7天, 結束日期=當前日期

PowerBI會把在6個月之前的數據從Data Set中移除。

在第一次刷新時,PowerBI會一次性加載6個月的數據,這是依次全量刷新,之后的數據刷新都按照該區間進行增量刷新。

3,探測數據變化

當勾選“Detect data changes”選項時,您能選擇一個Date/Time列作用時間戳,當探測到該列發生改變時,PowerBI才會啟動增量刷新進程。如果該列沒有發生任何改變,那就沒有必要去刷新數據。

當前的設計要求PowerBI Service保持用於探測數據變化的列不變,並緩存到內存中。

4,只刷新完整日期

當勾選“Only refresh complete periods”時,PowerBI不會加載當天的數據,因為當天的數據不是一天的完整數據。

五,歸並更新

PowerBI Service使用基於時間戳的歸並方法實現數據集的增量更新,歸並更新的實現邏輯是:添加新的數據,對已經存在的數據進行更新,並移除超過保留的時間窗口之外的數據。

例如,以下示例定義了一個刷新策略:

用於存儲總共5年的數據,並逐步刷新10天的數據。 如果每天刷新數據集,則將對每個刷新操作執行以下操作:

  • 添加新的一天數據,(添加新的數據);
  • 刷新在當前日期前10天的數據,(對已經存在的數據進行歸並更新);
  • 刪除當前日期之前超過5年的數據。 例如,如果當前日期是2019年1月1日,則刪除2013年的數據,(移除超過保留的時間窗口之外的數據)。

 

參考文檔:

Incremental refresh in Power BI Premium


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM