专栏名称: PowerBI战友联盟
微软 Power BI MVP BI佐罗 带你学习BI真经。
目录
相关文章推荐
51好读  ›  专栏  ›  PowerBI战友联盟

PowerBI 数据模型优化的十大策略

PowerBI战友联盟  · 公众号  ·  · 2024-09-02 18:01

正文

请到「今天看啥」查看全文


在商业智能与数据分析领域,Power BI 已经成为了一个强大的工具,帮助企业做出数据驱动的决策。然而,随着数据量的增加和分析需求的复杂化,优化 Power BI 数据模型变得至关重要。一个高效的数据模型不仅能够提升报告的响应速度,还能显著减少资源消耗,提高用户体验。本文将介绍一些优化 Power BI 数据模型的关键策略和实用技巧。

精简数据模型

优化数据模型的第一步是精简数据模型。确保只导入和使用分析所需的数据,不必要的数据列、表或字段都会增加模型的复杂性和体积。因此,在数据导入时,可以通过 Power Query 的过滤器删除不必要的列和行,并通过仅保留分析所需的记录来减少数据模型的大小。

使用星型架构

星型架构架构是设计数据模型的常见模式。相比于其他复杂的架构,星型架构有助于简化模型结构,减少表之间的关系数量,提高模型的可读性和性能。
  • 非规范化维度:使用非规范化维度,查询会变得更简单,连接更少,这意味着更少的表扫描。对于需要聚合、分组或汇总的报告,星型架构可确保加载速度更快。

  • SCD 实施:报告可能需要历史数据进行分析。在星型架构中,管理缓慢变化维度 (SCD) 比雪花模式中的多个父子或相关表依赖关系要简单得多。

选择正确的数据连接模式

  • 导入模式:此模式快速高效,非常适合较小的数据集。

  • 直接查询或实时连接:适合大型数据集,这些模式会实时向底层数据源发送查询。报告的性能在很大程度上取决于数据源的性能。

  • 存储模式:存储模式允许控制 Power BI 是否缓存数据并将其存储在内存中以满足报告需求。对于具有许多表的大型数据模型,可以决定缓存哪些单个表,通过提高响应能力和效率来增强报告性能。
可以从以下位置查看模型中的每个表的存储模式:模型视图 → 属性窗格 → 高级 → 存储模式

避免使用大宽表


性能问题:如果表包含太多列,则扫描次数会增加,从而导致性能问题。要优化性能,可以从模型中删除不必要的列,或者为维度列创建单独的表。
Power BI 中的 VertiPaq 等列式数据库将数据存储在列中,从而减少了扫描次数和消耗。
示例:如下所示,为了从表中获取 Sum(Profit),引擎需要扫描第一行的所有列以获取 Profit 的第一个值,然后对第二行重复此操作,依此类推。如果表太宽,引擎必须执行多次扫描,这会严重影响性能!

使用聚合表

聚合表是处理大数据集的有效手段。通过创建聚合表,可以预先计算和存储常用的汇总数据,从而减少查询的计算量,加快报告的加载速度。聚合表可以通过 Power Query 或 DAX 公式实现。

停用自动日期/时间表


在 Power BI 中,自动日期/时间功能会自动为每个具有 DateTime 类型的字段创建一个隐藏的日期表。这可能会导致创建不必要的表,如图所示,Power BI 自动创建了两个单独的日期表。
在选项设置的当前文件数据加载设置中,不勾选时间智能下的自动日期/时间即可关闭自动日期/时间。

选择适当的数据类型


有些数据类型比其他数据类型占用更多内存。通常,文本数据类型的大小大于整数或小数数据类型。
例如,Year 字段有两列:一列是整数数据类型,另一列是文本数据类型。请注意字段 TotalSize 的差异。Year 作为文本数据类型占用的空间几乎是整数数据类型的 10 倍。
因此,请明智地选择数据类型,因为这会对大数据模型产生很大的影响。另一个要点是,在数字数据类型中,有些占用的空间较少。
  • 使用定点小数:尽可能使用定点小数而不是十进制数字。

  • 优先使用整数:在适当的情况下使用整数而不是小数。

  • 四舍五入高精度字段:考虑四舍五入高精度字段。例如,“15.265895798”可以四舍五入为“15.266”。

优化度量值和计算列


在 Power BI 中,度量值和计算列是实现高级数据分析的重要部分。尽量避免在数据模型中使用过多的计算列,因为它们会显著增加模型的体积。相反,建议使用度量值来替代计算列。度量值只会在查询时计算,对性能的影响较小。

优化 Power Query 转换步骤


Power Query 是数据导入和转换的重要工具,但过多的转换步骤会增加模型的复杂性和数据刷新时间。建议在 Power Query 中尽量简化步骤,通过减少不必要的转换操作来优化数据导入的性能。
  • 合并相似的步骤以减少转换操作。

  • 在 Power Query 中应用转换操作的最佳顺序。

禁用查询加载


在某些情况下,我们可能在原始表之上创建了聚合表,或者执行了合并/追加操作以创建包含两个或多个表的单个表。在此类只需要结果表的情况下,不应将上游表加载到模型中。请确保通过在 Power Query 编辑器中右键单击表并取消选中“启用加载”选项来禁用此类表的查询加载。

结论

优化 Power BI 数据模型不仅可以提升报告的加载速度,还能提高整个分析过程的效率。通过精简数据模型、合理使用关系、优化度量值和计算列、以及采用聚合表和增量刷新等策略,我们可以显著提高 Power BI 的性能,为业务决策提供更强有力的支持。希望本文的优化技巧能够帮助您打造高效的数据模型,充分发挥 Power BI 的潜力。


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


🚀 《业财分析之道》 点击文字查看具体报名信息。

📈 《经营分析之道》 点击文字查看具体报名信息 。

🔍 数据分析之道 点击文字查看具体报名信息。
💡
商业智能之道 点击文字查看具体报名信息

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

BI佐罗数据分析 - 更专业更系统的企业数据分析
点击“阅读原文”获取更多资源







请到「今天看啥」查看全文