數據可視化之powerBI技巧(二十二)利用這個方法,幫你搞定Power BI"增量刷新"


Power BI的增量刷新功能現在已經對Pro用戶開通,但由於種種限制,很多人依然無法使用無這個功能,所以,每一次刷新,都要徹底更新數據集。這對於量級比較大的數據集來說,着實是一件耗費時間的事情。

拿我的親身經歷舉個例子,我有一份報表涵蓋了客戶近3年的銷售情況,由於客戶的業務流量比較大,數據集的每一次手動刷新都在15分鍾左右,而計划刷新更是會延遲到35分鍾左右,嚴重影響到報表的日常使用。

不過呢,聰明如我( 偷笑 ),我還是發掘到了一個十分簡單的”增量刷新”解決方案,使用一個DAX函數就可以實現。希望我以下的分享可以給你帶來一些靈感。

在這里,我仍然使用NorthWind數據庫做演示,分別導入Orders表格以及Customers表格。

 

首先,在PowerQuery將數據集里,將包含了近三年銷售詳情的Orders表分為三張: Orders 2017, Orders 2018, Orders2019,里面分別包括了當年的所有銷售訂單。

 

 

實現步驟為:

1. 復制兩份Orders表格,分別重命名。

2. 對OrderDate日期列進行操作,篩選出當年的銷售數據 :

方法一 : M代碼( 以Orders 2017的日期篩選為例 )

"Lignes filters" = Table.SelectRows(#"Colonnessupprimées", each [OrderDate] >= #date(2017, 1, 1) and [OrderDate]<= #date(2017, 12, 31))

 

方法二 : 或在PQ界面,點擊OrderDate列篩選實現,

 

將銷售表格成功分割為三個年份的表格后,還要取消2017和2018這兩張表格的刷新資格(這一步非常重要)。

具體操作為,分別鼠標右擊這兩個表格,取消勾選“包含在報表刷新中”。

也就是說,在下一次更新數據集時,這兩張表格將不被刷新,不會再重新載入數據。

寫到這里,應該有一些小伙伴已經看出來我的意圖了 : 更新的時候只刷新2019年的銷售數據,然后再合並這三張表,獲取一個完整的Orders表格,不就約等於只刷新新增數據了嗎。沒錯!就是這樣。

所以接下來,我們要做的就是: 合並這三張表格。

那么問題來了,應該在PQ里直接合並嗎?

 

答案是否定的。

因為如果在PQ里以Orders2019作為主表格對它們進行合並,2018和2017兩張表格雖然被取消了刷新資格,但是作為2019的附屬表格,還是會被刷新,會被重新載入數據。

不過,在PowerBI里,我們還可以借助一個函數UNION來實現表格的合並。並且UNION可以幫助我們實現增量刷新的目的。

導入數據后,回到PowerBI操作界面,點擊工具欄里的”新建表”,使用DAX函數創建一個新的表格 Orders。

 

這里用到的DAX表達式為:

 

Orders =UNION('Orders 2017';'Orders 2018';'Orders 2019')

 

新表格創建成功后,來到關系視圖,可以使用新創建的表格建立需要的關聯關系。

 

 

點擊刷新數據驗證一下三張Orders表格里,是否只有Orders2019被刷新。

 

到這里,我的小技巧就施展完成了。

最后,大家別忘了在表格列表里隱藏 Orders 2017, Orders2018, Orders 2019 這三張表格,假裝什么都沒有發生過一樣。

 

或許看完之后你會說,這根本就不算真正的增量刷新。是的,這里我只是在”模仿”增量刷新,在PowerBI Desktop中只加載需要更新的表,同樣可以縮短刷新的時間,這不就是我們期望的結果么?

利用這個方法確實部分解決了我的困擾。你也可以順着這個思路,單獨分出近一個季度,近一個月的數據,然后只刷新這部分數據。

感謝大家的閱讀。

 

/推薦閱讀/

01 「PowerBI星球」內容合輯

02 PowerBI數據分析應用:客戶購買頻次分布

03 數據分析實戰案例,幫你全面認識 PowerBI


免責聲明!

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



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