语义模型由哪些部分组成?
语义模型由多个不同元素构成:
- 数据连接到一个或多个数据源,可选择导入、DirectQuery,或作为复合模型的一部分。
- 转换,用于清洗并为报表准备数据。
- 基于业务规则定义的计算与度量,以确保从语义模型构建的报表保持一致性。这能确保清晰明确,避免分析与报表之间出现差异。
- 已定义的表间关系,使用户无需事先了解底层数据库结构和数据模型即可专注于报表设计。
语义模型模式
在 Power BI 中连接数据时选择合适的模式是创建语义模型的重要第一步,因为每种模式都有其优劣,您需要充分了解。
Power BI 的语义模型有三种模式:
- 导入模式
- DirectQuery 模式
- 复合模式
导入模式
该模式会将数据完整加载到 Power BI(.pbix)文件中。每当 Power BI 报表刷新时,Vertipaq 存储引擎会对数据进行压缩、优化并存储到磁盘。这可带来快速的性能和灵活的报表设计选项。此外,导入模式允许语义模型创建者使用完整的 Power Query M 语言函数集来转换与准备数据,以及使用 DAX 函数创建计算与度量。
DirectQuery 模式
该模式只存储有关模型结构的元数据,而非数据本身。查询模型时(例如渲染某个可视化),数据将从底层数据源检索。这在数据量很大或业务需要报表中接近实时数据时尤为有用。
复合模式
复合模式结合了导入和 DirectQuery 模式。当既需要导入模式的能力与性能,又希望查看实时数据时,此模式很有用。表可设置为 Dual 存储模式,使 Power BI 服务能够根据查询的性质选择更高效的模式。
创建 Power BI 语义模型的 5 个步骤
创建语义模型涉及的步骤与您在使用 Power BI Desktop 开发报表初期可能已在遵循的步骤相同。如果您正在成为数据分析师的道路上,可以通过我们的技能路径学习 Power BI 基础,其中将学习数据可视化、DAX,以及如何转换数据。
当然,创建语义模型时所遵循的具体步骤取决于您的业务需求和模型目标。不过,从高层来看,创建语义模型通常会遇到以下五个步骤:

图片由作者提供
- 导入或连接到所需数据源,可选择导入模式、DirectQuery 或复合模型。
- 清洗并转换数据,使其对用户有用。这包括去重、处理缺失数据、清理文本型数据列等。具体转换步骤取决于数据的独特需求。
- 定义数据表之间的关系,采用如星型模型等良好的数据建模原则。我们有一门课程将教授 Power BI 中的数据建模 基础。
- 根据您的独特业务需求创建度量与计算。
- 当您对语义模型满意后,将其发布到 Power BI 服务。
利用语义模型实现高效报表
将语义模型创建并发布到 Power BI 服务后,您可以在另一份 Power BI 报表中与该语义模型建立实时连接。事实上,您可以基于单个已发布的语义模型创建多份报表,从而确保所有报表的一致性与可靠性。
过去,常常会看到多份基于同一数据集的 Power BI 报表,但各自拥有独立的数据模型。这带来了挑战,因为报表之间可能存在较大差异,找出差异原因并确定需要修改哪份报表既困难又耗时。创建一个在多份 Power BI 报表间共享的单一语义模型,能够彻底解决这一问题。
如果您想提升 Power BI 数据可视化技能,并学习如何创建高效的 Power BI 报表,我们有相应课程可帮助您达成目标。
管理语义模型
语义模型可以在工作区之间轻松共享,从而实现数据民主化并培育强大的数据文化。但这也需要通过适当的控制与策略对这些语义模型进行有效管理,以维护数据的完整性、安全性与质量。
所有权与权限
在 Power BI 中管理语义模型的访问控制和权限可以由管理员、工作区成员(取决于其角色)以及语义模型所有者(即创建语义模型的人)来完成。
语义模型权限可以通过两种方式设置与管理:
- 首先,通过对个人或整个安全组直接授予对语义模型的访问权限。
- 其次,通过管理如何将语义模型及其报表共享给不在该工作区的其他用户。
将语义模型发布到 Power BI 服务后,您(作为语义模型所有者)与管理员可以为该语义模型设置以下四个权限级别之一:
- 读取(Read):允许用户访问使用该语义模型数据的报表并查看模型设置。
- 构建(Build):允许用户基于该模型创建新的报表与仪表板。
- 再共享(Reshare):允许用户向其他人授予对该语义模型的访问权限。
- 写入(Write):允许用户重新发布并对模型进行部分更改,但不包括某些设置,例如添加或更改数据源凭据等。
- 所有者(Owner):虽然严格来说不属于权限级别,但语义模型的创建者在 Power BI 服务中成为所有者,并拥有上述所有权限。
安全注意事项
Power BI 管理员还可以限制在其 Power BI 租户中数据的访问、共享与修改方式。他们可以基于安全组完全或部分地限制语义模型的复用,从而影响诸如跨工作区复制报表、编辑基于共享语义模型的报表,以及语义模型在 Power BI 服务或 Desktop 中的可见性等功能。
语义模型所有者也可控制谁能访问并使用其语义模型中的数据。他们可以通过认证或推广语义模型来提升其可发现性,帮助用户和报表创建者识别哪些语义模型被指定为“官方”并在组织内被视为高质量。
语义模型及基于其构建的所有报表都将强制执行行级安全性(RLS)。除非特定的 RLS 角色允许,否则即使用户拥有构建或读取权限,RLS 也可能影响其读取语义模型数据的能力。
最佳实践与注意事项
在组织中仅创建必要数量的语义模型,并将其作为 Power BI 报表的数据来源,是公认的最佳实践。
此外,建议语义模型应具备以下特性:
- 全面:语义模型应包含回答相关业务问题所需的全部要素,这些要素也应准确、逻辑地反映业务系统与流程。
- 优化且高性能:应对语义模型进行优化,使其刷新、DAX 计算与可视化加载速度在数据量增长时仍保持快速。
- 安全:语义模型应包含必要的安全要素,以防止未经授权的数据访问(如行级安全)。
- 灵活:语义模型应能适应业务需求的变化。
结语
通过将数据集重命名为语义模型,Power BI 改变了我们对商业智能的思考方式。我们不再将数据视为报表和仪表板的静态组成部分,而是将其视为更大语义层的一部分,且该层易于共享与复用。
遵循本文概述的最佳实践,您可以创建高效的语义模型,成为组织报表需求的单一事实来源。借助语义模型的力量,您可以让技术与非技术用户都能够分析数据并回答业务问题,最终推动整个组织做出更佳决策。
如果您对从事 Power BI 数据分析师 职业感兴趣,我们的职业路径将带您全面学习 Power BI,并为微软 PL-300 认证做好准备。
如果您已掌握 Power BI 基础,不妨查看我们整理的 8 个 Power BI 项目,用于实践技能并丰富您的作品集。

作为商业智能领域的长期领导者,Power BI 持续的创新为其他 BI 工具指明了方向。微软宣布的 Fabric 进一步证明了这一点,他们将其视为“基于单一数据副本的首个真正统一的分析解决方案”,而 Power BI 是其中的一个组件。
因此,Power BI 中的“数据集”一词已无法完整概括其功能范围。数据集不仅仅包含数据——它还包括转换、计算和关系,构成了一个全面且多功能的数据模型(即所谓的语义模型)。
您可以使用我们的 Power BI 速查表 快速上手 Power BI——从创建第一个可视化到 Power Query 与 DAX 计算。
在本文中,我们将定义什么是语义模型,包括语义模型由哪些部分组成以及语义模型的不同模式。随后,我们将回顾如何创建和管理语义模型,并提供一些在创建您自己的语义模型时可遵循的最佳实践。
什么是 Power BI 语义模型?
在 Power BI 中,语义模型可被视为一个逻辑层,包含用于创建报表和仪表板所需的数据源之间的转换、计算和关系。语义模型是组织内各类报表的单一事实来源。
图片由作者提供
虽然可以使用 Power BI Desktop(.pbix 文件)构建语义模型,但其中不必包含任何可视化。可以将语义模型视为在构建报表和仪表板之前,数据管道的最后一站。此后,一旦您将语义模型分享给组织中的其他成员,他们就可以仅基于这一语义模型构建任意数量的报表和仪表板。
语义模型将报表背后的复杂技术细节屏蔽起来,使技术和非技术用户都能专注于分析数据并回答业务问题。共享性和可复用性是语义模型的两大亮点。