介绍 Power BI 模型基础知识

已完成

本单元介绍 Power BI 模型的术语。 必须理解这些术语才能为项目选择适当的模型框架。 本单元介绍以下术语:

  • 数据模型
  • Power BI 数据集
  • 分析查询
  • 表格模型
  • 星型架构设计
  • 表存储模式
  • 模型框架

数据模型

Power BI 数据模型是针对分析进行优化的可查询数据资源。 报表可以使用以下两种分析语言之一来查询数据模型:数据分析表达式 (DAX) 或多维表达式 (MDX)。 Power BI 使用 DAX,而分页报表可以使用 DAX 或 MDX。 “在 Excel 中分析”功能使用 MDX。

提示

数据模型也称作语义模型,尤其是在企业方案中。 通常,在数据介绍内容和本模块的语境中,数据模型简称为模型。

Power BI 数据集

在 Power BI Desktop 中开发 Power BI 模型并将其发布到 Power BI 服务中的工作区后,该模型称为数据集。 数据集是一个 Power BI 项目,它是 Power BI 报表和仪表板中可视化效果的数据源。

注意

并非所有数据集都源自 Power BI Desktop 中开发的模型。 某些数据集表示与 AAS 或 SSAS 中的外部托管模型的连接。 其他数据集可以表示实时数据结构,包括推送数据集、流数据集或混合数据集。 本模块仅涉及 Power BI Desktop 中开发的模型。

分析查询

Power BI 报表和仪表板必须查询某个数据集。 当 Power BI 可视化数据集数据时,它会准备并发送一个分析查询。 分析查询从模型生成查询结果,该结果很容易理解,尤其是已可视化的情况下。

分析查询包括按以下顺序执行的三个阶段:

  1. 筛选
  2. 分组
  3. 汇总

筛选(有时称为切片)将查询范围缩小为一部分模型数据。 筛选器值在查询结果中不可见。 大多数分析查询会应用筛选器,因为按时间段(通常还包括其他属性)进行筛选是常见的做法。 筛选以不同的方式发生。 在 Power BI 报表中,可以在报表、页面或视觉对象级别设置筛选器。 报表布局通常包括切片器视觉对象,以便筛选报表页面上的视觉对象。 当模型强制实施行级安全性 (RLS) 时,它会将筛选器应用于模型表以限制对特定数据的访问。 用于汇总模型数据的度量也可以应用筛选器。

分组(有时称为切块)将查询结果划分为组。 每个组也是一个筛选器,但与筛选阶段不同,筛选器值在查询结果中可见。 例如,按客户分组会按客户筛选每个组。

汇总生成单值结果。 通常,报表视觉对象使用聚合函数来汇总数字字段。 聚合函数包括 sum、count、minimum、maximum 等。 可以通过聚合列来实现简单汇总,也可以通过使用 DAX 公式创建度量来实现复杂汇总。

示例:Power BI 报表页面包含一个切片器,用于按一年时间段进行筛选。 其中还有一个柱形图视觉对象显示筛选年份的季度销售额。

上一段所述的 Power BI 报表的屏幕截图。

在此示例中,切片器按 2021 日历年筛选视觉对象。 柱形图按季度(筛选年份)分组。 每一列是代表可见筛选器的组。 列高度代表筛选年份的每个季度的汇总销售值。

表格模型

Power BI 模型是一种表格模型。 表格模型由一个或多个包含列的表组成。 它还可以包含关系、层次结构和计算。

星型架构设计

若要生成优化且易于使用的表格模型,我们建议生成星型架构设计。 星型架构设计是由关系数据仓库广泛采用的成熟建模方法。 它要求将模型表分类为维度或事实。

维度表描述业务实体(即建模对象)。 实体可以包含产品、人员、地点和包括时间本身的概念。 事实数据表存储观测项或事件,例如,可以是销售订单、库存余量、汇率或温度读数。 事实数据表包含与维度表和数值度量值列相关的维度键列。 事实数据表构成了星形的核心,相关的维度表构成了星形的各个点。

星型架构设计的屏幕截图,其中显示了一个位于中心的事实数据表和一个构成星型点的维度表。

在分析查询中,将会筛选或分组维度表列。 将汇总事实数据表列。

有关详细信息,请参阅了解星型架构和 Power BI 的重要性

表存储模式

每个 Power BI 模型表(计算表除外)都有一个存储模式属性。 存储模式属性可以是“导入”、“DirectQuery”或“双重”,它决定了表数据是否存储在模型中。

  • 导入 – 查询将检索模型中存储或缓存的数据。
  • DirectQuery – 查询将传递到数据源。
  • 双重 – 查询将检索存储的数据,或传递到数据源。 Power BI 将确定最有效的计划,并尽可能使用缓存的数据。

模型框架

表存储模式设置决定了模型框架:导入、DirectQuery 或复合框架。 本模块中的以下单元介绍了上述每种框架,并提供了其用法指导。

  • 导入模型包含存储模式属性设置为“导入”的表。
  • DirectQuery 模型包含存储模式属性设置为“DirectQuery”的表,这些表属于同一个源组。 本模块将在后面的部分介绍源组。
  • 复合模型包含多个源组。