如何把Power BI嵌入到Web應用中

來源:互聯網
上載者:User

標籤:伺服器   src   app   mvc   active   png   集合   支援   並且   

(此文章同時發表在本人公眾號“dotNET開發經驗談”,歡迎右邊二維碼來關注。)

題記:這篇其實不是一個操作嚮導了,主要對Power BI的嵌入特性進行探討。

Power BI是微軟的創新性(或者稱之為敏捷型)BI產品,從發布之初就備受關注,因為它是一個只能以純SaaS模式提供服務端的BI產品。目前Power BI其實是以兩種方式提供服務端:

  1. Power BI Service。只能通過Office 365來購買訂閱,一般作為一個獨立的BI應用供企業內部使用。
  2. Power BI Embedded。只能通過Azure來購買,按使用量付費,主要滿足ISV(獨立軟體廠商)在自身Web應用中整合BI功能提供給終端使用者的需求。

所以要把Power BI嵌入到Web應用程式中,針對不同的提供方式,也有不同的嵌入方式。

通過Power BI Service嵌入

Power BI Service一般通過Azure Active Directory進行驗證後(即你的Web應用必須使用AAD做驗證),使用iframe把報表嵌入到應用頁面中。比如MS Teams就使用這種方式整合了Power BI。同時還可以利用Power BI REST API來即時更新資料。展示了進行整合的整體流程:

微軟已經很貼心的給出了一個樣本和文檔來指導大家進行Power BI Service的整合(都不需要我來寫了):https://powerbi.microsoft.com/zh-cn/documentation/powerbi-developer-integrate-report/。大致步驟如下:

  1. 通過Office 365訂閱Power BI服務(有免費可選),有了Office 365,自然就有AAD租戶。當然也可以反過來,使用已有的AAD租戶(必須是企業組織)來註冊免費的Power BI服務。
  2. 註冊你的Web應用,可以直接在Azure Portal中註冊(建議使用這種方式),或者使用Power BI應用註冊工具註冊。以Power BI應用註冊工具為例:App Type選擇服務端應用,Redirect URL輸入類似http://localhost:13526/這樣的地址
  3. 把得到的Client ID和Client Secret填寫到設定檔中,範例程式碼是項目的Settings.settings
  4. 運行Web應用,使用Office365帳號登入,擷取報表的嵌入Url,就可以進行報表的嵌入瀏覽了
通過Power BI Embedded嵌入

考慮到Power BI Service主要用於企業內部,並且沒有單獨的伺服器可供安裝,為瞭解決ISV整合BI報表到自己產品的需求,微軟特意在Azure中提供了Azure Power BI Embedded雲端服務。可以把Azure Power BI Embedded看作是Qlik Sense的OEM模式,只是它是線上的OEM服務。它的優點是:“通過使用Power BI Embedded服務,ISV就無需為了開發與維護可視化功能和BI控制項而自行投入研發力量。這些可視化功能可以支援他們使用的全部裝置,而ISV也能夠充分地利用Power BI服務上不斷出現的各種創新功能以及他們的全部價值”。老實說我也基於Qlik Sense構思了類似Power BI Embedded的東西,要解決的就是這樣的問題,看來這個Idea還是有市場的。

Power BI Embedded嵌入方式比Power BI Service的簡單些,最主要是通過AccessKey代替AAD驗證,頁面嵌入也是通過iframe來實現。當然訪問背景API是另外一套,名字叫Azure Power BI Embedded REST API,不過有.NET和JS的SDK可供下載。給出了一個嵌入步驟的概念性模型:

簡單說來就是:

  1. 一個開發人員首先需要申請Azure訂閱(可以多個)
  2. 在Azure中建立一個或多個Power BI工作區集合,獲得名稱和AccessKey
  3. 通過API來建立一個或多個Power BI工作區(工作區包含了報表、資料集等),獲得工作區ID
  4. 通過API擷取工作區內的報表等資訊,並通過AccessKey來獲得EmbedToken
  5. 利用iframe(實際微軟提供了MVC的一些HtmlHelper和js供大家使用)來顯示嵌入的報表
  6. 終端使用者訪問你的Web應用從而瀏覽報表

具體的步驟可以看官方的文檔,已經寫的足夠好和詳細了:https://docs.microsoft.com/zh-cn/azure/power-bi-embedded/power-bi-embedded-get-started

Power BI vs Qlik Sense

下面我們來對Power BI和Qlik Sense在嵌入Web應用這個方面進行一個簡單比較:

比較點 Power BI Qlik Sense
iframe方式嵌入 支援 支援
div方式嵌入 不支援 支援
儀錶盤嵌入 支援 支援
報表/工作表嵌入 支援 支援
磁貼/可視化對象嵌入 支援 支援
嵌入後用戶端操作 支援 支援
開發工具支援
本地AD/Windows驗證 Embedded支援 支援
Azure AD驗證 Service支援 支援(需在QMC中配置)
自訂驗證 Embedded支援 支援

總體而言,Qlik Sense的嵌入靈活度和便捷性更高。但是Power BI這種租用服務的方式也有優勢。

如何把Power BI嵌入到Web應用中

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.