按照惯例,还是先来一个平平无奇的视频:
http://mpvideo.qpic.cn/0b2e3eaauaaakqacic6epvqvbwodblmqacqa.f10002.mp4?dis_k=7ea24a6f14a97dfa56dff06ecd69bd77&dis_t=1640589329&vid=wxv_2192021360841900033&format_id=10002&support_redirect=0&mmversion=false
ALL in ONE,全部在一个页面中。
5秒以内的延迟,几乎可以定义为实时。
流数据集,仪表板,自动刷新。
任何想要的维度汇总,随意添加。
几乎可以称得上“完美”。
这才是PowerBI该有的样子。
详细说明
01
预期目标
在Power BI中,单页面无跳转实现对数据源添加数据,并实时展示各时间维度与其他维度的详细报告。
02
要求说明
只能使用Microsoft产品,不借助于其他编程工具或语言。
03
思考过程
要实现实时动态展示,必须走仪表板,流数据集。这是末端展示。
要实现自动更新流数据集,必须用Power Automate。此为中间跳板。
要实现对在报告中直接输入,无任何跳转,需要使用Power Apps。这是源头输入。
画一下流程图:
所以问题就简化为:如何在Power Apps 和Power Automate之间建立关联。如果我们可以直接从Power Apps通过Power Automate写入流数据集,那再好不过了,也就是中间的“???”这一步可以直接省略。
但是:
我仔细查看了一遍Power Automate中的PowerApps模块,它并不会直接输出数据到Power Automate中,也就是说在PowerApps和Power Automate之间必须有一个其他的什么东西,也就是上面图中的第二个步骤的“???”。
那么它是什么呢?
首先我们很自然地会想到,PowerApps会往哪里面输出呢?
答案有很多:azure,Excel online,SharePoint,planner,dataverse等等这些都可以。
我选择了SharePoint列表,因为这玩意儿我经常用:
这个Power Automate模板是当在SharePoint中创建新行的时候,会自动发送一个带着这一行信息的邮件,经常用于公司设备维修报备等场景。
我们把这个模板稍微修改一下,不就可以实现:当向SharePoint添加行时,自动向流数据集添加数据吗?
so:
04
实现
我们在PowerApps中输入数据,将数据存放在SharePoint列表中:
列表中一旦添加行,触发Power Automate向数据集添加行:
使用该数据集创建报告,并在报告中添加PowerApps组件:
发布报告并将组件展示在仪表板中:
如何应对极度刁钻的甲方:Power BI处理非结构化流数据集思路
就出来文章一开始所展示的视频了:
ALL in ONE,全部在一个页面中。
5秒以内的延迟,几乎可以定义为实时。
流数据集,仪表板,自动刷新。
任何想要的维度汇总,随意添加。
几乎可以称得上“完美”。
这才是PowerBI该有的样子。
后话
Microsoft的生态确实非常完善,搭配使用,会起到意想不到的效果。这几个组件也正好都隶属于Power Platform。