使用Power BI構建資料倉儲與BI方案

覆周發表於2021-04-27

殺手級特性

今年Power BI的幾大殺手級特性的GA,可以讓其構建完整的資料倉儲/資料湖和BI分析一站式方案。

  • Power BI Premium Per User-超低的價格
  • Large datasets in Power BI Premium-內建完整的SSAS引擎
  • Dataflows and Azure Data Lake Gen 2-與Azure資料湖整合,資料共享
  • XMLA endpoint-開放程式設計介面和第三方工具接入
  • DirectQuery for Power BI datasets and Azure Analysis Services-複合模型,BI語義模型的最終形態

     

架構

  1. 資料接入:Dataflows是Power Query的web版,支援接入關聯式資料庫,檔案/檔案系統,SaaS應用,API等上百種資料來源
  2. 資料萃取:Power Query提供完全的圖形化操作對資料進行提取、轉換和載入處理
  3. 資料儲存:處理後的資料以CDM儲存在Azure Data Lake上,極低的價格儲存並擁有和關聯式資料庫一樣的結構化定義
  4. 資料建模:完整的SQL Server Analysis Services記憶體引擎,支援100G+的記憶體
  5. 可視與分析:Power BI互動式報表與儀表板,由於內建的SSAS使報表與資料解耦

     

準備條件

Power BI Premium Per User賬號

Azure Data Lake Gen 2訂閱

SSDT,使用Visual Studio社群版即可

Power BI Desktop

SQL Server Analysis Services 2019伺服器

DAX Studio(可選)

Excel(可選)

Azure Synapse Analytics(可選)

 

環境配置

新建工作區

開啟高階容量

連線Azure Data Lake

Azure Data Lake需要和Power BI在同一資料中心區域,並保證Azure Data Lake IAM許可權。

檢視Azure Data Lake

配置完成後會自動建立2個物件儲存容器

 

資料倉儲

資料接入

新建資料流,啟動Power Query

基於成本的原因,本次使用Azure Data Lake做資料來源,讀取了11張表,如下圖

(正常使用時本地/雲端的資料庫都可 ,一個資料流裡支援多個資料來源)

 

資料萃取

ETL加工裡面的各種場景在Power Query裡都可以輕鬆實現,並且是完全圖形化操作,本次以下面幾種演示:

  • 代理鍵

  • 派生列

  • 行列拆分

(拆分到行還為移植到web端)

  • 多源(含異構)整合-合併查詢,追加查詢

追加查詢支援列不固定,如下圖

  • JSON欄位

還有緩慢變化,透視與逆透視,分類彙總,向上/下填充,列內容提取等很多場景就不展開了,後續會一個Power Query的資料處理專題.

排程重新整理

對於有日期時間欄位的表,可以配置增量重新整理

資料流的排程重新整理配置

資料儲存

資料排程完成後以CSV檔案格式儲存在Azure Data Lake中,後設資料存在model.json中

資料重新整理後自動構建拉鍊表模式,由於有model.json後設資料,使用時預設最新的版本

資料探索(可選)

由於資料儲存在Azure Data Lake中,可以使用支援Azure儲存或HDFS的各種工具或介面訪問使用.本次演示使用Azure Synapse Analytic的無服務SQL引擎和Spark引擎

 

BI模型

SSAS模型

為了使開發的模型在本地SSAS環境和Power BI公有云環境上都可使用,這次使用SSDT開發,若只考慮公有云使用Power BI Desktop即可.

新建SSAS 2019模型,選擇整合工作區模式

讀取Dataflows的資料,由於當前SSDT工具還未釋出Azure Data Lake 2的介面,那就使用Azure Blob介面

Power BI Desktop直接用Azure Data Lake 2

開發模型:建好表關係,度量值,計算列,行級許可權

本此演示的就是一個最基礎的SSAS模型結構,3張事實表的星座模型

多維度分層行級許可權

模型釋出

部署伺服器地址,設定不處理

powerbi://api.powerbi.com/v1.0/myorg/FIN

使用SSMS連線SSAS環境

在SSMS上使用模型處理命令

分割槽

SSDT或SSMS設定分割槽

Power BI Desktop設定增量重新整理

排程配置

 

可視與分析

Power BI線上編輯

Power BI Desktop

使用Power BI資料集接

使用Analysis Services介面,輸入伺服器地址powerbi://api.powerbi.com/v1.0/myorg/FIN

模型關係圖

Excel

2019以下的版本使用Analysis Services連線,Office 365版本有Power BI資料集介面

第三方工具等

支援XMLA的工具都可以連線內建的SSAS模型

本次以DAX Studio演示,如下圖:

 

最後

Power BI的按使用者數收費模式,不限制使用量,模型完成後無限制使用者查詢

Azure Data Lake的無限制儲存,按使用量計費

兩者的價格組合以極低的成本構建企業級數倉BI解決方案

本次以批處理數倉演示,二次建模複合模型直連關聯式資料庫涉及實時場景

Power BI自身的流式實時,Azure Data Lake流式寫入待後續blog講解.

 

由於Power BI的特性結合Azure Data Lake可以做數倉,但與Azure Synapse Analytics並不衝突,兩者資料都是儲存在Azure Data Lake,可以共用一個儲存。

面向不同的使用者,Azure Synapse Analytics面向IT,Power BI面向業務自助。

 

文件

資料流和自助資料準備簡介 - Power BI | Microsoft Docs

在 Power BI 中使用 XMLA 終結點連線和管理資料集 - Power BI | Microsoft Docs

將資料流儲存配置為使用 Azure Data Lake Gen 2 - Power BI | Microsoft Docs

使用適用於資料集和 Azure Analysis Services 的 DirectQuery(預覽版) - Power BI | Microsoft Docs

Power BI Premium Per User - Power BI | Microsoft Docs

相關文章