欢迎关注
【BI佐罗数据分析】
,今日精华包括:视频案例,技巧干货,企业案例。
↓ 预约直播,更多干货,不要错过 ↓
在 Power BI 中,性能瓶颈可能出现在开发过程的任何阶段,无论是报告加载缓慢、刷新时间过长,还是视觉效果不响应,都需要系统化和结构化的方法来识别其根本原因。
这些只是其中的几个例子。性能问题可能来自 Power BI 解决方案的任何部分:
-
✅
数据源连接与转换
-
✅ 数据模型
-
✅ DAX 公式
-
✅ 数据可视化
-
✅ 环境:
设备、部署和网络
本文将介绍 Power BI 性能优化的数据源连接与转换部分的优化策略,我们将介绍优化数据连接与转换的最佳实践,优化内存和 CPU 使用,同时确保只有相关和必要的信息流入你的 Power BI 报告。
尽管这些技术通常与数据模型优化相关,这里强调在连接和转换数据阶段采用这些最佳实践的重要性。这样可以确保仅将必要的数据加载到模型中,减少内存使用,提升处理速度,为高效的数据模型奠定基础。
仅加载数据模型中必要的表
在构建数据模型时,你可能需要将表导入 Power Query 进行中间计算。然而,如果这些表对于最终报告并不必要,重要的是防止它们不必要地增加模型的大小和复杂性。为此,记得在 Power Query 中取消选中“启用加载”选项,对于那些仅作为中间步骤且不在报告中使用的表:
参考:
PowerQuery 实战:数据加载与刷新优化
仅选择所需关键列
每一列都会增加处理和内存使用。排除如 GUID、审计日志或元数据等不需要用于分析的列。牢记这一原则:添加列比删除不必要的列要容易得多。随着数据模型的增长和更多报告的连接,移除未使用的列或表变得越来越复杂。
拆分高基数列
列中的高基数(许多唯一值)会显著增加数据模型的大小并减慢 DAX 计算。将这些列拆分为较小的组件可以提高压缩率,减少内存使用,提升性能。
-
拆分小数列:将小数列的整数部分和小数部分分离为两个列。
-
拆分日期时间列:如果同时需要日期和时间,将日期时间字段拆分为两个单独的列。
-
拆分高基数 ID:如产品 ID 或 用户 ID 等列通常包含由多个有意义组件(如前缀、区域或批号)组成的唯一标识符。这些列可以通过提取 ID 中的有意义组件并将其存储在单独的列中来拆分,从而减少每列中的唯一值,提高压缩率和性能。例如:
提前筛选数据
在 Power Query 中应用筛选器,仅加载相关的行。例如,在导入前按日期或区域进行过滤。
通过聚合减少颗粒度
减少颗粒度是优化数据大小的强大技术,可以在加载到模型之前使用 Power Query 或源端的 SQL 等工具对数据进行分组和汇总。例如,一个存储单个交易行的销售表可以按客户、产品或月份进行汇总。然而,这种权衡会牺牲详细的交易数据以获得更高效的模型。确保你的聚合级别满足报告的分析需求。
使用 ETL 工具、数据库视图或存储过程在数据源处执行重型转换。这可以减少 Power BI 的计算负载,优化刷新时间,并确保解决方案高效且可扩展。
-
将文本或大型数据类型(如字符串)在适当情况下转换为较小的类型,如整数或布尔值。
-
避免在不必要时使用高精度小数,选择固定小数或整数。
合并相似的转换,例如在一个步骤中重命名或删除多个列,以避免冗余处理。
禁用后台刷新
默认情况下,Power BI Desktop 中的 Power Query 为每个查询缓存最多 1,000 行预览数据。虽然这些预览数据帮助用户快速查看源数据和转换结果,但它们与 Power BI Desktop 文件分开存储,尤其在处理大量查询时,可能会显著增加刷新时间。
-
转到 选项 > 当前文件 > 数据加载 > 后台数据。
-
Power Query 中的隐私级别定义了数据源之间的隔离,以控制数据可见性并防止未经授权的数据传输。这些级别分为以下几类:
-
-
-
组织:允许在受信任的组内共享数据,但不与公共源共享。
-
选择忽略隐私级别的选项可能会提高性能。然而,这可能会将敏感或机密数据暴露给未经授权的人。除非你确定数据源不包含敏感或机密数据,否则不要启用此设置。
-
-
注意:忽略的隐私级别不会应用于 Power BI 服务中的报告。
查询诊断
查询诊断帮助分析 Power Query 在数据转换、预览和刷新操作中的行为。它可以识别性能瓶颈,解释后台评估,并提供查询如何与数据源交互的见解。它提供两种类型的诊断:
-
汇总视图:提供查询执行期间时间消耗的高级概览,结合相关操作。
-
详细视图:提供逐行的见解,适用于高级故障排除和性能调整。
使用查询诊断的步骤:
-
在 Power Query 编辑器中,从工具栏选择“开始诊断”。
-
-
提示:
关注“独占持续时间”列,并汇总这些值,以了解哪些步骤消耗了最多的资源或耗时最长。
优化数据源连接与转换是创建高性能 Power BI 报告的第一步。通过减少不必要的数据、利用查询折叠以及高效地组织查询步骤,你可以为更快、更响应、更具可扩展性的解决方案奠定基础。
企业级大型案例:
汽车品牌竞争分析仪表盘应用
客户简介:
全球领先的
汽车制造公司
(世界500强)
解决方案:
该仪表盘汇集了不同品牌、功能类别以及特定市场的竞争数据,帮助管理层全面掌握竞争对手的表现,并根据实时数据调整战略,以保持市场领先地位。仪表盘的分析结果使得管理团队能够清晰识别出市场中的潜在威胁,并根据市场变化做出快速响应。例如,在某些市场中,竞争品牌可能出现了超预期的表现,仪表盘能够及时显示出这一趋势,从而帮助公司在第一时间进行调整。借助这一仪表盘,区域经理还可以通过数据对比,快速识别到各类功能产品的销售差异,进而优化资源配置与推广策略。此外,仪表盘的预警系统能够在市场环境发生变化时提供早期预警,帮助团队在竞争压力加大的情况下,迅速识别并解决问题,避免在竞争中处于被动局面。通过对市场趋势的深入分析,公司能够优化产品线,调整定价策略,提升品牌竞争力。总体而言,通过开发这个分析报告,不仅使得公司能够实时掌控市场竞争态势,提升了决策效率和响应速度,还帮助各区域团队在竞争激烈的市场中更加精准地调整策略。对于公司高层来说,这一工具为其提供了强有力的数据支持,确保公司能够在全球汽车市场中保持优势地位,稳步提升竞争力。
(以上数据已严重脱敏,且图片不清晰,仅供参考思路)
如果您也在寻找类似的解决方案,欢迎扫描文末二维码联系我们,共同探索适合您企业的数字化运营策略!
对企业数据分析有问题?点击下方预约直播,还可现场连麦咨询哦。
BI佐罗数据分析 - 更专业更系统的企业数据分析
点击“阅读原文”获取更多资源