使用PowerBI_Embed實現Web訪問報表 part 1

wait4friend發表於2018-06-12

這是使用微軟Power BI Embed功能,在自定義WEB應用中嵌入報表的系列入門指南。系列文章共分為三篇,這是第一篇。

第一篇 背景和準備工作

第二篇 在PBI Desktop中開發和釋出報表

第三篇 嵌入報表到自定義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

購買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 資源的許可權。

註冊的關鍵步驟包括

  1. 使用 PBI 應用註冊工具註冊
  2. 使用 Azure 門戶修改許可權
  3. 獲得應用程式ID

因為這個註冊流程步驟比較多且官方手冊有非常詳細的描述,所以這裡不再把具體步驟的圖片貼上來。具體的操作請參考官方文件docs.microsoft.com/zh-cn/power…

建立Workspace

只有釋出到應用工作區的報表才能被PBIE訪問,所以我們要在Pro賬號下建立一個應用工作區。

如下圖,在【工作區】選單下點選【建立應用工作區】,提供名稱。其他的選項都使用預設值。

image-20180606102459062

建立成功後,我們就擁有了預設的【我的工作區】和新建的【danlu_workspace】,可以在選單中進行工作區的切換。如下圖

image-20180606102952260

安裝Gateway

釋出到工作區的報表和資料集,不能直接訪問位於公司內部的資料庫。PBI提供了閘道器來實現這種跨網路訪問需求。簡單的說,就是在本地機器上執行PBI Gateway服務,並且在Pro賬戶下配置閘道器需要訪問的資料來源,遠端的報表和資料集通過閘道器來間接訪問到本地資料。

登入PBI門戶後,在右上角找到下載閘道器的連結,如下圖

image-20180608113606722

安裝閘道器的流程很簡單,但是有兩點需要注意

  • 使用推薦的本地閘道器,如下圖所示
  • 使用和建立工作區相同的Pro賬號

image-20180606103506646

配置Gateway

本地閘道器安裝之後,遠端同名Pro賬號下就會出現這個閘道器資訊。為了能夠訪問本地資料來源,我們需要在遠端閘道器下配置相應的資料來源資訊。一個閘道器下可以配置多個不同的資料來源滿足不同報表的需求,每個資料來源都有自己的型別和連線資訊。這裡我們僅配置一個ODBC源。

首先在【設定】選單下點選【管理閘道器】,如下圖

image-20180606110102310

我們會看到一個名稱是GW-Danlu的閘道器(這個名稱是本地建立閘道器時提供的名字),點選三個小圓點開啟選單,然後點選【新增資料來源】,如下圖

image-20180606110500931

image-20180606110506559

我們新建一個ODBC資料來源來連線我們前面配置的本地ODBC DSN,特別要注意的是連線字串的寫法是 dsn=GP-Prod ,其中GP-Prod是我們本地資料來源的名稱,如下圖

image-20180606110754314

待續。。。

相關文章