分享

高效使用Power BI的15条建议

 PowerBI星球 2021-06-22

PowerBI是一个强大的工具,它的大数据处理能力、丰富的可视化对象、便捷的交互体验正在改变越来越多的人查看数据的方式。

但同时也有很多人抱怨PowerBI运行速度太慢:打开慢、刷新慢、响应慢,你在使用过程中是不是也有此体会呢?

本文就来谈谈如何高效的使用PowerBI,这里的高效,是指当你有一个想法并告诉PowerBI,它能快速响应你的操作,得出期望的结果,而不是漫长的等待。

当然导致PowerBI运行速度慢的原因有很多,比如设备因素、网络速度、数据的量级等等,抛开这些客观因素,这里主要说一下,你平时的操作习惯,也许是拖慢PowerBI的主要原因。

关于如何高效的使用PowerBI,这里有15条建议,希望对你有帮助:)


01 过滤源数据

仅从数据源导入需要的数据表,而避免导入与分析无关的数据。

比如你只是分析销售情况,把订单表和相应的维度表导入进来就可以了,没有必要把人事、物流等各种数据也导进来。

即使是导入订单表,也仅导入分析所需的行,如果你要分析的是过去三年的情况,就不要试图导入所有的历史记录。

02 删除无关列

删除与分析无关的列,可以显著的降低内存占用。

比如从CRM系统提取过来的订单表,可能有几十列,而分析需要的可能只是某几列,那么其他的数据列要果断的删除。

03 聚合分析粒度

数据源中的表经常是最细颗粒度的数据,及时聚合到分析的维度是必要的。

比如订单表, 订单时间可能精确到某一天的几点几分几秒,而要分析的粒度可能是月份、季度和年份,那么尽早将数据聚合到分析的粒度,就可以显著的降低数据的行数。

04 整理字段

数据导入进来以后,一般情况下我们只是看看数据类型是否正确,而不做更细的整理,其实以下的操作可以减少内存的占用:

舍入数字以删除多余的小数位;

将日期中不用的分秒数据舍去;

将日期时间型数据拆分为日期列和时间列;

将可拆分的一个文本列,拆分为两列,比如某一列的数据是省份+城市,将其拆分为省份列和城市列。

05 禁用不必要的加载

对于最终模型中不需要的表,禁用加载至关重要。

从数据源将导入数据到PowerQuery编辑器之后,我们一般会进行各种转换,比如将多个表合并到一个表中,或许最终我们使用的是合并表。但在默认情况下,点击"上载"之后,PQ中的所有表都会加载到Power BI模型的内存中。

选中不需要的表,右键>属性:去掉“启用加载到报表”的勾选,


在属性窗口,还有一项可以设置,如果某个表是固定的数据,不需要刷新,可以只加载,而不刷新数据,同样节省数据处理时间。

06 禁用系统日期表

禁用内置的日期表,可以提升PowerBI的运行速度。

PowerBI 会自动为模型中的每个日期字段创建内置日期表,以支持时间智能函数。这些表是隐藏的,它们消耗内存,因此及时打开选项,去掉“自动日期/时间”的勾选,

并且系统日期表无法灵活的添加自定义列,建议大家进行数据分析时,创建自己的日期表,关于日期表的制作请参考:玩PowerBI必备的日期表制作方式汇总

07 选择适当的数据类型

确保所有列都具有正确、精准的数据类型,我们往往更关注类型是否正确,而不太关注类型是否精准。

比如:我们一般更关注是文本型还是数值型,而对于数值型,其实还可细分为整数型和小数型,他们两个都是数值型,不会影响运算结果,但会影响运算效率,尽量直接修改为最合适的数据类型,可以用整数型就不要用小数,能用定点小数就不要用浮点小数。

08 选择合适的连接方式

Power BI主要有两种连接模式:import和DirectQuery,对于一般的数据源,应尽可能使用import方式将数据导入到PowerBI,Import利用Power BI的高性能查询引擎,为你提供高度互动和全功能的体验。

但是,如果通过import无法满足你的目标,请考虑使用DirectQuery。 

关于DQ的优势和限制,请参考官方文档:

https://docs.microsoft.com/en-us/power-bi/desktop-directquery-about

09 避免使用计算列

从Excel带过来的“坏习惯“之一就是更偏好使用计算列,它的结果可以直观看到,但计算列带有隐藏成本,它更消耗内存,会增加数据刷新时间。

一种更有效的方法是使用度量替换计算列,度量值不占用内存,只有在上下文中才进行计算,所以尽早养成使用度量值的好习惯!

10  不断优化DAX

刚开始学习时,对DAX的要求很低,只要能正确的计算出结果就行,但随着学习的深入,你还应了解一些函数的计算原理,不断寻找更好的函数和更快的代码。

比如:SUMMARIZECOLUMNS函数的性能明显优于ADDCOLUMNS+SUMMARIZE组合;使用VAR定义变量的方式处理速度会更快等。

解决同一个问题,会有不同的方案,识别并选择最优的那一个!

这方面需要不断积累。

11  尽量使用默认可视化对象

能用默认的图表就不要使用自定义图表,能用简单的图表进行表达的,就不要使用高度复杂的可视化。

比如能用简单柱形图就可以清晰展现的,就没有必要使用地图。

(来源:经济学人)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多