4-6-在 User-Defined 层次结构中指定属性关系
适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
您已了解本教程中的内容,现在可以将属性层次结构组织到用户层次结构内的级别中,以便在多维数据集中为用户提供导航路径。 用户层次结构可以表示自然层次结构(如城市、州和国家/地区),也可以仅表示导航路径,例如员工姓名、职务和部门名称。 对于在层次结构中导航的用户而言,这两类用户层次结构应相同。
使用自然层次结构时,如果定义构成级别的属性之间的属性关系,SQL Server Analysis Services可以使用一个属性的聚合从相关属性获取结果。 如果属性之间没有定义的关系,SQL Server Analysis Services将从键属性聚合所有非键属性。 因此,如果基础数据支持,则应定义属性间的属性关系。 定义属性关系可改进维度、分区和查询处理性能。 有关详细信息,请参阅 定义属性关系 和 属性关系。
在定义属性关系时,可以指定此关系是弹性的还是刚性的。 如果将关系定义为刚性关系,SQL Server Analysis Services在更新维度时保留聚合。 如果定义为刚性的关系实际发生更改,SQL Server Analysis Services在处理过程中生成错误,除非维度已完全处理。 指定适当的关系和关系属性,可提高查询和处理性能。 有关详细信息,请参阅 定义属性关系和 用户层次结构属性。
在本主题的任务中,你将为教程项目中的自然用户层次结构中的属性定义属性关系SQL Server Analysis Services。 这些层次结构包括“客户”维度中的“客户所在地域”层次结构、“销售区域”维度中的“销售区域”层次结构、“产品”维度中的“产品型号系列”层次结构,以及“日期”维度中的“会计日期”和“日历日期”层次结构。 这些用户层次结构全部是自然层次结构。
为“客户所在地域”层次结构中的属性定义属性关系
切换到“客户”维度的维度设计器,然后单击“维度结构”选项卡。
在“层次结构”窗格中,请注意“客户所在地域”用户定义层次结构中的级别。 此层次结构当前只是用户的向下钻取路径,因为在级别或属性之间未定义任何关系。
单击 “属性关系” 选项卡。
请注意用于将 Geography 表的非键属性链接到 Geography 表的键属性的 4 个属性关系。 “地域”属性与“全名”属性相关。 由于“邮政编码”链接到“地域”属性,“地域”属性链接到“全名”属性,所以“邮政编码”属性通过“地域”属性间接链接到“全名”属性。 接下来,我们将更改属性关系,以便它们不使用“地域”属性。
在关系图中,右键单击“全名”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“全名”。 将“相关属性”设置为“邮政编码”。 因为各成员之间的关系会随时间变化,所以在“关系类型”列表中,将关系类型设置保留为“柔性”。
单击 “确定” 。
因为此关系是冗余关系,所以在关系图中会显示警告图标。 关系全名 ->地理>邮政编码已经存在,你刚刚创建了关系全名 ->邮政编码。 地理->邮政编码的关系现在是多余的,因此我们将删除它。
在 “属性关系 ”窗格中,右键单击“ 地理位置->邮政编码 ”,然后单击“ 删除”。
显示“删除对象”对话框时,单击“确定”。
在关系图中,右键单击“邮政编码”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“邮政编码”。 将“相关属性”设置为“市县”。 在“关系类型”列表中,将关系类型设置保留为“柔性”。
单击 “确定” 。
Geography-City> 的关系现在是冗余的,因此我们将将其删除。
在“属性关系”窗格中,右键单击“Geography-City>”,然后单击“删除”。
显示“删除对象”对话框时,单击“确定”。
在关系图中,右键单击“市县”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“市县”。 将“相关属性”设置为“省/市/自治区”。 因为市/县与州/省/自治区之间的关系将不会随着时间推移而更改,所以在“关系类型”列表中将关系类型设置为“刚性”。
单击 “确定” 。
右键单击“地域”和“省/市/自治区”之间的箭头,然后单击“删除”。
显示“删除对象”对话框时,单击“确定”。
在关系图中,右键单击“省/市/自治区”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“省/市/自治区”。 将“相关属性”设置为“国家/地区-区域”。 因为州/省/自治区与国家/地区区域之间的关系将不会随着时间的推移而更改,所以在“关系类型”列表中,将关系类型设置为“刚性”。
单击 “确定” 。
在“属性关系”窗格中,右键单击“地理位置-国家/>地区”,然后单击“删除”。
显示“删除对象”对话框时,单击“确定”。
单击“维度结构”选项卡。
请注意,在你删除“地域”和其他属性之间的最后一个属性关系后,“地域”本身也将被删除。 这是因为不再使用该属性。
在“文件”菜单上,单击“全部保存”。
为“销售区域”层次结构中的属性定义属性关系
打开“销售区域”维度的维度设计器,然后单击“属性关系”选项卡。
在关系图中,右键单击“销售区域所属国家/地区”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“销售区域所属国家/地区”。 将“相关属性”设置为“销售区域组”。 在“关系类型”列表中,将关系类型设置保留为“柔性”。
单击 “确定” 。
“销售区域组”现已链接到“销售区域所属国家”,而“销售区域所属国家”现已链接到“销售区域所属地区”。 其中每个关系的 RelationshipType 属性都设置为 “灵活 ”,因为国家/地区中的区域分组可能会随时间而更改,并且国家/地区分组可能会随时间而更改。
为“产品型号系列”层次结构中的属性定义属性关系
打开“产品”维度的维度设计器,然后单击“属性关系”选项卡。
在关系图中,右键单击“型号名称”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“型号名称”。 将“相关属性”设置为“产品系列”。 在“关系类型”列表中,将关系类型设置保留为“柔性”。
单击 “确定” 。
为“会计日期”层次结构中的属性定义属性关系
切换到“日期”维度的维度设计器,然后单击“属性关系”选项卡。
在关系图中,右键单击“月份名称”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“月份名称”。 将“相关属性”设置为“会计季度”。 在“关系类型”列表中,将关系类型设置为“刚性”。
单击 “确定” 。
在关系图中,右键单击“会计季度”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“会计季度”。 将“相关属性”设置为“会计半期”。 在“关系类型”列表中,将关系类型设置为“刚性”。
单击 “确定” 。
在关系图中,右键单击“会计半期”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“会计半期”。 将“相关属性”设置为“会计年度”。 在“关系类型”列表中,将关系类型设置为“刚性”。
单击 “确定” 。
为“日历日期”层次结构中的属性定义属性关系
在关系图中,右键单击“月份名称”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“月份名称”。 将“相关属性”设置为“日历季度”。 在“关系类型”列表中,将关系类型设置为“刚性”。
单击 “确定” 。
在关系图中,右键单击“日历季度”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“日历季度”。 将“相关属性”设置为“日历半期”。 在“关系类型”列表中,将关系类型设置为“刚性”。
单击 “确定” 。
在关系图中,右键单击“日历半期”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“日历半期”。 将“相关属性”设置为“日历年”。 在“关系类型”列表中,将关系类型设置为“刚性”。
单击 “确定” 。
为“地域”层次结构中的属性定义属性关系
打开“地域”维度的维度设计器,然后单击“属性关系”选项卡。
在关系图中,右键单击“邮政编码”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“邮政编码”。 将“相关属性”设置为“市县”。 在“关系类型”列表中,将关系类型设置为“柔性”。
单击 “确定” 。
在关系图中,右键单击“市县”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“市县”。 将“相关属性”设置为“省/市/自治区”。 在“关系类型”列表中,将关系类型设置为“刚性”。
单击 “确定” 。
在关系图中,右键单击“省/市/自治区”属性,然后选择“新建属性关系”。
在“创建属性关系”对话框中,“源属性”是“省/市/自治区”。 将“相关属性”设置为“国家/地区-区域”。 在“关系类型”列表中,将关系类型设置为“刚性”。
单击 “确定” 。
在关系图中,右键单击“地域关键字”特性,然后选择“属性”。
将 AttributeHierarchyOptimizedState 属性设置为 NotOptimized,将 AttributeHierarchyOrdered 属性设置为 False,并将 AttributeHierarchyVisible 属性设置为 False。
在“文件”菜单上,单击“全部保存” 。
在SQL Server Data Tools的“生成”菜单上,单击“部署 Analysis Services 教程”。