天天看點

使用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語義模型的最終形态

架構

使用Power BI建構資料倉庫與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(可選)

環境配置

建立工作區

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

開啟進階容量

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

連接配接Azure Data Lake

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

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

檢視Azure Data Lake

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

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

資料倉庫

資料接入

建立資料流,啟動Power Query

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

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

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

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

資料萃取

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

  • 代理鍵
使用Power BI建構資料倉庫與BI方案
使用Power BI建構資料倉庫與BI方案
  • 派生列
使用Power BI建構資料倉庫與BI方案
  • 行列拆分
使用Power BI建構資料倉庫與BI方案
使用Power BI建構資料倉庫與BI方案

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

  • 多源(含異構)整合-合并查詢,追加查詢
使用Power BI建構資料倉庫與BI方案

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

使用Power BI建構資料倉庫與BI方案
  • JSON字段
使用Power BI建構資料倉庫與BI方案

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

排程重新整理

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

對于有日期時間字段的表,可以配置增量重新整理

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

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

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

資料存儲

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

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

資料重新整理後自動建構拉連結清單模式,由于有model.json中繼資料,使用時預設最新的版本

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

資料探索(可選)

由于資料存儲在Azure Data Lake中,可以使用支援Azure存儲或HDFS的各種工具或接口通路使用.本次示範使用Azure Synapse Analytic的無服務SQL引擎和Spark引擎

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

BI模型

SSAS模型

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

建立SSAS 2019模型,選擇內建工作區模式

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

讀取Dataflows的資料,由于目前SSDT工具還未釋出Azure Data Lake 2的接口,那就使用Azure Blob接口

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

Power BI Desktop直接用Azure Data Lake 2

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

開發模型:建好表關系,路徑成本,計算列,行級權限

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

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

多元度分層行級權限

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

模型釋出

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

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

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

使用SSMS連接配接SSAS環境

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

在SSMS上使用模型處理指令

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

分區

SSDT或SSMS設定分區

Power BI Desktop設定增量重新整理

排程配置

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

可視與分析

Power BI線上編輯

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

使用Power BI資料集接

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

使用Analysis Services接口,輸入伺服器位址powerbi://api.powerbi.com/v1.0/myorg/FIN

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

模型關系圖

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

Excel

2019以下的版本使用Analysis Services連接配接,Office 365版本有Power BI資料集接口

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

第三方工具等

支援XMLA的工具都可以連接配接内置的SSAS模型

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

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

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

最後

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

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

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

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

本次以批處理數倉示範,二次模組化複合模型直連關系資料庫涉及實時場景

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

繼續閱讀