PowerBI 将要解锁增量刷新(Incremental refresh)功能,这是一个令人期待的更新,使得PowerBI可以加载大数据集,并能减少数据的刷新时间和资源消耗,该功能目前处于预览状态,只对 Power BI Premium 版本开放预览。

增量刷新只是加快了数据集刷新的速度,对于具有潜在数十亿行的大型数据集,可能还是不适合Power BI Desktop,因为它通常受用户桌面PC上可用资源的限制,以及系统的限制。 因此,这些数据集通常在导入时被过滤,以适应Power BI Desktop。 无论是否使用增量刷新,情况仍然如此。

通常情况下,增量是基于时间戳字段的,在数据源更新数据时,同时更新时间戳。PowerBI保存上一次刷新时的时间戳last_timestamp,所有大于last_timestamp的数据行都是新增加的数据行,也就是说,改变的数据行会被加载到PowerBI的数据集中。

我的PowerBI开发系列的文章目录:PowerBI开发

一,启用增量刷新

增量刷新默认是禁用的,启用增量刷新的步骤是:打开选项和设置(Options and Settings)窗口,在全局选项(Global)的 “Preview features” 选项卡中,勾选“Incremental Refresh Policies”,这样就启用了PowerBI Service的增量刷新功能。

目前该功能仍然处于预览阶段,后续可能会被加强,这么酷的一个feature,没有道理会被弃用。

二,设置RangeStart和RangeEnd参数

要在Power BI服务中利用增量刷新,首先需要创建时间区间,这要求用户在Power Query 编辑器中创建RangeStart和RangeEnd参数,该参数的名称是保留名称,类型必须是Date/Time,PowerBI Service使用这两个参数实现数据集的增量刷新。

创建参数的窗口如下图所示,Type必须选择Date/Time类型,并设置默认值(Current Value)。

三,使用参数过滤查询

使用定义的参数RangeStart和RangeEnd,对查询的Date/Time字段进行过滤。选中Date字段,展开 "Date/Time Filters" ,选择“Custom Filter”,

在“Filter Rows”对话框中,设置用于过滤数据行的表达式,如下图所示:

一旦发布PowerBI,那么参数值会被PowerBI Service自动覆盖,这种行为不需要显式设置。

四,定义刷新策略

在PowerBI Desktop中定义刷新策略,在PowerBI Service中应用刷新策略。

在Report视图中,选择被参数RangeStart和RangeEnd过滤的表,右击弹出快捷菜单,点击“Incremental Refresh”,

打开增量刷新的窗口,如下图所示,在该窗口中定义增量刷新的策略:

1,为数据表启用增量刷新

2,定义刷新的区间

数据刷新的区间包括保留区间和增量区间,保留区间为6个月,增量区间为7天,这意味着保留近6个月的数据,当刷新数据时,加载数据的时间区间是:开始日期=当前日期-7天, 结束日期=当前日期

PowerBI会把在6个月之前的数据从Data Set中移除。

在第一次刷新时,PowerBI会一次性加载6个月的数据,这是依次全量刷新,之后的数据刷新都按照该区间进行增量刷新。

3,探测数据变化

当勾选“Detect data changes”选项时,您能选择一个Date/Time列作用时间戳,当探测到该列发生改变时,PowerBI才会启动增量刷新进程。如果该列没有发生任何改变,那就没有必要去刷新数据。

当前的设计要求PowerBI Service保持用于探测数据变化的列不变,并缓存到内存中。

4,只刷新完整日期

当勾选“Only refresh complete periods”时,PowerBI不会加载当天的数据,因为当天的数据不是一天的完整数据。

五,归并更新

PowerBI Service使用基于时间戳的归并方法实现数据集的增量更新,归并更新的实现逻辑是:添加新的数据,对已经存在的数据进行更新,并移除超过保留的时间窗口之外的数据。

例如,以下示例定义了一个刷新策略:

用于存储总共5年的数据,并逐步刷新10天的数据。 如果每天刷新数据集,则将对每个刷新操作执行以下操作:

  • 添加新的一天数据,(添加新的数据);
  • 刷新在当前日期前10天的数据,(对已经存在的数据进行归并更新);
  • 删除当前日期之前超过5年的数据。 例如,如果当前日期是2019年1月1日,则删除2013年的数据,(移除超过保留的时间窗口之外的数据)。

参考文档:

Incremental refresh in Power BI Premium

PowerBI开发 第十三篇:增量刷新的更多相关文章

  1. PowerBI开发 第八篇:查询参数

    在PowerBI Desktop中,用户可以定义一个或多个查询参数(Query Parameter),参数的功能是为了实现PowerBI的参数化编程,使得Data Source的属性.替换值和过滤数据 ...

  2. PowerBI开发 第七篇:数据集和数据刷新

    PowerBI报表是基于数据分析的引擎,数据真正的来源(Data Source)是数据库,文件等数据存储媒介,PowerBI支持的数据源类型多种多样.PowerBI Service(云端)有时不直接访 ...

  3. PowerBI开发 第四篇:DAX表达式

    DAX 表达式主要用于创建度量列(Measure),度量值是根据用户选择的Filter和公式,计算聚合值,DAX表达式基本上都是引用对应的函数,函数的执行有表级(Table-Level)上下文和行级( ...

  4. PowerBI开发 第四篇:DAX 表达式基础

    DAX 表达式主要用于创建度量列(Measure),度量值是根据用户选择的Filter和公式,计算聚合值,DAX表达式基本上都是引用对应的函数,函数的执行有表级(Table-Level)上下文和行级( ...

  5. PowerBI开发 第十一篇:报表设计技巧(更新)

    PowerBI版本在持续的更新,这使得报表设计能够实现更多新的功能,您可以访问 PowerBI Blog查看PowerBI的最新更新信息,本文总结了PowerBI新版本的重要更新和设计技巧. 我的Po ...

  6. PowerBI开发 第五篇:关系和交互

    PowerBI 使用 内存的列式数据库 VertiPaq,用于对已发布的数据集进行数据压缩和快速处理,能够使PowerBI报表执行脱机访问,面向列的处理,高度优化对1:N关系的处理性能.关系是数据分析 ...

  7. PowerBI开发 第三篇:报表设计技巧

    最近做了几个PowerBI报表,对PowerBI的设计有了更深的理解,对数据的塑形(sharp data),不仅可以在Data Source中实现,例如在TSQL查询脚本中,而且可以在PowerBI中 ...

  8. PowerBI开发 第五篇:关系的设计

    PowerBI 使用 内存的列式数据库 VertiPaq,用于对已发布的数据集进行数据压缩和快速处理,能够使PowerBI报表执行脱机访问,面向列的处理,高度优化对1:N关系的处理性能.PowerBI ...

  9. PowerBI开发 第十篇:R 脚本

    R是一种专门用于数据分析和统计的脚本语言,广泛应用在每一个需要统计和数据分析的领域.PowerBI支持R脚本,只不过,PowerBI Desktop默认没有安装R.在使用R脚本之前,必须向PowerB ...

随机推荐

  1. mysql的又一个让人捉摸不透的bug?

    这次就不说很多没有写博客了,因为前几天已经写过了.\^o^/ 昨天我们刚讨论了关于自动化运维工作的实现方式,如果批量执行,中间出错怎么办?突然有人提出mysql支持--force,可以跳过出错继续执行 ...

  2. Oracle EBS INV创建保留

    CREATE or REPPLACE PROCEDURE CreateReservation AS -- Common Declarations l_api_version NUMBER := 1.0 ...

  3. 谨慎使用MyBatis自动生成Where语句

    最近监控到类似这样一个慢查询: select XX_time from XXOrderInfo WHERE ( OrderId is not null and OrderId = N'xxxx') x ...

  4. MySQL索引背后的数据结构及算法原理(employees实例)

    摘要 http://blog.codinglabs.org/articles/theory-of-mysql-index.html 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特 ...

  5. Zabbix添加Ping外网IP监控

    1.先添加一个HOST,只填写IP即可,如10.1.1.1 2.选择一台客户端,新建item,如下: 3.新建trigger: 注:icmpping[<target>,<packet ...

  6. Linux 辅助命令

    0. 说明 记录在 Linux 使用过程中的一些有帮助的命令 1. 命令集合 [1.1 错误输出重定向] # 将错误信息重定向到 /dev/null source /xxx >/dev/null ...

  7. 【洛谷】【单调栈】P1901 发射站

    [题目描述:] 某地有 N 个能量发射站排成一行,每个发射站 i 都有不相同的高度 Hi,并能向两边(当 然两端的只能向一边)同时发射能量值为 Vi 的能量,并且发出的能量只被两边最近的且比 它高的发 ...

  8. div宽度随屏幕大小变化

    题目: 一个页面上两个div左右铺满整个浏览器, 要保证左边的div一直为100px,右边的div跟随浏览器大小变化, 比如浏览器为500,右边div为400,浏览器为900,右边div为800. 方 ...

  9. mysql刚启动就停止是什么原因

    1.找到mysql安装目录,将其配置文件my.default.ini改名为my.ini,并且将my.ini移至bin目录下. 2.启动命令行,将目录切换到mysql安装目录的bin目录下.3.接下来, ...

  10. WorldWind源码剖析系列:日志类Log

    Utility工程中的日志类Log主要用来输出Debug状态下的调试信息.该类的类图如下: 日志类Log中使用到的类和内嵌结构体类型主要有以下这些: public class LogEventArgs ...