34343bed598cb61b2efc7924dcc6f114.png

(正文开始)

问题描述:随着我们应用PowerBI越来越熟练,在工作中创建了很多的仪表盘,可能存在这样一个通用问题:“数据加载!”。原因可能有多种,一方面确实是数据量非常大;另一方面,则是我们的数据模型或者仪表盘中有部分不合理的地方,需要我们去优化,那么,如何优化呢?

本文尝试着做一个总结,给大家做参考,欢迎对此感兴趣的童鞋积极交流,相互学习,共同成长!

(声明):此乃一家之言,由于能力有限,或有不当之处,还望大虾批评指正,帮我提升!

第一部分 PowerBI使用建议

我从3方面进行总结:数据清洗阶段、数据建模阶段、数据可视化阶段。

一、数据清洗阶段

我们在本阶段,通过Power Query加载数据,并进行清洗,可依以下建议进行:

1、仅加载需要的数据:表、列、行

2、维度表不用勾选“在报表中刷新”,在周期到后再手动刷新

d23bf14a0cf29b300b322f5888a09f72.png

3、事实表根据周期分块管理(年、季度等),结合第2个建议进行优化

4、事实表根据分析粒度,判断是否需要进行聚合

5、SQL Server:Import优于Direct Query

6、SSAS:Connect Live优于Import

… …

二、数据建模阶段

关于本阶段,之前有文章进行描述,见《PowerBI:数据建模需要注意的地方 V1.0》,这里进行提炼如下:

1、表+关系+布局

2、表:事实表+维度体系表+指标体系表

3、维度表:角色维度

4、关系:表关系+层级关系、数据流向

5、布局:星型、雪花、漏斗

6、避免使用 计算列(新增维度)

7、避免使用 迭代器(度量值)

8、友好性:隐藏不需要的字段(key)、名称(表、列、度量值等)

… …

三、数据可视化阶段

1、从左到右/从上到下:粒度由大到小

2、允许下钻

3、What If参数控制

4、减少过滤器使用

5、避免花哨图表(建议多用点、线图)

6、多用图、少用数字(一图胜千言)

7、避免使用 迭代器(度量值)

8、颜色、布局、主题名称、Logo

… …

第二部分 工具推荐

“工欲善其事必先利其器”,关于这部分内容,推荐两款工具:DAX Studio、Vertipaq Analyzer。

1、DAX Studio

通过它,我们不仅可以导出数据,还可以监控分析到底是哪些DAX度量值编写存在问题,耗时最长,从而为我们优化指明方向。

fa31420de330c927320d951fa2e38820.png

a8e998b2b54c57bf73d47c6ae671e78b.png

比如,如上图,我们知道有一个度量值耗时4秒,通过分析,我们知道此度量值中使用了Filter迭代器,也就是说使用了循环,这也就是我们在数据建模阶段建议7中所给的建议:度量值中尽量要避免使用迭代器,因为它会增加代码执行的时间复杂度,从而降低效率。

2、Vertipaq Analyzer

截止本文发表,最新版本是1.92,它是PowerBI动态管理视图(DMV)的集成应用,可以让我们了解数据模型详细信息,比如:有多少表、多少列、都耗费多少资源、关系有哪些、层次结构有哪些、度量值有哪些、计算列有哪些等等,我们通过它了解到数据模型详细信息后,再遵循第一部分的建议,就非常清楚,该怎么去优化模型了。

26b3911f61b465662e2a1e419d8904cb.png

总结:模型的优化是一个通用性、开放性的问题,如果机器性能非常棒,差的模型也能很流畅的运行,但要是模型做了最大优化,再加上高性能的机器,岂不是更好!

以上就是鄙人的一些观点,不当之处还望批评指正!

(正文结束)

广告:

1、本文所涉及的示例数据以及案例,请在知识星球“PowerBI有问必答”同名主题中下载。

2、同步详细视频已更新至网易云课堂与51CTO课堂《高级篇:DAX精讲》课程中,包含2节视频,共计40分钟。

3、点击“阅读原文”可直接跳转至网校。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐