【高级应用】PowerBI增量刷新原理揭秘及实战详解

随着 PowerBI 在 2020年2月的更新,增量刷新应该被投票投成了大众货,现在所有小伙伴都可以使用这个功能了。当然,其前提是 PowerBI Pro 账号,也就是 9.9 美金/月/人的 Level,很合理。这彻底将自助式BI分析推向了成规模级。

很多小伙伴跃跃欲试,看着微软的官方文档操作起来,但很快就会发现坑,本文就是用来帮助您正确理解增量刷新本质原理以及实操方法的。

增量刷新的好处

首先来看下增量刷新解决的问题到底是什么,如下:

可以看出:

  • 第一次刷新将历史数据和增量更新数据一起加入,用时:5分钟。
  • 第二次刷新将增量数据刷新进入PowerBI数据集,用时:20秒。

这仅仅是为了测试的示例,这样我们就可以明白,由于历史数据的固定性,一旦构建,就可以不再更改,只需要关注最近的新进数据。

由于 PowerBI 的增量刷新存在一些特点,下面我们来详细解读。

增量刷新的流程

按常识不难想到,增量刷新按以下流程进行:

  • 云端发起刷新。
  • 通过数据网关将刷新请求发送到数据源服务器(如:SQL Server)。
  • 数据源服务器(如:SQL Server)根据时间判断增量,查询出来,通过数据网关传回云端。
  • 云端刷新这部分数据并存储。

这个流程非常重要,不是写写的,你在任何一个坑里出错几乎都是没有充分理解上述步骤的内涵。下面给出一个正确的路线,但对不同的分支和产生的问题,我们将在后续文章继续介绍。

增量刷新的误解和条件

请认真再读一遍流程,并注意里面涉及到的名词和隐含概念。

这里来打消很多小白用户的错误想法,请遵守以下条件:

  • 没有云端账号,无法增量刷新。
  • 没有数据网关和正确配置,无法增量刷新。
  • 没有本地数据源服务器(如:SQL Server)无法增量刷新。
  • 在刷新中传递的查询请求必须是数据源服务器可以理解并执行的,否则无法增量刷新。

所以,以下误区请务必注意:

  • 光有 PowerBI Desktop 无法增量刷新。
  • 不配置数据网关无法增量刷新。(学习BI佐罗《PBI基础》)
  • 一上来就连Excel文件,无法增量刷新,因为Excel文件根本不是服务器。

很明显,增量刷新不是为小白准备的,起码你要打通云上云下,并有数据源服务器(如:SQL Server)

下面,我们从零帮你体验这个流程。

安装 SQL Server

你可以自行搜索安装 SQL Server 的流程,非常简单。几乎是一路下一步。

第一步,下载并安装 SQL Server,官方网址:

https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads

不会安装的小伙伴,请大家自己搜索教程,很简单。

SQL Server 是运行在后台的,因此看不见摸不着。为了可以看得见摸得着,需要安装一个管理工具。

第二步,安装可以看见 SQL Server 的管理工具,官方网址:

https://docs.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15

可以安装中文版。

准备数据

如果你直接可以连接企业的数据库,可以忽略上述过程。

如果你无法找到可以做实验的企业数据,可以自己造,简单方法的大致思路:

  • 在 Excel 里先准备好一票数据,例如:1万行,保存为 csv。
  • 在 SQL Server 里导入这些测试数据。
  • 可以自己搜索如何循环追加,刻意把数据量加大到 1个亿。

请自行搜索按上述思路准备即可,并不难。

最终结果大概是这样:

这样就有了可以测试大量数据表现的样本数据。

在 PowerBI Desktop 进行设置 - 获取数据

用 PowerBI Desktop 连接这些数据,平时怎么连接就怎么连接,但注意:

  • 不要加载,因为数据量很大;
  • 只加载样本数据。

问题是如何只加载样本数据呢?这里需要用到两个重要的系统参数。请先在查询编辑中创建这两个参数,如下:

这两个参数是:RangeStart 和 RangeEnd,请注意:

  • 名字可以写对不?
  • 类型必须是日期时间类型(注意:不能是日期类型)

以 90% 的人都一般栽坑到大小写和缺括号这种问题,那么写对大小写和日期时间类型可以难倒很多人。很多人都在问:老师,我是按照微软文档配置的,为什么不能增量刷新。答案:因为你根本没严格看文档。

具体在配置时,只需这步:

请务必务必注意:

  • 晚于或等于
  • 早于
  • 参数选对

为了样本数据少,这里我们只设置了几天的数据量。

如果你可以认真读到这里并严格操作,你在 PowerBI Desktop 中就可以看到正确的样子了。

在 PowerBI Desktop 进行设置 - 增量刷新策略

点击【增量刷新】可以看到:

这里的意思是:

存储最近 X 天(如:最近 60 天)的数据,并保持刷新最近 Y 天(如:最近 5 天)的数据,如果当天没过完,只刷新到昨天即可。

请注意,你在 PowerBI Desktop 里刷新是没有任何变化的,这个变化要等到你在云端刷新才有用。

配置数据网关

配置数据网关的过程,不再赘述,有很多资源,另外,可以学习我的《PBI基础》。

配置好,你应该确保网关正在运行:

这样可以确保打通云端。

发布并配置

在没有发布前,我们看看 PowerBI Desktop 端的数据量,如下:

按照增量刷新策略:

存储最近 X 天(如:最近 60 天)的数据,并保持刷新最近 Y 天(如:最近 5 天)的数据,如果当天没过完,只刷新到昨天即可。

我们先发布到云端,并配置数据网关,确保:

在云端设置好增量刷新,如下:

一切OK。

首次刷新

在云端进行首次刷新时,会将历史数据和增量数据一起刷入,所以耗时可能较长。

点击刷新按钮。

等待片刻(在这个案例中是5分钟),结果如下:

可以看到:

整个刷新结果是按照刷新策略进行的,也就是:

存储最近 X 天(如:最近 60 天)的数据,并保持刷新最近 Y 天(如:最近 5 天)的数据,如果当天没过完,只刷新到昨天即可。

由于今天是2020.02.19,由于当天没过完,只刷新到昨天即可,因此只刷到2020.02.18。

再次刷新

为了测试效果,我们写入一条数据到数据库,然后再次从云端刷新。

刷新后,可以看到:

增加了一条数据。

刷新时间对比

我们来看两次刷新时间的对比,如下:

不言而喻,增量刷新带来了重要的时间优势。

增量刷新的核心原理

那么很多伙伴会问,他凭什么就可以增量刷新了呢?到底是什么原理呢?下面罗叔就简单介绍并证明给你看。

首先,请再回顾我们说的流程:

  • 云端发起刷新。
  • 通过数据网关将刷新请求发送到数据源服务器(如:SQL Server)。
  • 数据源服务器(如:SQL Server)根据时间判断增量,查询出来,通过数据网关传回云端。
  • 云端刷新这部分数据并存储。

这里的关键在于:

PowerBI Service作为云端,运行的是你写好的Power Query,而这个东西只能运行在 PowerBI 里,对于 SQL Server 是不能运行 Power Query 的,而需要被转换。

因此,细心的同学可以留意到:

你生成的任何 Power Query 都有一个选项叫:查看本机查询,意思是:本机指的就是你的服务器;而本机查询就是服务器的查询,我们点击进去,可以看到:

也就是说,我们用 Power Query 生成的步骤会被转换为 SQL 查询,并在服务器运行。

因此,如果你的【查看本机查询】是灰色的话,例如,如果数据源是 Excel,就会出现:

这说明对 Excel 文件的查询是无法做到真正增量的。即使进行配置,也只能看到:

这里的警告,就是告诉你这个数据源,无法使用本机查询,因此无法做到增量刷新。

那么,对于可以增量刷新的情况,我们怎么知道它确实刷新了5天的数据呢?

我们使用 SQL Server Profile 来监控 SQL Server 的执行,然后在云端发起更新,观察监控的变化,可以发现:

回想我们的增量刷新策略:

存储最近 X 天(如:最近 60 天)的数据,并保持刷新最近 Y 天(如:最近 5 天)的数据,如果当天没过完,只刷新到昨天即可。

因此,增量刷新其实是 5 天的数据,在这里有这样的规律:

  • 恰好有 5 次服务器本地 SQL 查询,发起者是 Microsoft Mashup Runtime,就是数据网关。
  • 查询的结构与在 Power Desktop 中生成的本地查询样式完全一致。
  • 最近 5 天对应的 5 次查询严格地满足没有刷新没有过完的今天。

到这里,我们就彻底理解了其底层原理,那就是:PowerBI服务端连通数据网关将当时设置的参数 RangeStart 和 RangeEnd 根据增量刷新策略换成真正的条件,并由数据网管调用 SQL Server 完成真增量查询。

总结

通过本文,我们彻底理解了 PowerBI 中的增量刷新,包括:

  • 增量刷新的流程及内涵
  • 增量刷新需要的环境
  • 增量刷新的配置方法
  • 增量刷新的底层原理

希望大家自己可以进行实践,增量刷新绝对是一个很重大的特性,它可以帮助我们借助 PowerBI 云端存储大规模数据并使用 PowerBI。

值得指出的是,由于增量刷新的缘故,微软禁止用户从云端再次下载这个 PBIX 文件,这与普通模式是不同的。具体的细节,大家可以结合微软的官方文档参考。

对于增量刷新还有一些补充的说明,我们留到后面的文章再做介绍,但不影响我们可以正常使用这项重要功能了。

(0)

相关推荐

  • SQL Server官方版

    SQL Server官方版是微软发布的新一代数据平台产品.SQL Server官方版不仅具有现有数据平台的强大能力,全面支持云技术与平台,还能够快速构建相应的解决方案实现私有云与公有云之间数据的扩展与 ...

  • 利用网关实现Power BI报告的自动刷新

    上篇文章介绍了如何利用PowerBI制作一个迷你的东京奥运奖牌榜,除了可视化技巧,如果你通过上篇文章的"阅读原文"链接,仔细看过这个报告,会发现数据是自动更新的,报告web链接如下 ...

  • 干货 | Power BI 报表服务器极简安装指南

    本文是PowerBI星球嘉宾天行老师的力作,详细介绍了报表服务器的用处以及安装步骤,看完本文,你也可以轻松用上报表服务器,更方便的分享你的PowerBI报告. Power BI 报表服务器极简安装指南 ...

  • 【IDIC】交互式数据可视化处理工具Microsoft Power BI简介

    [IDIC]原创文章 第2篇 01 前言 相信大家在工作或学习中,会接触很多的数据处理工作,2015-2016年微软发布了Power BI一系列产品,包括PowerBI desktop.PowerBI ...

  • 八字命理揭秘—八字术语详解(上)

    什么是八字术语? 在我国民间,有很多从古代就流传下来的学说以及一些其它宝贵的文化遗产,比如生辰八字或者四柱八字,就是其中的一种,而且是相对比较重要,受人们重视的一种,所谓"术语", ...

  • 八字命理揭秘—八字术语详解(中)

    [从象] 此乃神趣八法之一.算命术中,神趣八法是算命相当重要的方面.其具体内容有:返象.照象.鬼象.伏象.属象.类象.从象.化象.此八法为看命定格之大关键.从象者,如壬水无根,地支全木,谓从木.地支全 ...

  • 八字命理揭秘—八字术语详解(下)

    [官星被合] 指有用正官格而言,格中正官不宜被他柱冲克合破,如被合住,则主官运不通. [官星坐禄] 即正官坐在禄地,如日干乙木以庚金为正官,庚以申为禄,如他柱中有"庚申"为官星坐禄 ...

  • 莲花生动功大揭秘(动作要领详解)

    莲花生动功七节动作详解简介:莲花生动功,又称瑜伽七节健身操,是莲花生大师在习练瑜伽的基础上结合精妙心法创编而成,至今已有1300多年历史. 它仅用七个动作,巧妙地将人体精.气. 神和宇宙自然能量调聚起 ...

  • 维修行业揭秘笔记本电池换芯详解

    对于笔记本电脑来说,电池的重要性不言而喻.如果没有电池,笔记本电脑也就变成台式机或者一体机了.笔记本电池内部由电芯和保护板组成,电芯负责蓄电工作,保护板负责安全工作.电芯属于消耗品,每用一次都会造成容 ...

  • 中小学教师副高级:参与教学改革要做哪些内容详解

    评上副高级教师,很多老师都问,有没有别的路子. 我说,就不要想那么多了. 没有申报的,按文件要求,做好各种准备,申报时,做好材料:已申报没有通过的,找出不通过的原因,做出针对性的准备,来年再战. 除此 ...

  • 《Java 底层原理》String字符串详解

    前言 Java 字符串底层是如何存储的,如何提高性能的,今天就来好好了解一下. 字符串的存储结构 Jvm 有专门的字符串常量池用于存放字符串,存放字符串的数据结构是HashTable. HashTab ...

  • 分享!液力耦合器原理及油路流程详解

    调速型液力耦合器的工作原理 调速型液力耦合器主要由泵轮.涡轮.勺管室等组成,如下图所示.当主动轴带动泵轮旋转时,在泵轮内叶片及腔的共同作用下,工作油将获得能量并在惯性离心力的作用下,被送到泵轮的外圆周 ...

  • 让照片通透的ps全能调色 :色阶工具实战详解及原理

    让照片通透的ps全能调色 :色阶工具实战详解及原理