数据可视化之powerBI技巧(二十二)利用这个方法,帮你搞定Power BI"增量刷新"

Power BI的增量刷新功能现在已经对Pro用户开通,但由于种种限制,很多人依然无法使用无这个功能,所以,每一次刷新,都要彻底更新数据集。这对于量级比较大的数据集来说,着实是一件耗费时间的事情。

拿我的亲身经历举个例子,我有一份报表涵盖了客户近3年的销售情况,由于客户的业务流量比较大,数据集的每一次手动刷新都在15分钟左右,而计划刷新更是会延迟到35分钟左右,严重影响到报表的日常使用。

不过呢,聪明如我( 偷笑 ),我还是发掘到了一个十分简单的”增量刷新”解决方案,使用一个DAX函数就可以实现。希望我以下的分享可以给你带来一些灵感。

在这里,我仍然使用NorthWind数据库做演示,分别导入Orders表格以及Customers表格。

 

首先,在PowerQuery将数据集里,将包含了近三年销售详情的Orders表分为三张: Orders 2017, Orders 2018, Orders2019,里面分别包括了当年的所有销售订单。

 

 

实现步骤为:

1. 复制两份Orders表格,分别重命名。

2. 对OrderDate日期列进行操作,筛选出当年的销售数据 :

方法一 : M代码( 以Orders 2017的日期筛选为例 )

"Lignes filters" = Table.SelectRows(#"Colonnessupprimées", each [OrderDate] >= #date(2017, 1, 1) and [OrderDate]<= #date(2017, 12, 31))

 

方法二 : 或在PQ界面,点击OrderDate列筛选实现,

 

将销售表格成功分割为三个年份的表格后,还要取消2017和2018这两张表格的刷新资格(这一步非常重要)。

具体操作为,分别鼠标右击这两个表格,取消勾选“包含在报表刷新中”。

也就是说,在下一次更新数据集时,这两张表格将不被刷新,不会再重新载入数据。

写到这里,应该有一些小伙伴已经看出来我的意图了 : 更新的时候只刷新2019年的销售数据,然后再合并这三张表,获取一个完整的Orders表格,不就约等于只刷新新增数据了吗。没错!就是这样。

所以接下来,我们要做的就是: 合并这三张表格。

那么问题来了,应该在PQ里直接合并吗?

 

答案是否定的。

因为如果在PQ里以Orders2019作为主表格对它们进行合并,2018和2017两张表格虽然被取消了刷新资格,但是作为2019的附属表格,还是会被刷新,会被重新载入数据。

不过,在PowerBI里,我们还可以借助一个函数UNION来实现表格的合并。并且UNION可以帮助我们实现增量刷新的目的。

导入数据后,回到PowerBI操作界面,点击工具栏里的”新建表”,使用DAX函数创建一个新的表格 Orders。

 

这里用到的DAX表达式为:

 

Orders =UNION('Orders 2017';'Orders 2018';'Orders 2019')

 

新表格创建成功后,来到关系视图,可以使用新创建的表格建立需要的关联关系。

 

 

点击刷新数据验证一下三张Orders表格里,是否只有Orders2019被刷新。

 

到这里,我的小技巧就施展完成了。

最后,大家别忘了在表格列表里隐藏 Orders 2017, Orders2018, Orders 2019 这三张表格,假装什么都没有发生过一样。

 

或许看完之后你会说,这根本就不算真正的增量刷新。是的,这里我只是在”模仿”增量刷新,在PowerBI Desktop中只加载需要更新的表,同样可以缩短刷新的时间,这不就是我们期望的结果么?

利用这个方法确实部分解决了我的困扰。你也可以顺着这个思路,单独分出近一个季度,近一个月的数据,然后只刷新这部分数据。

感谢大家的阅读。

 

/推荐阅读/

01 「PowerBI星球」内容合辑

02 PowerBI数据分析应用:客户购买频次分布

03 数据分析实战案例,帮你全面认识 PowerBI

posted @ 2020-04-29 18:06  秋华  阅读(2061)  评论(0编辑  收藏  举报