使用Power BI構建數據倉庫與BI方案


殺手級特性

今年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


免責聲明!

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



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