模型表命名特征_Power BI Desktop 模型介绍
在 Microsoft Power BI 中,数据模型为报表和仪表板开发提供了基础。 若要生成正确的报表和仪表板,应该对报表和仪表板用户会提出的问题有清晰的认识。 接下来的重点应是数据模型设计,它将为报表和仪表板中的视觉效果提供最佳支持。 完成模型设计后,就可以使用 Power BI Desktop 来开发模型了。开发模型时,要完成以下任务:连接到数据转换和准备数据通过添加数据分析表达式 (DAX
在 Microsoft Power BI 中,数据模型为报表和仪表板开发提供了基础。 若要生成正确的报表和仪表板,应该对报表和仪表板用户会提出的问题有清晰的认识。 接下来的重点应是数据模型设计,它将为报表和仪表板中的视觉效果提供最佳支持。 完成模型设计后,就可以使用 Power BI Desktop 来开发模型了。
开发模型时,要完成以下任务:
- 连接到数据
- 转换和准备数据
- 通过添加数据分析表达式 (DAX) 计算来定义业务逻辑
- 添加角色,以通过行级别安全性强制执行数据权限
- 将模型发布到 Power BI
了解数据模型的结构有助于设计正确的模型,来支持报表和仪表板。 数据模型可通过多种方式进行开发,但其中一种或多种方法相对更佳。 最佳模型有重要作用,能够提供出色的查询性能,并最大程度地减少数据刷新时间以及对服务资源(包括内存和 CPU)的使用。 使用的资源越少,可以托管的模型越多,并且成本会更低。
星型架构设计
Power BI 数据模型由单个表组成,这种情况并不常见。 单表模型可以是一种简单的设计,可能是适用于数据浏览任务或概念证明的设计,但不是最佳模型设计。 最佳模型设计遵循星型架构设计原则。 星型架构是关系数据仓库设计者通常使用的一种设计方法,因为它提供了一个易于使用的结构,并且它支持高性能的分析查询。
此设计原则称为星型架构,因为它将模型表分为事实或维度。 在一个关系图中,事实数据表形成星型的中心,而维度表则放置在事实数据表的周围,表示星型的点。
事实数据表
事实数据表用于存储累积的行,这些行表示观察结果或记录特定业务活动的事件。 例如,销售事实数据表中存储的事件可以是销售订单和订单行。 也可以使用事实数据表记录存货变动、存货结余或每日汇率。 事实数据表通常包含大量的行。 随着时间的推移,事实数据表行将累积。 在分析查询(将在此模块的后续部分对它进行定义)中,通过汇总事实数据表数据来生成值,如销售额和数量。
维度表
维度表描述业务实体,这些实体通常表示人员、地点、产品或概念。 日期维度表是常见的概念维度表示例,此表会针对每个日期包含一个行。 借助维度表中的列,可以对事实数据表数据进行筛选和分组。
每个维度表都必须具有一个唯一列,此列称为键列。 唯一列不包含重复的值,并且任何情况下都不会有缺失的值。 在产品维度表中,此列可能命名为“ProductKey”或“ProductID”。 其他列可能会存储描述性的值,如产品名称、子类别、类别、颜色等。 在分析查询中,这些列用于对数据进行筛选和分组。
比较事实数据表和维度表
下图比较了事实数据表和维度表的特征。

关联星型架构表
在模型中,维度表通过使用一对多关系与事实数据表相关联。 通过此关系,应用于维度表列的筛选器和分组可以传播到事实数据表。 此设计模式很常见。
维度表可用于筛选多个事实数据表,可以通过多个维度表对事实数据表进行筛选。 但是,将事实数据表直接关联到其他事实数据表并不是一种好的做法。
若要实践此概念,请下载
Adventure Works DW 2020 M01.pbixgithub.com文件,打开此文件,然后切换到模型关系图。

请注意,该模型由七个表组成,其中一个表名为“Sales”。 其余的表是维度表,它们的名称如下:
- 客户
- 日期
- Product
- Reseller
- 销售订单
- 销售区域
请注意维度表和事实数据表之间的关系,并且每个关系筛选器方向都指向事实数据表。 因此,当筛选器应用于维度表列(以按列值进行筛选或分组)时,将筛选和汇总相关的事实数据。
如果你观察此图案,可能会看到星型形状。

有关星型架构的详细信息,请参阅
了解星型架构和 Power BI 的重要性docs.microsoft.com分析查询
分析查询是从数据模型生成结果的查询。 各个 Power BI 视觉对象通过后台向 Power BI 提交分析查询,以查询模型。 分析查询以数据分析表达式 (DAX) 查询语句形式编写而成。 不过,无需编写本机 DAX 语句;只需通过映射数据集字段来配置报表视觉对象。
分析查询包含三个阶段,并按以下顺序实施它们:
- 筛选
- 分组
- 汇总
筛选(或称为切片)以相关数据为目标。 在 Power BI 报表中,筛选器可应用到三个不同的作用域:报表、页面或视觉对象。 如果强制执行了行级别安全性 (RLS),也会在后台应用筛选。 每个报表视觉对象都可以继承筛选器,也可以直接对其应用筛选器。
分组(或称为切块)会将查询结果划分为组。
汇总会生成单个值结果。 通常,使用汇总方法(求和、计数等)汇总数值列。 这些方法属于简单汇总。 复杂的汇总(例如总计的百分之一)可以通过定义使用 DAX 编写的度量值实现。
并非所有分析查询都需要进行筛选、分组和汇总:
- 通常会对报表视觉对象进行筛选,可能按时间段或地理位置来进行此筛选。
- 分组是可选操作。 例如,用于显示单个值的卡片视觉对象不涉及分组。
- 通常,报表视觉对象会进行汇总。 不过,值得注意的是,切片器视觉对象是例外情况,它不涉及汇总。
配置报表视觉对象
报表作者通过将报表视觉对象和其他元素添加到页面来生成报表设计。 其他元素包括文本框、按钮、形状和图像。 上述每个元素都与数据集字段分开配置。
在进行设计时,添加和配置报表视觉对象涉及以下方法:
- 选择视觉对象类型,如条形图。
- 将“字段”窗格中显示的数据集字段映射到视觉对象字段井。 对于条形图而言,井是指轴、图例、值和工具提示。
- 配置映射的字段。 可以为映射的字段重命名,也可以将字段切换为汇总或不汇总。 如果字段要进行汇总,可以选择汇总方法。
- 应用格式选项,如轴属性、数据标签等。
下面的示例演示了如何为报表视觉对象配置分析查询。 首先,将堆积柱形图视觉对象添加到
Adventure Works DW 2020 M01.pbixgithub.comPower BI Desktop 文件的报表页,然后按照下面的步骤操作:
- 使用“Date”表中的“会计年度”并选择“FY2020”,以筛选此页面。
- 将“Date”表中的“月份”添加到“轴”字段井,以对视觉对象进行分组。
- 将“Sales”表中的“销售额”添加到“值”字段井,以对视觉对象进行汇总。

字段是一个统称,用于描述可用于配置视觉对象的模型资源。 字段包括三种不同的模型资源:
- 列
- 层次结构级别
- 度量值
上述每个资源类型都可以用于配置视觉对象,然后视觉对象会在后台中配置分析查询。 下表说明了如何使用每个模型资源。

列
使用列对列值进行筛选、分组和汇总。 汇总数值列很常见,此操作可以使用求和、计数、非重复计数、最小值、最大值、平均值、中值、标准方差和方差完成。 你还可以使用第一个(按字母顺序)、最后一个、计数和非重复计数对文本列进行汇总。 此外,可以使用最早、最晚、计数和非重复计数对日期列进行汇总。
在进行设计时,数据建模者可以设置列默认汇总属性。 此属性可以设置为任意支持的汇总类型,也可以设置为“不汇总”。 后面的选项表示在默认情况下列仅用于进行分组。 如果数据模型包含存储年份值的数值列,则正确的做法是将其默认汇总设置为“不汇总”,因为此列很可能只用于进行分组或筛选,并且对年份进行的数值汇总(例如平均值)无法生成有意义的结果。
层次结构级别
尽管层次结构级别基于列,但可以使用它们进行筛选和分组,但不能使用它们进行汇总。 报表作者可以汇总层次结构级别所基于的列,前提是“字段”窗格中显示此字段。
度量值
度量值专门用于汇总模型数据;不能使用它们对数据进行分组。 但是,在以下特殊情况下,可以使用度量值筛选数据:当视觉对象显示此度量值并且筛选器是视觉对象级别的筛选器(非报表级别或页面级别的筛选器)时,可使用此度量值筛选视觉对象。 以此方式使用时,将在分析查询汇总数据后应用度量值筛选。 执行此过程的目的是消除不符合度量值筛选条件的组。 (对于熟悉 SQL 语法的用户,用于筛选视觉对象的度量值类似于 SELECT 语句中的 HAVING 子句。)
下图显示,堆积柱形图视觉对象调整为当销售额超过 500 万美元时显示分组(月份)。 此调整在“筛选器”窗格中完成,具体方法是向“销售额”字段应用筛选器:将筛选器配置为当值大于 5000000 时显示项目。 请记得选择“应用筛选器”,该选项位于卡片的右下角。
请注意,只有四个组(月份)的销售额超过了 500 万美元。

更多推荐
所有评论(0)