Power BI 数据源连接与转换优化技巧

科技   2024-12-06 19:17   江苏  
欢迎关注【BI佐罗数据分析】,今日精华包括:视频案例,技巧干货,企业案例。

↓ 预约直播,更多干货,不要错过 ↓

在 Power BI 中,性能瓶颈可能出现在开发过程的任何阶段,无论是报告加载缓慢、刷新时间过长,还是视觉效果不响应,都需要系统化和结构化的方法来识别其根本原因。

例如,一个加载缓慢的报告可能由以下原因引起:
  • 低效的数据源查询
  • 设计不良的数据模型
  • 未优化的 DAX 计算
  • 报告中加载了过多的可视化元素

这些只是其中的几个例子。性能问题可能来自 Power BI 解决方案的任何部分:

  • 数据源连接与转换

  • ✅ 数据模型

  • ✅ DAX 公式

  • ✅ 数据可视化

  • ✅ 环境:设备、部署和网络

本文将介绍 Power BI 性能优化的数据源连接与转换部分的优化策略,我们将介绍优化数据连接与转换的最佳实践,优化内存和 CPU 使用,同时确保只有相关和必要的信息流入你的 Power BI 报告。


减少数据量和颗粒度

尽管这些技术通常与数据模型优化相关,这里强调在连接和转换数据阶段采用这些最佳实践的重要性。这样可以确保仅将必要的数据加载到模型中,减少内存使用,提升处理速度,为高效的数据模型奠定基础。

仅加载数据模型中必要的表

在构建数据模型时,你可能需要将表导入 Power Query 进行中间计算。然而,如果这些表对于最终报告并不必要,重要的是防止它们不必要地增加模型的大小和复杂性。为此,记得在 Power Query 中取消选中“启用加载”选项,对于那些仅作为中间步骤且不在报告中使用的表:

参考:PowerQuery 实战:数据加载与刷新优化

仅选择所需关键列

每一列都会增加处理和内存使用。排除如 GUID、审计日志或元数据等不需要用于分析的列。牢记这一原则:添加列比删除不必要的列要容易得多。随着数据模型的增长和更多报告的连接,移除未使用的列或表变得越来越复杂。

拆分高基数列

列中的高基数(许多唯一值)会显著增加数据模型的大小并减慢 DAX 计算。将这些列拆分为较小的组件可以提高压缩率,减少内存使用,提升性能。
  • 拆分小数列:将小数列的整数部分和小数部分分离为两个列。
  • 拆分日期时间列:如果同时需要日期和时间,将日期时间字段拆分为两个单独的列。
  • 拆分高基数 ID:如产品 ID 或 用户 ID 等列通常包含由多个有意义组件(如前缀、区域或批号)组成的唯一标识符。这些列可以通过提取 ID 中的有意义组件并将其存储在单独的列中来拆分,从而减少每列中的唯一值,提高压缩率和性能。例如:

提前筛选数据

在 Power Query 中应用筛选器,仅加载相关的行。例如,在导入前按日期或区域进行过滤。

通过聚合减少颗粒度

减少颗粒度是优化数据大小的强大技术,可以在加载到模型之前使用 Power Query 或源端的 SQL 等工具对数据进行分组和汇总。例如,一个存储单个交易行的销售表可以按客户、产品或月份进行汇总。然而,这种权衡会牺牲详细的交易数据以获得更高效的模型。确保你的聚合级别满足报告的分析需求。

避免在 Power BI 中进行复杂的转换

使用 ETL 工具、数据库视图或存储过程在数据源处执行重型转换。这可以减少 Power BI 的计算负载,优化刷新时间,并确保解决方案高效且可扩展。

优化列的数据类型
使用最有效的数据类型,例如:
  • 将文本或大型数据类型(如字符串)在适当情况下转换为较小的类型,如整数或布尔值。
  • 避免在不必要时使用高精度小数,选择固定小数或整数。

合并 Power Query 中的应用步骤

合并相似的转换,例如在一个步骤中重命名或删除多个列,以避免冗余处理。

Power BI 设置

禁用后台刷新

默认情况下,Power BI Desktop 中的 Power Query 为每个查询缓存最多 1,000 行预览数据。虽然这些预览数据帮助用户快速查看源数据和转换结果,但它们与 Power BI Desktop 文件分开存储,尤其在处理大量查询时,可能会显著增加刷新时间。

操作步骤:
  1. 转到 选项 > 当前文件 > 数据加载 > 后台数据。
  2. 取消选中“允许在后台下载数据预览”选项。

安全地忽略隐私级别

Power Query 中的隐私级别定义了数据源之间的隔离,以控制数据可见性并防止未经授权的数据传输。这些级别分为以下几类:
  • 无:无隔离;适用于受控环境,但存在数据泄露风险。
  • 私有:确保敏感数据的严格隔离,防止与其他源合并。
  • 组织:允许在受信任的组内共享数据,但不与公共源共享。
  • 公共:所有人都可访问,并可与其他数据源合并。

选择忽略隐私级别的选项可能会提高性能。然而,这可能会将敏感或机密数据暴露给未经授权的人。除非你确定数据源不包含敏感或机密数据,否则不要启用此设置。

操作步骤:
  1. 转到 选项 > 当前文件 > 隐私。
  2. 选择“忽略隐私级别”,以潜在地提高性能。

注意:忽略的隐私级别不会应用于 Power BI 服务中的报告。

性能分析工具

查询诊断

查询诊断帮助分析 Power Query 在数据转换、预览和刷新操作中的行为。它可以识别性能瓶颈,解释后台评估,并提供查询如何与数据源交互的见解。它提供两种类型的诊断:
  • 汇总视图:提供查询执行期间时间消耗的高级概览,结合相关操作。
  • 详细视图:提供逐行的见解,适用于高级故障排除和性能调整。

使用查询诊断的步骤:

  1. 在 Power Query 编辑器中,从工具栏选择“开始诊断”。

  2. 执行操作(例如,刷新预览或查询)以捕捉性能数据。
  3. 分析生成的诊断查询中的结果。

提示:关注“独占持续时间”列,并汇总这些值,以了解哪些步骤消耗了最多的资源或耗时最长。

结论

优化数据源连接与转换是创建高性能 Power BI 报告的第一步。通过减少不必要的数据、利用查询折叠以及高效地组织查询步骤,你可以为更快、更响应、更具可扩展性的解决方案奠定基础。

企业级大型案例:

汽车品牌竞争分析仪表盘应用


客户简介:全球领先的汽车制造公司(世界500强)
解决方案:该仪表盘汇集了不同品牌、功能类别以及特定市场的竞争数据,帮助管理层全面掌握竞争对手的表现,并根据实时数据调整战略,以保持市场领先地位。仪表盘的分析结果使得管理团队能够清晰识别出市场中的潜在威胁,并根据市场变化做出快速响应。例如,在某些市场中,竞争品牌可能出现了超预期的表现,仪表盘能够及时显示出这一趋势,从而帮助公司在第一时间进行调整。借助这一仪表盘,区域经理还可以通过数据对比,快速识别到各类功能产品的销售差异,进而优化资源配置与推广策略。此外,仪表盘的预警系统能够在市场环境发生变化时提供早期预警,帮助团队在竞争压力加大的情况下,迅速识别并解决问题,避免在竞争中处于被动局面。通过对市场趋势的深入分析,公司能够优化产品线,调整定价策略,提升品牌竞争力。总体而言,通过开发这个分析报告,不仅使得公司能够实时掌控市场竞争态势,提升了决策效率和响应速度,还帮助各区域团队在竞争激烈的市场中更加精准地调整策略。对于公司高层来说,这一工具为其提供了强有力的数据支持,确保公司能够在全球汽车市场中保持优势地位,稳步提升竞争力。

(以上数据已严重脱敏,且图片不清晰,仅供参考思路)

如果您也在寻找类似的解决方案,欢迎扫描文末二维码联系我们,共同探索适合您企业的数字化运营策略!

对企业数据分析有问题?点击下方预约直播,还可现场连麦咨询哦。 

更专业的数据分析师训练营



🚀【经典课程】从零和顶级专家系统化学习 Power BI。

📈【高级课程】业务人(管理、销售、财务、供应链)彻底解决企业数据分析。

🔍【企业咨询】十大行业,十大领域,企业案例,咨询,培训,实施。

🔗 如何获取更多信息?扫描下方二维码具体咨询。

BI佐罗数据分析 - 更专业更系统的企业数据分析

点击“阅读原文”获取更多资源

BI佐罗讲数据分析
多年PowerBI MVP带你学习更专业更系统的企业数据分析。
 最新文章