数据可视化之powerBI技巧(二十二)利用这个方法,帮你搞定Power BI"增量刷新"
Power BI的增量刷新功能现在已经对Pro用户开通,但由于种种限制,很多人依然无法使用无这个功能,所以,每一次刷新,都要彻底更新数据集。这对于量级比较大的数据集来说,着实是一件耗费时间的事情。
拿我的亲身经历举个例子,我有一份报表涵盖了客户近3年的销售情况,由于客户的业务流量比较大,数据集的每一次手动刷新都在15分钟左右,而计划刷新更是会延迟到35分钟左右,严重影响到报表的日常使用。

不过呢,聪明如我( 偷笑 ),我还是发掘到了一个十分简单的”增量刷新”解决方案,使用一个DAX函数就可以实现。希望我以下的分享可以给你带来一些灵感。
在这里,我仍然使用NorthWind数据库做演示,分别导入Orders表格以及Customers表格。

首先,在PowerQuery将数据集里,将包含了近三年销售详情的Orders表分为三张: Orders 2017, Orders 2018, Orders2019,里面分别包括了当年的所有销售订单。

实现步骤为:
1. 复制两份Orders表格,分别重命名。
2. 对OrderDate日期列进行操作,筛选出当年的销售数据 :
方法一 : M代码( 以Orders 2017的日期筛选为例 )
"Lignes filters" = Table.SelectRows(#"Colonnessupprimées", each [OrderDate] >= #date(2017, 1, 1) and [OrderDate]<= #date(2017, 12, 31))
方法二 : 或在PQ界面,点击OrderDate列筛选实现,

将销售表格成功分割为三个年份的表格后,还要取消2017和2018这两张表格的刷新资格(这一步非常重要)。
具体操作为,分别鼠标右击这两个表格,取消勾选“包含在报表刷新中”。

也就是说,在下一次更新数据集时,这两张表格将不被刷新,不会再重新载入数据。
写到这里,应该有一些小伙伴已经看出来我的意图了 : 更新的时候只刷新2019年的销售数据,然后再合并这三张表,获取一个完整的Orders表格,不就约等于只刷新新增数据了吗。没错!就是这样。
所以接下来,我们要做的就是: 合并这三张表格。
那么问题来了,应该在PQ里直接合并吗?
答案是否定的。
因为如果在PQ里以Orders2019作为主表格对它们进行合并,2018和2017两张表格虽然被取消了刷新资格,但是作为2019的附属表格,还是会被刷新,会被重新载入数据。
不过,在PowerBI里,我们还可以借助一个函数UNION来实现表格的合并。并且UNION可以帮助我们实现增量刷新的目的。
导入数据后,回到PowerBI操作界面,点击工具栏里的”新建表”,使用DAX函数创建一个新的表格 Orders。

这里用到的DAX表达式为:
Orders =UNION('Orders 2017';'Orders 2018';'Orders 2019')
新表格创建成功后,来到关系视图,可以使用新创建的表格建立需要的关联关系。

点击刷新数据验证一下三张Orders表格里,是否只有Orders2019被刷新。

到这里,我的小技巧就施展完成了。
最后,大家别忘了在表格列表里隐藏 Orders 2017, Orders2018, Orders 2019 这三张表格,假装什么都没有发生过一样。

或许看完之后你会说,这根本就不算真正的增量刷新。是的,这里我只是在”模仿”增量刷新,在PowerBI Desktop中只加载需要更新的表,同样可以缩短刷新的时间,这不就是我们期望的结果么?
利用这个方法确实部分解决了我的困扰。你也可以顺着这个思路,单独分出近一个季度,近一个月的数据,然后只刷新这部分数据。
感谢大家的阅读。
/推荐阅读/
数据可视化之powerBI技巧(二十二)利用这个方法,帮你搞定Power BI"增量刷新"的更多相关文章
- 数据可视化之powerBI技巧(十二)学会这几个度量值,轻松获取前N名
数据中的明细项一般都有很多,可是我们关注的往往只是前几名,所以在报表中只展示关注的部分,就十分常用. 有了上篇(这几个示例,帮你深入理解RANKX排名)关于排名的铺垫,仅显示前N名就简单多了. 依然以 ...
- 数据可视化之powerBI基础(十二)PowerBI导入Excel数据有哪几种方式?
https://zhuanlan.zhihu.com/p/64999937 Excel作为使用最频繁.应用最广泛.用户最庞大的数据处理工具,当然也应该是PowerBI最常用的数据获取方式,本文介绍一下 ...
- 数据可视化之powerBI入门(十二)PowerBI中最重要的函数:CALCULATE
https://zhuanlan.zhihu.com/p/64382849 介绍DAX的时候,特别强调过一个重要的函数:CALCULATE,本文就来揭秘这个函数的计算原理以及它是如何影响上下文的. C ...
- 数据可视化之powerBI技巧(十八)Power BI动态技巧:动态显示列和度量值
今天分享一个可视化小技巧,如何在PowerBI的表格中动态显示需要的列? 就是这样的效果, 也就是根据切片器的筛选,来显示需要的列,做起来很简单,步骤如下: 01 逆透视表 进入Powerquery编 ...
- 数据可视化之powerBI技巧(十六)采悟:PowerBI作图技巧:动态显示可视化标题
默认情况下,PowerBI图表的标题是静态的,为了增强图表的可读性,通过设置动态标题,可快速展示关键信息.提升沟通效率.本文通过两个简单的例子来看看PowerBI中如何创建动态标题. /01/ 拿之前 ...
- 数据可视化之powerBI技巧(十九)DAX作图技巧:使用度量值动态分组和配色
有了前两篇关于分组的铺垫,这篇文章就来学习一个分组的经典应用,图表的动态分组,并对分组动态配色. 假设有十几个产品,每个产品的销售额,是随着时间而变化的,想知道某个时间的每一个产品的销售额与平均销售额 ...
- 数据可视化之powerBI技巧(十五)采悟:Power BI动态技巧:动态显示数据层级
今天给大家分享一个动态显示数据层级的技巧,效果如下: 无论想按什么维度.什么顺序查看分析数据,只需要选择不同的切片器组合就行了. 方法如下:01 | 把数据聚合为分析需要的最细粒度 本文假设最细分析粒 ...
- 数据可视化之powerBI技巧(十四)采悟:PowerBI中自制中文单位万和亿
使用PowerBI的时候,一个很不爽之处就是数据单位的设置,只能用千.百万等英美的习惯来显示,而没有我们中文所习惯的万亿等单位,虽然要求添加"万"的呼声很高,但迟迟未见到改进动作, ...
- 数据可视化之powerBI技巧(十)利用度量值,轻松进行动态指标分析
在一个图表中,可以将多项指标数据放进去同时显示,如果不想同时显示在一起,可以根据需要动态显示数据吗?在 PowerBI 中当然是可以的. 下面就看看如何利用度量值进行动态分析. 假如要分析的指标有销售 ...
随机推荐
- talonspilder的的提问
有个问题:我的代码是: [1]summary=TextField(css_select="#intro>p") [2]def tal_summary(self,summary ...
- Hystrix总结
Hystrix 能使你的系统在出现依赖服务失效的时候,通过隔离系统所依赖的服务,防止服务级联失败,同时提供失败回退机制,更优雅地应对失效,并使你的系统能更快地从异常中恢复. Hystrix能做什么? ...
- BERT的前世今生
Transformer Transformer来自论文: All Attention Is You Need 别人的总结资源: 谷歌官方AI博客: Transformer: A Novel Neura ...
- MySQL按指定字符合并及拆分
按照指定字符进行合并或拆分是经常碰到的场景,MySQL在合并的写法上比较简单,但是按指定字符拆分相对比较麻烦一点(也就是要多写一些字符).本文将举例演示如何进行按照指定字符合并及拆分. 1. 合并 M ...
- pick靶场-sql注入
甲.数字型注入 数字型注入一般提交值没有引号,所以直接在后面构造语句就可以了. 抓包查看 构造语句 提交后 该数据库表内容被爆出来了. 乙.字符型注入 首先我们要知道一点,字符串在数据库中提交是需要用 ...
- 并发02--JAVA内存模型
在并发编程中,需要解决两个问题:线程间如何通信&线程间如何同步 线程同步:控制不同线程操作顺序的机制 解决这两个问题的方案有两种:共享内存&消息传递 共享内存:通过使用共享内存,隐式通 ...
- SpringBoot--异常统一处理
先上代码,不捕获异常和手动捕获异常处理: @GetMapping("/error1") public String error1() { int i = 10 / 0; retur ...
- Flask项目实战:创建电影网站(2)
flask网站制作后台时候常见流程总结 安利一个神神器: 百度脑图PC版 创建数据库 下面是创建User数据库,需要导入db库 #coding:utf8 from flask import Flask ...
- [SCOI2016]背单词 题解
背单词 https://www.luogu.com.cn/problem/P3294 前言: Trie树的省选题(瑟瑟发抖QAQ) 问题汇总:(请忽略) (1)对Trie字典树的运用不熟练 (2)没想 ...
- python 批量重命名文件
# -*- coding: utf-8 -*- import os import sys def rename(): path = input("路径(例如D:\\\\picture):&q ...