最近天气不错。有很多的想法,一点点慢慢实践吧。

增量刷新,这个挺有意思的。之前,我们经常说“增量更新”。我觉得,有点类似但也不完全相同。”增量“的含义是一样,都是如果有新增加的数据,就插入到数据源中,只是增量刷新,对时间范围有一定的要求,所以在Power BI中,有一个必须要设定的RangeStart和RangeEnd两个参数。增量更新就无所谓时间概念,对于关键的检查因素,如果遍历之后,有新的数据就插入,对于原来的数据,有其他字段变化,更新变化字段。“增量刷新”会不显示范围之前的数据。“增量更新”没有范围,所以一直增加一直更新。
增量刷新的优点

增量刷新中三个关键点
需要增量刷新的数据是import进数据源的。
可以在建立关系的model页,点击数据表,查看属性“Advanced”里面的存储模式。要求是import的。

数据导入要避免folding issue。简单来说,就是不要用自定义Query。
即下图“SQL statement”为空。

创建参数RangeStart和RangeEnd。这里的两个参数和上一篇分享中的参数效果是不一样的。必须执行RangeStart和RangeEnd这个名字。感觉是Incremental refresh功能内部写了代码,只接收这个参数名称。其他参数名称,Incremental refresh不能使用。

以上三点执行好了,基本就不会出错了。下面开始做一个例子。观察下增量刷新incremental refresh的特别之处。
操作步骤
1. 导入相关的事实表和维度表,建立关系

2. 创建参数
注意参数名称必须是RangeStart和RangeEnd.
这里CurrentValue默认值,可以随便写,是不影响最后的结果的。这里,为了简单。我设置了RangeStart为2020年1月1日,RangeEnd为2020年1月3日。

3. 在事实表中配置参数来控制对事实表数据的筛选。
点中要筛选的数据字段,右键,筛选,自定义筛选。

对于这个数据筛选,为了防止有重复数据,所以不能同时使用等号。
这个是官网说法。但是其实在增量刷新这个功能来说,表面上没有用到这两个参数。我猜应该是后台代码中有使用,并有要求不能同时等于。

4. 设置增量刷新
在Data或者Model页面,点击目标表,都可以找到增量刷新。
这里可以看到,RangeStart和RangeEnd参数没有被使用。这里我要求Power BI存储3个月的数据,并且刷新最近一个月的数据。

5. 创建报表并发布到Power BI service上。
因为在RangeStart和RangeEnd中设置的是>=2020-01-01 and <2020-01-03.所以得到的结果如下图所示。
只有2020年1月1日和2020年1月2日的数据。

发布到Power BI Service上。

6. 找到workspace中的test group,然后在setting里面设置scheduled refresh的时间。这里也可以发现之前建立的两个特别的变量在这里是没有的。即Parameters里面是空的~~~

7. 设置Scheduled refresh来观察下,数据刷新之后的变化,或者像我一样的急性子,直接点击Refresh now。

结果如下:
year month的范围是2020年12月到2021年3月。即使在RangeStart和RangeEnd里面的范围是2020年1月1日到2020年1月2日。数据刷新之后结果如下:

也可以解释,因为在增量刷新中,我设定了存储Store3个月,刷新Refresh最新一个月。

不过增量更新也不是无所不能的。导入模式下的数据集也有极限的。虽然我有premium的账号但是没有上亿条数据做测试,也不敢说会怎么样~~

参考来源官方文档链接如下:
英文:Incremental refresh in Power BI - Power BI | Microsoft Docs
中文:Power BI 中的增量刷新 - Power BI | Microsoft Docs
谢谢关注。又是不咋地的一天。
