导语:Power BI刷新数据时,每次要把所有数据源文件全部读一遍,文件多了,刷新都要等半天……能不能做成增量刷新?
首先,Power BI的增量刷新只能针对部分支持增量机制的数据库(如SQL Server),并且只能由Power BI Pro以上用户在微软云的Power BI Service上进行配置才能实现
但是,大部分朋友(我也是其中一员),日常工作中没有Pro账号,或不能将公司数据发布到云端,或只能使用Power BI Report Server进行本地化部署,而且往往有各种数据源,尤其是大量Excel文件,该怎么办?
针对这种情况,经过摸索找到一个“准增量”的数据处理方式,希望对存在大量历史数据的朋友有所帮助。
很多朋友可能注意到过Power Query里对每个查询,有两个功能选项——“启用加载”、“包含在报表刷新中”:
但是,可能并不是很理解其中的作用和细节,而这是恰恰是我们可以用来做“增量”的关键内容之一——当然还有其他关键内容后面继续讲。
首先,启用加载,比较容易理解,即勾选时,数据才会加载到数据模型:
勾选“包含在报表刷新中”,在Power BI中刷新数据时,该查询的数据才会刷新:
了解了这两个选项的基本作用,我们就可以考虑,是不是可以将大量的历史数据设置为“不”包含在报表刷新中?
比如我们有很多年的数据,那么我们可以将今年以前的数据全部放在“历史数据”中,今年的数据则放在“新数据”中,这样,报表刷新时,历史数据不刷新,只要刷新今年的数据即可。
对的,核心就是这个思路,但是,有几个问题还需要进一步处理:
1、历史数据和新数据怎么合并到一起使用?
2、历史数据是否加载到数据模型?
3、随着时间的推移(比如过了半年一年的),部分“新数据”要移入“历史数据”中不在参与刷新,该怎么处理?
不管怎么样,我们先实现第一步——分别将历史数据和新数据接入Power Query:
Step-01 将数据分成“历史数据”和“新增数据”两个文件夹存放
如:2017年4月以前的数据作为历史数据,后续报表刷新时不再重复读取
Step-02 按从文件夹导入数据的方式分别将两个文件夹的数据接入Power Query
历史数据(his)和新数据(new)的导入方式一致,都是从文件夹导入,然后添加自定义公式Excel.Workbook([Content],true)解析后展开即可,不熟悉的朋友可以查看视频:纯干货!不废话!10集免费视频直发,轻松搞定各种Excel表数据汇总 | Power BI
到这里,有的朋友可能会想,接下来不是很简单了吗?将新数据和历史数据做“追加查询”,然后历史数据不加载、不刷新不就可以了?
然而,这是不行的!因为,一旦新数据引用(追加查询)了历史数据,在新数据刷新时,历史数据仍然会被连带刷新!——这里建议大家自己动手设置试一下,加深体会。
那该怎么办呢?其实也很简单,先将历史数据设置为启用加载但“不”包含在报表刷新中:
新数据保留默认的既启用加载也包含在报表刷新中:
然后,将两个查询结果均加载到数据模型,然后,在Power BI中新建表,通过DAX公式UNION('his','new')将两个查询的数据组合在一起!
此时,当我们在Power BI中刷新数据时,将只刷新new查询(新数据文件夹)中的数据:
此外,因为我们已经将his和new表的数据汇总了,在后面的数据分析中不需要再用到his和new的数据,所以,我们可以将这两份数据进行隐藏:
最后,如果一段时间后,我们将部分“新数据”的Excel文件转入了“历史数据”文件夹,那么,我们可以在Power BI中手工刷新一次“历史数据”:
至此,Power BI数据“增量”刷新的全部关键操作要点全部讲完,主要包括:
1、分历史数据和新数据制作查询;
2、历史数据设置为启用加载,但“不”包含在报表刷新中;
3、在Power BI中通过新建表的方式用Union函数组合历史数据和新数据;
4、隐藏历史数据和新数据;
5、历史数据变动(部分新数据转入)时,在Power BI中手工刷新一次历史数据。
本文分享自 Excel到PowerBI 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!