當前位置:
首頁 > 知識 > PowerBI開發:數據集和數據刷新

PowerBI開發:數據集和數據刷新

PowerBI開發:數據集和數據刷新

PowerBI報表是基於數據分析的引擎,數據真正的來源(Data
Source)是資料庫,文件等數據存儲媒介,PowerBI支持的數據源類型多種多樣。PowerBI Service(雲端)有時不直接訪問Data
Source,而是直接從PowerBI Service創建的數據集(Dataset)中獲取數據,數據集中存儲的內容主要分為三部分:Data
Source的數據(Data)、連接數據源的憑證(Credentials)、以及數據源的架構(Table
Schema)等元數據(metadata)。
PowerBI
Service分析數據時,直接訪問Dataset獲取數據,執行聚合計算,以響應用戶的查詢請求。使用Dataset的好處是:PowerBI只需要維護統一的Data
Store,不需要從眾多不同的DataSource中讀取數據,所需要的數據都能從單一的數據結構(Dataset)中讀取。

PowerBI
Service為每個發布的Report自動創建一個Dataset,每一個Dataset的大小的上限是1GB。在導入(Import)連接模式下,PowerBI把多個Data
Source的數據導入到Dataset中,也就是說,Dataset存儲的是多個數據源(Data
Source)的快照。是否把數據源導入到Dataset,是由數據連接(Data Connection Model)決定的。

一 數據連接模式

當使用「Get Data」連接到Data Source時,PowerBI 自動創建Dataset,把數據從多個Data
Source載入到一個Dataset中,Dataset還包含連接Data Source的憑證(Credentials),以及數據的架構等元數據。PowerBI
Service直接從Dataset中引用數據,而不是直接從Data
Source中。PowerBI支持的連接模式有兩種,分別是:Import,Live/DirectQuery。導入(Import)模式把Data
Source的數據導入到PowerBI Service的Dataset中,而直接查詢(DirectQuery)模式建立Data Source
和Dataset之間的直接連接。

PowerBI開發:數據集和數據刷新

1.導入(Import)模式

對於導入(Import)模式,雲端的Dataset中存儲的數據來源於內網(On-Premises)數據的副本,一旦載入數據源,查詢定義的所有數據都會被載入到Dataset中。PowerBI從高度優化的Dataset中查詢數據,查詢性能高,能夠快速響應用戶的互動式查詢。由於導入模式是把數據源快照複製到Dataset中,因此,底層數據源的改動不會實時更新到Dataset,這使得Dataset存儲的數據是過時的,用戶需要手動刷新或設置調度刷新,否則,Dataset的數據不會更新。數據的刷新是全量更新,而非增量。

導入模式的限制是:Dataset的最大Size是1GB。

2.直接查詢(DirectQuery)模式

對於DirectQuery模式,PowerBI直接訪問底層的數據源,因此數據始終是最新的。一旦載入數據,PowerBI
Service不會向Dataset中載入任何數據(Data),這意味著,Dataset不存儲任何數據(Data),但是,Dataset仍然會存儲連接Data
Source的憑證,以及數據源的元數據,用於訪問底層數據源。在執行查詢請求時,PowerBI Service直接把查詢請求發送到原始的Data
Source中去獲取所需的數據。直接查詢採用主動獲取數據的方式,這意味著,底層數據的任何更新,不會立即反應到現有的報表展示中,用戶需要刷新(Refresh)數據,但是,新的查詢請求,都會使用最新的數據。

直接查詢模式需要使用本地數據網管(On-Premises Data Gateway),PowerBI
Service能夠從雲端向本地數據源(on-premises data
sources)發送查詢請求。當產生數據交互行為時,查詢直接發送到資料庫,Excel,Azure SQL DB/DW等,由於PowerBI和Data
Source之間是直接連接,因此,不需要調度數據PowerBI Service的數據集(Dataset)。

Live/DirectQuery – This means there is a live connection between Power BI
and the data source.

DirectQuery連接模式的好處是:

能夠訪問更大Size的Dataset:由於不需要把數據載入到Dataset中,DirectQuery模式能夠從海量的數據源中載入數據;

直接訪問數據源:在DirectQuery模式下,PowerBI使用的是最新的數據。


二 數據刷新(Data Refresh)

PowerBI Service從Dataset中獲取數據,用於數據分析和展示,用戶可以通過"SCHEDULE REFRESH"和"REFRESH
NOW"刷新Dataset的數據,把Dataset的數據更新到最新。用戶刷新Dataset之前,必須配置內網數據網關(On-Premises Data
Gateway),詳細信息,請參考我的博文《PowerBI開發 第六章:數據網管》。PowerBI
Service對數據Dataset的刷新是完整數據刷新,而不是增量數據刷新。

When you refresh data, you are updating the data in the dataset that is
stored in Power BI from your data source. This refresh is a full refresh and not
incremental.

當使用Import連接模式時,所有的數據都會從Data Source導入到PowerBI
Service的緩存中,PowerBI的可視化控制項都是從緩存中查詢數據。一旦PowerBI文件發布到PowerBI Service中,PowerBI
將會創建一個Dataset,用於存儲被導入的數據。設置調度,定時刷新Dataset,使得PowerBI呈現最新的分析數據,對於做出正確的決策是非常重要的。


三 連接模式的性能

推薦使用導入(Import)連接模式,這是因為PowerBI 使用內存的列式資料庫
VertiPaq,用於對已發布的數據集(Dataset)進行數據壓縮和快速處理,能夠使PowerBI報表執行離線訪問,面向列的處理,高度優化對1:N關係的處理性能。導入模式非常適合聚合查詢,特別是,當存在大量的關係時,PowerBI能夠快速執行聚合運算。導入模式的缺點是Dataset的Size最大是1GB,需要調度刷新才能訪問最新的數據。

直接查詢(DirectQuery)模式,建立PowerBI和Data
Source之間的直接連接,訪問的數據始終是最新的,並且數據源的大小是無限制的。在直接查詢模式下,PowerBI直接發送查詢到Datasource中,以獲取所需要的數據。當Data
Source是關係型資料庫時,PowerBI直接發送SQL查詢語句到資料庫中。直接查詢模式的最大缺點是性能問題。

在直接查詢模式下,所有的直接查詢請求都直接發送到源資料庫中,後端數據源響應查詢請求的速度決定了直接查詢的性能。雖然PowerBI儘可能的優化生成的SQL命令,但是,通過監控發現,PowerBI最終生成的SQL命令是非常低效的,特別是在查詢海量的數據源時,後端(Back-end)數據源需要執行很長時間,才能返回結果。等待的時間超過30s,用戶體檢就很不理想了。當導入模式不能滿足業務需求時,再考慮直接查詢模式。

(轉自博客園 作者悅光陰)



2017中公教育特別推出勤工儉學計劃:http://www.ujiuye.com/zt/qgjx/?wt.bd=bgz

還有500萬的就業基金等著你:http://www.ujiuye.com/zt/jycj/?wt.bd=bgz

海量IT課程學習就在優學網:http://xue.ujiuye.com/

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT優就業 的精彩文章:

編譯期類型檢查 in ClojureScript
你身邊有哪些人硬生生地活成了段子?
現在的微博,也就是靠傍傍鹿晗才能刷存在感了?
一張圖理清ASP.NET Core啟動流程
流程引擎的網關|BPMN2.0設計總結

TAG:IT優就業 |