前些天的文章中阐述了使用参数的改变来实现本地desktop创建模型、修改模型使用小的数据集,而云端service刷新使用大的数据集:
获取的是本地文件夹中的文件。今天来说一说其他的数据来源。
SharePoint,或者Onedrive for Business
并且,上一篇文章中的方法,其实每次更新模型之后都需要在网页端进行修改参数,有些麻烦。因此本文也将重点说明如何让数据集自动在本地desktop中刷新小数据集,上了云之后刷新大数据集。
设置过程
首先,需要从onedrive for business获取文件夹,关于这一点之前已经有多篇文章介绍过:
PowerBI从Onedrive文件夹中获取多个文件,依然不使用网关
针对“PowerBI从Onedrive获取文件”两篇文章做个补充
慎用SharePoint.Files,在Power BI中更快地刷新Excel文件
注意:坑很多, 设置也比较繁琐。学谦已经制作了一个pbit模板文件,加入学谦powerbi知识星球即可获取。按照如下的参数填写即可。
点击登录之后,每个table也就是一个文件夹中包含很多的文件:
接下来我们的目的已经非常明确了,我们要实现的是:
在本地desktop刷新时,只保留【数据表-小】;在云端service刷新时, 只保留【数据表】
那么问题来了,如何实现?
可以先思考一下。
这里给出一个实现该目标的终极提示:
本地desktop刷新与云端service刷新时有什么不一样?
有没有什么函数返回结果是不同的?
答案揭晓:
对,就是时区!
本地刷新时自动获取的时区是东八区(其他地区数字不同),而到了云端刷新时是按照格林尼治时间也就是0区。
我们将这个8给提取出来:
报告中显示:
云端刷新一下:
好了!
我们找到了一个云端和本地刷新时的不同点了,接下来就可以通过这两个数字的不同去筛选不同的表了!
添加一个自定义列,【数据表-小】对应0,【数据表】对应8:
经过几步条件设置可以得到本地刷新时【数据表-小】对应1,【数据表】对应0,而这一数值在云端刷新时刚好反过来:
筛选1,然后展开与合并表即可:
本地刷新与云端刷新时两个表对应的【是否刷新】值:
由于只有2个表2万多行,本地刷新很快:
大数据集有270个文件,每个文件1万多行:
最后一次刷新的时间就是云端自动刷新了大数据集,花了6分钟:
因为数据量确实比较大:
结论
本文介绍了从onedrive for business中获取数据的方式,本地desktop刷新小数据集,云端service自动刷新大数据集的设置方式。
该方法既满足了本地创建报告、修改报告时对于小数据量小模型的追求,又满足了云端刷新时需要全部数据的要求。
悬念
如果数据源是数据库呢?又该如何操作才能实现这种大小的转换呢?
请大家先自行思考!
本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!