Power BI 微课堂 | 第8课:修复性能问题
今天,我们继续来学习:修复性能问题,了解 Power BI 中可用的性能调优工具,及其应用效果的差别与优势。
》优化 Power Query 中的性能
有时候,企业用户难免会遇到运行报表时出现的性能问题,该如何解决呢?Power BI 中提供了性能分析器工具,可以帮助你解决问题并简化此过程。
假设,你需要为企业中的销售团队创建报表。你通过 DirectQuery 创建了到销售团队的 SQL 数据库的数据连接,进而导入了该数据库内多个表的数据。
但在初步创建视觉对象和筛选器时,你发现某些表的查询速度比其他表更快,而且有些筛选器相比其他筛选器需要更长的处理时间。
Power Query 中的性能取决于数据源级别的性能。Power Query 提供的数据源种类广泛,并且针对每种数据源的性能优化技术也同样广泛。比如,如果从 Microsoft SQL Server 中提取数据,则应遵循适用于该产品的性能优化准则。
出色的 SQL Server 性能优化技术包括索引创建、硬件升级、执行计划优化和数据压缩。这些主题仅作为示例介绍,以便你熟悉数据源并在使用 Power BI 和 Power Query 时获得相关优势。
1)查询折叠
Power Query 通过一种称为“查询折叠”的技术,充分利用数据源级别的出色性能。
Power Query 编辑器内的查询折叠功能有助于提升 Power BI 报表的性能。“查询折叠”的过程是:当你主动进行转换时,将在 Power Query 编辑器中进行的转换和编辑同时作为原生查询或简单的“Select”SQL 语句进行跟踪。
实现此过程是为了确保可以在原始数据源服务器中进行这些转换,而不会占用大量 Power BI 计算资源。
你可以使用 Power Query 将数据加载到 Power BI 中。然后,使用 Power Query 编辑器对数据进行转换,例如重命名或删除列,追加、分析或筛选数据,或者对数据进行分组。
假如你已经重命名销售数据中的一些列,并以“城市/省/直辖市/自治区”格式将“城市”和“省/直辖市/自治区”列合并在一起。
与此同时,查询折叠功能跟踪本机查询中的这些更改。然后,当你加载数据时,原始数据源中独立执行了转换,这样可以确保优化 Power BI 中的性能。
查询折叠的优点
① 数据刷新和增量刷新的效率更高:使用查询折叠导入数据表时,Power BI 能够更好地分配资源并更快地刷新数据,因为 Power BI 不必在本地运行每个转换。
② 与 DirectQuery 和双存储模式自动兼容:所有 DirectQuery 和双存储模式数据源都必须具有后端服务器处理能力才能创建直接连接,这意味着查询折叠是可供使用的自动功能。如果所有转换可以缩减为一条“Select”语句,则系统会进行查询折叠。
场景演示
下图演示了运行中的查询折叠。在此场景中,你将一组查询应用于多个表。
在使用 Power Query 添加新数据源并转至 Power Query 编辑器后,转到“查询设置”窗格并右键单击最后应用的步骤。
如果“查看本机查询”选项不可用(未以粗体显示),则无法在此步骤中执行该查询折叠;此时,你必须在“应用的步骤”区域中逆向操作,直到进入可以使用“查看本机查询”(以粗体显示)的步骤。此过程将显示用于转换数据集的本机查询。
本机查询不适用于以下转换:添加索引列、合并和追加具有两个不同数据源的不同表中的列、更改列的数据类型。
要记住的一个有效原则是,如果可以将转换转变为一条“Select”SQL 语句(其中包括 GROUP BY、SORT BY、WHERE、UNION ALL 和 JOIN 等运算符和子句),则可以使用查询折叠。
对于检索、导入和准备数据,查询折叠是优化性能的一种方式,还有另一种方式是查询诊断。
2)查询诊断
可用于研究查询性能的另一个工具是“查询诊断”。你可以确定在以下情况下可能存在的瓶颈:加载和转换数据,刷新 Power Query 中的数据,在查询编辑器中运行 SQL 语句等。
要在 Power Query 编辑器中访问查询诊断,请在“主页”功能区中转到“工具”。准备好开始在 Power Query 编辑器中转换数据或进行其他编辑后,在“会话诊断”部分中选择“启动诊断”。诊断完成后,务必选择“停止诊断”。
选择“诊断步骤”会显示运行该步骤所花的时间,如下图所示。通过此选项,你可以了解某个步骤是否比其他步骤花费的时间更长,然后以此为进一步研究的起点。
当你希望在 Power Query 端分析任务(例如加载数据集、运行数据刷新或运行其他转换务)性能时,此工具非常有用。
3)有助于优化性能的其他技术
优化 Power BI 中查询性能的其他方式包括:
在原始数据源中处理尽可能多的数据:Power Query 和 Power Query 编辑器支持处理数据;但是,完成此任务需要占用处理能力,这可能会降低报表其他区域中的性能。一般而言,推荐做法是在本机数据源中处理尽可能多的数据。
使用本机 SQL 查询:针对 SQL 数据库使用 DirectQuery 时(例如在上述场景中),确保未从存储过程或公用表表达式 (CTE) 中拉取数据。
将日期和时间分开(如果绑定在一起):如果有任何表中存在将日期和时间合并在一起的列,务必先将它们分隔到不同的列中,然后再导入 Power BI 中。此方法将提高压缩能力。
以上就是关于「修复性能问题」的全部内容。感谢您的耐心阅读,更多 Power BI 学习资源,请持续关注优阅达大数据生态。