表格模型中的层次结构是定义表中两列或更多列之间的关系的元数据。 层次结构在报表客户端字段列表中可以呈现为独立的,使客户端用户更容易导航和将其纳入报表中。
本主题中的部分:
优点
表可以包含数十个甚至数百个列,其异常列名的顺序不明显。 这可能会导致报表客户端字段列表中出现无序外观,使用户难以在报表中查找和包含数据。 层次结构可以提供对其他复杂数据结构的简单直观视图。
例如,在 Date 表中,可以创建日历层次结构。 日历年用作最顶层的父级别,月、周和日作为子级别(日历年->月->周->日)。 此层次结构显示从日历年到日期的逻辑关系。 然后,客户端用户可以从字段列表中选择“日历年份”以包括数据透视表中的所有级别,或展开层次结构,并仅选择要包含在数据透视表中的特定级别。
由于层次结构中的每个级别都是表中列的表示形式,因此可以重命名该级别。 虽然不是层次结构的独占项(任何列都可以在表格模型中重命名),但重命名层次结构级别可以让用户更轻松地在报表中查找和包含级别。 重命名级别不会重命名它引用的列;它只是使级别更易于识别。 在我们的日历年层次结构示例中,在数据视图中的“日期”表中,列:CalendarYear、CalendarMonth、CalendarWeek 和 CalendarDay 已重命名为 Calendar Year、Month、Week 和 Day,以便更轻松地识别它们。 重命名级别具有在报表中提供一致性的额外优势,因为用户不太可能需要更改列名,以使它们在数据透视表、图表等中更易于阅读。
层次结构可以包含在视角中。 视角定义可查看的模型子集,提供模型的重点、业务特定或应用程序特定的观点。 例如,透视可以为用户提供仅针对其特定报告要求所需的数据项的可查看列表(层次结构)。 有关详细信息,请参阅透视(SSAS 表格)。
层次结构不应用作安全机制,而是用作提供更好的用户体验的工具。 特定层次结构的所有安全性都继承自基础模型。 层次结构无法提供对用户尚未访问的模型对象的访问权限。 必须先解析模型数据库的安全性,然后才能通过层次结构提供对模型中的对象的访问权限。 安全角色可用于保护模型元数据和数据。 有关详细信息,请参阅“角色”(SSAS 表格)。
定义层次结构
在关系图视图中使用模型设计器创建和管理层次结构。 数据视图中的模型设计器不支持创建和管理层次结构。 若要查看关系图视图中的模型设计器,请单击“ 模型 ”菜单,然后指向 “模型视图”,然后单击“ 关系图视图”。
若要创建层次结构,请右键单击要指定为父级别的列,然后单击“ 创建层次结构”。 可以多选任意数量的列(在单个表中包含),或者以后可以通过单击列并将其拖动到父级别来将列添加为子级别。 选择多个列后,各列将根据基数自动排列顺序。 可以通过单击并拖动列(级别)以更改其顺序,或使用上下文菜单中的向上和向下导航控件来更改顺序。 将列添加为子级时,可以通过将列拖放到父级别来使用自动检测。
列可以出现在多个层次结构中。 层次结构不能包括非列对象,如度量值或 KPI。 层次结构只能基于单个表中的列。 如果多选度量值以及一个或多个列,或者从多个表中选择列,则会在上下文菜单中禁用 “创建层次结构” 命令。 若要从其他表添加列,请使用 RELATED DAX 函数添加引用相关表中列的计算列。 该函数使用以下语法: =RELATED(TableName[ColumnName])
有关详细信息,请参阅 RELATED 函数。
默认情况下,新的层次结构命名为 hierarchy1、hierarchy 2 等。应更改层次结构名称以反映父子关系的性质,使它们对用户更具可识别性。
创建层次结构后,可以使用“在 Excel 中分析”功能测试其有效性。 有关详细信息,请参阅“在 Excel 中分析”(SSAS 表格)。
相关任务
任务 | DESCRIPTION |
---|---|
创建和管理层次结构(SSAS 表格) | 介绍如何在关系图视图中使用模型设计器创建和管理层次结构。 |