前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【高级应用】PowerBI增量刷新原理揭秘及实战详解

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

作者头像
BI佐罗
发布2020-02-26 11:48:12
4.4K0
发布2020-02-26 11:48:12
举报
文章被收录于专栏:PowerBI战友联盟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 文件,这与普通模式是不同的。具体的细节,大家可以结合微软的官方文档参考。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI战友联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 增量刷新的好处
  • 增量刷新的流程
  • 增量刷新的误解和条件
  • 安装 SQL Server
  • 准备数据
  • 在 PowerBI Desktop 进行设置 - 获取数据
  • 在 PowerBI Desktop 进行设置 - 增量刷新策略
  • 配置数据网关
  • 发布并配置
  • 首次刷新
  • 再次刷新
  • 刷新时间对比
  • 增量刷新的核心原理
  • 总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档