利用这个方法,帮你搞定Power BI_Power BI本文来自AgnesJ的分享,关于PowerBI增量数据的刷新,一直是令人头疼的问题,今天AgnesJ介绍了一个小技巧,帮你变相实现“增量刷新”。

 


 

利用这个方法,帮你搞定Power BI"增量刷新" FAKE incrimental refresh in PowerBI

作者:AgnesJ

 

Power BI的增量刷新功能目前是Premium的一项”特权”,免费用户和Pro用户无法使用PowerBI原生的增量刷新功能,所以,每一次刷新,都要彻底更新数据集。这对于量级比较大的数据集来说,着实是一件耗费时间的事情。

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

 

 

利用这个方法,帮你搞定Power BI_Power BI_02

 

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

 

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

 

利用这个方法,帮你搞定Power BI_Power BI_03

 

 

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

 

利用这个方法,帮你搞定Power BI_Power BI_04

 

 

实现步骤为:

 

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列筛选实现,

 

利用这个方法,帮你搞定Power BI_Power BI_05

 

 

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

 

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

 

利用这个方法,帮你搞定Power BI_Power BI_06

 

 

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

 

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

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

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

 

答案是否定的。

 

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

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

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

 

利用这个方法,帮你搞定Power BI_Power BI_07

 

 

这里用到的DAX表达式为:

 

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

 

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

利用这个方法,帮你搞定Power BI_Power BI_08

 

 

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

 

利用这个方法,帮你搞定Power BI_Power BI_09

 

 

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

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

 

利用这个方法,帮你搞定Power BI_Power BI_10

 

 

 

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

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

不过,好消息是Power BI官方宣布近期会将增量刷新的功能开放给Pro用户,我们拭目以待吧。

 

感谢大家的阅读。