选择最佳存储模式

已完成

设计可缩放语义模型时,选择适当的存储模式至关重要。 根据数据源,有四个选项:导入、DirectQuery、Direct Lake,以及复合模型。 每个模式都有自己的优点和注意事项,以确保最佳性能和可伸缩性。

导入模式

“导入”涉及在 Power BI 中导入和存储数据,从而提供最大的灵活性和最快的性能。 但是,它需要定期刷新才能使数据保持最新,这意味着数据仅保持上次刷新时的最新状态。

导入模型的指导也适用于其他存储模式。 如果模型允许,应始终选择“导入”。 主要目标是减少引入语义模型的数据量以及在 Power BI 中执行的转换次数。 优化提示包括:

  • 使用关系数据库时,连接到视图而不是表。
  • 仅包括必要的表、行和列。
  • 请考虑分区和增量刷新,以避免加载不必要的数据。
  • 使用适当的数据类型,例如对 ID 列使用整数而不是字符串。
  • 确保查询折叠,从而减少在 Power BI 引擎中完成的工作。

提示

进一步了解 减少导入模型加载数据的技术

DirectQuery 模式

“DirectQuery”可让你直接从源查询数据,而无需将其存储在 Power BI 中,因此非常适合处理大量数据和准实时数据传送。 但是,与导入模式相比,它的性能较慢,建模功能也有限。

优化提示

  • 通过简化 Data Analysis Expressions (DAX) 避免在源处进行复杂的计算。
  • 对与事实数据表相关的维度应用双重存储模式。
  • 对关系使用“假设引用完整性”属性
  • 避免定义计算列和唯一标识符列上的关系。

提示

有关更多 DirectQuery 模型指南,请参阅文档。

Direct Lake 模式

“Direct Lake”允许直接从 Microsoft Fabric 湖屋或仓库查询数据,而无需将其存储在语义模型中,因此非常适合处理大量数据。 此模式经过优化,可将数据从 Microsoft Fabric 的 Delta 表中快速加载到内存。 虽然它具有快速访问大型数据卷的优势,但它需要设置 Lakehouse 或仓库,以及 Delta 表,并且可能需要经过优化才能获得最佳性能。

优化提示

  • 配置 Direct Lake 以通过快捷方式访问 ADLS (Azure Data Lake Storage) 存储。
  • 为复杂的 DAX 查询设置 DirectQuery 的回退行为。

复合模型

“复合模式”可以混合“导入”和“DirectQuery”模式,或集成多个 DirectQuery 数据源。 此模式支持多对多关系,无需网桥表。 它通过结合“导入”和“DirectQuery”模式的优势,提供查询和报告功能的灵活性。 但是,它需要定期刷新导入模式表,并且在合并来自不同来源的数据时可能会对性能产生潜在影响。

优化提示

  • 确保后端源有足够的资源。
  • 最大程度减少源查询中文本值的数量。
  • 保持用于关系的列的基数较低。

提示

有关更多 复合模型指南,请参阅文档。