這是使用微軟Power BI Embed功能,在自定義WEB應用中嵌入報表的系列入門指南。系列文章共分為三篇,這是第一篇。
背景
通常我們使用Power BI(下文簡稱為PBI)的模式分為以下幾種情況
- 個人使用者或者小團隊內部使用,在PBI Desktop內開發和檢視報表資料。這種辦法不需要付費,也不需要申請PBI 賬號。
- 一人開發,多個使用者檢視報表,就需要使用共享方式讓其他使用者通過PBI入口網站進行訪問。這種方案的缺陷是,所有檢視報表的人員都需要購買獨立的PBI Pro賬號,並且只能通過PBI門戶進行檢視操作。
- 把報表嵌入到自定義Web應用中,這種方案下只有開發人員需要Pro賬號,檢視人員通過自定義Web應用檢視報表。這是最靈活的方案,但是需要額外的程式開發工作量。
本文討論最後一種嵌入方案,用一個簡單的案例對整個開發流程進行簡單演示。
Power BI 提供了Embedded功能(下文簡稱PBIE),使用特定 API,將儀表板和報表嵌入自定義應用中。 可以利用 JavaScript 和 REST API 滿足個性化的嵌入需要。檢視報表的使用者無需瞭解有關 PBI 的機制,也無需Pro賬號。
準備工作
配置ODBC
PBI Desktop,以及後面介紹的PBI閘道器,在報表開發和執行階段都需要訪問資料來源。在我們的案例中,使用Greenplum資料庫。雖然PBI Desktop自帶了PostgreSQL的驅動,但是為了滿足PBIE遠端訪問的要求,我們仍然自建一個ODBC資料來源。如下圖我們建立一個名稱是GP-Prod的資料來源,這個名稱我們後面還會用到。
![image-20180606105636914](https://i.iter01.com/images/5158a84bdb1241d1edbd93d473337784f979779f2727c635bf011ec559f8a251.png)
購買Power BI Pro賬號
至少需要有一個 PBI Pro 帳戶才能建立嵌入式應用程式。 這個帳戶由報表開發管理人員使用,並且充當應用程式的主帳戶(PBI服務將其視為代理帳戶)。 藉助 PBI Pro 帳戶,在訪問報表時生成嵌入令牌,用於訪問PBI 服務中的儀表板和報表。
註冊Azure AD App
在 Azure Active Directory (Azure AD) 中註冊應用程式,用於嵌入 PBI 內容。使用 Azure AD 註冊應用程式後,應用程式將能夠訪問 PBI REST API。 此操作能夠為應用程式建立標識,並指定對 Power BI REST 資源的許可權。
註冊的關鍵步驟包括
- 使用 PBI 應用註冊工具註冊
- 使用 Azure 門戶修改許可權
- 獲得應用程式ID
因為這個註冊流程步驟比較多且官方手冊有非常詳細的描述,所以這裡不再把具體步驟的圖片貼上來。具體的操作請參考官方文件docs.microsoft.com/zh-cn/power…
建立Workspace
只有釋出到應用工作區的報表才能被PBIE訪問,所以我們要在Pro賬號下建立一個應用工作區。
如下圖,在【工作區】選單下點選【建立應用工作區】,提供名稱。其他的選項都使用預設值。
![image-20180606102459062](https://i.iter01.com/images/45da610e012f029142a95b6dc74f19653f97aaa0ff585f1b2f81257fc1c10a35.png)
建立成功後,我們就擁有了預設的【我的工作區】和新建的【danlu_workspace】,可以在選單中進行工作區的切換。如下圖
![image-20180606102952260](https://i.iter01.com/images/d57908aced82aef45b448be4c1e1f78f15824f31bf5074bb215514a189d2705a.png)
安裝Gateway
釋出到工作區的報表和資料集,不能直接訪問位於公司內部的資料庫。PBI提供了閘道器來實現這種跨網路訪問需求。簡單的說,就是在本地機器上執行PBI Gateway服務,並且在Pro賬戶下配置閘道器需要訪問的資料來源,遠端的報表和資料集通過閘道器來間接訪問到本地資料。
登入PBI門戶後,在右上角找到下載閘道器的連結,如下圖
![image-20180608113606722](https://i.iter01.com/images/eb5870bf7f964ea1607b3de56bb2f99ed79f54a810e37b8f4726607944ce8569.png)
安裝閘道器的流程很簡單,但是有兩點需要注意
- 使用推薦的本地閘道器,如下圖所示
- 使用和建立工作區相同的Pro賬號
![image-20180606103506646](https://i.iter01.com/images/8e830ebb4d93be75778a26cf3d7daeda1a211dde1f54183a6a10c0bb6a600cd2.png)
配置Gateway
本地閘道器安裝之後,遠端同名Pro賬號下就會出現這個閘道器資訊。為了能夠訪問本地資料來源,我們需要在遠端閘道器下配置相應的資料來源資訊。一個閘道器下可以配置多個不同的資料來源滿足不同報表的需求,每個資料來源都有自己的型別和連線資訊。這裡我們僅配置一個ODBC源。
首先在【設定】選單下點選【管理閘道器】,如下圖
![image-20180606110102310](https://i.iter01.com/images/8cbc9ae208166bab6b9e7640d54a1a97db74e149fa41515bf712525d6b4fbfe7.png)
我們會看到一個名稱是GW-Danlu的閘道器(這個名稱是本地建立閘道器時提供的名字),點選三個小圓點開啟選單,然後點選【新增資料來源】,如下圖
![image-20180606110500931](https://i.iter01.com/images/d5cb9f8f31579a8a18fa04bc797950cff533e347172c5fda0683d27f03d7071a.png)
![image-20180606110506559](https://i.iter01.com/images/4680586881fc11aa442d507e1376aeb25e3d98a07aa7bd319704a80fce668892.png)
我們新建一個ODBC資料來源來連線我們前面配置的本地ODBC DSN,特別要注意的是連線字串的寫法是 dsn=GP-Prod ,其中GP-Prod是我們本地資料來源的名稱,如下圖
![image-20180606110754314](https://i.iter01.com/images/49497db2b381ab1019089ca5835dc342a1418f677de5ad08e89ef97ecec2b49f.png)
待續。。。