设为首页 收藏本站
查看: 1031|回复: 0

[经验分享] 如何把Power BI嵌入到Web应用中

[复制链接]

尚未签到

发表于 2017-7-1 08:18:04 | 显示全部楼层 |阅读模式
  (此文章同时发表在本人微信公众号“dotNET开发经验谈”,欢迎右边二维码来关注。)
  题记:这篇其实不是一个操作向导了,主要对Power BI的嵌入特性进行探讨。
  Power BI是微软的创新性(或者称之为敏捷型)BI产品,从发布之初就备受关注,因为它是一个只能以纯SaaS模式提供服务端的BI产品。目前Power BI其实是以两种方式提供服务端:
  
       
  • Power BI Service。只能通过Office 365来购买订阅,一般作为一个独立的BI应用供企业内部使用。   
  • 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/。大致步骤如下:
  
       
  • 通过Office 365订阅Power BI服务(有免费可选),有了Office 365,自然就有AAD租户。当然也可以反过来,使用已有的AAD租户(必须是企业组织)来注册免费的Power BI服务。   
  • 注册你的Web应用,可以直接在Azure Portal中注册(建议使用这种方式),或者使用Power BI应用注册工具注册。以Power BI应用注册工具为例:App Type选择服务端应用,Redirect URL输入类似http://localhost:13526/这样的地址   
  • 把得到的Client ID和Client Secret填写到配置文件中,示例代码是项目的Settings.settings   
  • 运行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可供下载。下图给出了一个嵌入步骤的概念模型:

  简单说来就是:
  
       
  • 一个开发者首先需要申请Azure订阅(可以多个)   
  • 在Azure中创建一个或多个Power BI工作区集合,获得名称和AccessKey   
  • 通过API来创建一个或多个Power BI工作区(工作区包含了报表、数据集等),获得工作区ID   
  • 通过API获取工作区内的报表等信息,并通过AccessKey来获得EmbedToken   
  • 利用iframe(实际微软提供了MVC的一些HtmlHelper和js供大家使用)来显示嵌入的报表   
  • 最终用户访问你的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 BIQlik Sense
iframe方式嵌入支持支持
div方式嵌入不支持支持
仪表盘嵌入支持支持
报表/工作表嵌入支持支持
磁贴/可视化对象嵌入支持支持
嵌入后客户端操作支持支持
开发工具支持
本地AD/Windows验证Embedded支持支持
Azure AD验证Service支持支持(需在QMC中配置)
自定义验证Embedded支持支持
  总体而言,Qlik Sense的嵌入灵活度和便捷性更高。但是Power BI这种租用服务的方式也有优势。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-389887-1-1.html 上篇帖子: Azure怎么使用ftp登录 下篇帖子: Win10下 VS2017 安装失败 未能安装包“Microsoft.VisualStudio.AspNet45.Feature,version=15.0.26
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表