学习笔记3:Power BI中的增量刷新Incremental refresh

浏览: 1682

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

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

  • 增量刷新的优点

  • 增量刷新中三个关键点

  1. 需要增量刷新的数据是import进数据源的。

    可以在建立关系的model页,点击数据表,查看属性“Advanced”里面的存储模式。要求是import的。


  2. 数据导入要避免folding issue。简单来说,就是不要用自定义Query。

    即下图“SQL statement”为空。

  3. 创建参数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


谢谢关注。又是不咋地的一天。

推荐 0
本文由 懒胖子 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册