定义度量值组中的维度粒度

用户可能需要针对不同目的定义不同粒度或专一性的事实数据表维度。 例如,分销商或 Internet 销售的销售额数据可以每天记录一次,而销售配额信息则可能按月或按季度级别来记录。 在这些情况下,用户可能需要时间维度针对这些不同的事实数据表具有不同的粒度或详细程度。 虽然可以使用此不同粒度将新的数据库维度定义为时间维度,但使用 Analysis Services 有一种更简单的方法。

默认情况下,在 Analysis Services 中,在度量值组中使用维度时,该维度中的数据粒度基于维度的键属性。 例如,当度量值组中包括时间维度并且时间维度的默认粒度为每天,则度量值组中该维度的默认粒度也为每天。 多数情况下这样是合适的,例如本教程中的“Internet 销售”和“分销商销售”度量值组便是恰当的示例。 但是,当其他类型的度量值组(例如“销售配额”或“预算”度量值组)中包括此类维度时,则使用每月粒度或每季度粒度更为合适。

若要为多维数据集维度指定默认粒度以外的粒度,则需要在多维数据集设计器的“维度用法”选项卡上修改特定度量值组中使用的多维数据集维度的粒度属性。 当您将特定度量值组中某一维度的粒度更改为该维度的键属性之外的属性时,必须保证该度量值组中的所有其他属性与这一新粒度属性直接或间接相关。 方法是在所有其他属性与被指定为度量值组中粒度属性的属性之间指定属性关系。 在这种情况下,可以定义其他属性关系,而不是移动属性关系。 对于维度中的其余属性而言,有效指定为粒度属性的属性将成为度量值组中的键属性。 如果未正确指定属性关系,Analysis Services 将无法正确聚合值,如本主题中的任务所示。

有关详细信息,请参阅 维度关系定义常规关系和常规关系属性

在本主题的任务中,您将添加“销售配额”度量值组并将该度量值组中的“日期”维度的粒度定义为每月。 然后定义月份属性和其他维度属性之间的属性关系,以确保 Analysis Services 正确聚合值。

添加表并定义“销售配额”度量值组

  1. 切换到 Adventure Works DW 2012 数据源视图。

  2. 右键单击“ 关系图组织程序 ”窗格中的任意位置,单击“ 新建关系图”,然后将关系图 Sales Quotas命名为 。

  3. “员工”、“ 销售区域”和 Date “表”从“ ”窗格拖动到“ 关系图 ”窗格。

  4. 右键单击“关系图”窗格中的任意位置并选择“添加/删除表”,以将 FactSalesQuota 表添加到“关系图”窗格中。

    注意, SalesTerritory 表通过 Employee 表链接到 FactSalesQuota 表。

  5. 检查 FactSalesQuota 表中的列,然后浏览此表中的数据。

    注意,此表内数据的粒度为日历季度,该粒度的详细程度处于 FactSalesQuota 表中的最低级别。

  6. 在数据源视图Designer,将 FactSalesQuota 表的 FriendlyName 属性更改为 SalesQuotas

  7. 切换到 Analysis Services 教程多维数据集,然后单击“ 多维数据集结构 ”选项卡。

  8. 右键单击“度量值”窗格中的任意位置,单击“新建度量值组”,在“新建度量值组”对话框中单击SalesQuotas,然后单击“确定”。

    度量 Sales Quotas 值组显示在“ 度量值 ”窗格中。 请注意,在“维度”窗格中,还基于Date数据库维度定义了新的Date多维数据集维度。 定义了与时间相关的新多维数据集维度,因为 Analysis Services 不知道哪些与时间相关的现有多维数据集维度与 FactSalesQuota 事实数据表中的 DateKey 列相关,而该列是 Sales Quotas 度量值组的依据。 以后在本主题的其他任务中,您可以对此进行更改。

  9. 展开 Sales Quotas 度量值组。

  10. 在“度量值”窗格中,选择“销售额配额”,然后在“属性”窗口中将 FormatString 属性的值设置为 Currency

  11. 选择“销售配额计数”度量值,然后在属性窗口中键入 #,#FormatString 属性的值。

  12. 从度量值组中删除 “日历季度 ”度量值 Sales Quotas

    Analysis Services 检测到日历季度度量值作为包含度量值的列。 但是,在本主题后面部分,您将使用该列和 CalendarYear 列包含的值将“销售配额”度量值组链接到“日期”维度。

  13. 在“ 度量值 ”窗格中,右键单击度量 Sales Quotas 值组,然后单击“ 新建度量值”。

    将打开“新建度量值”对话框,其中包含使用类型为 Sum 的度量值的可用源列。

  14. 在“新建度量值”对话框中,选择“使用情况”列表中的“非重复计数”,验证SalesQuotas是否已在“源表”列表中选择,在“源列”列表中选择“EmployeeKey”,然后单击“确定”。

    注意,将在名为“销售配额 1”的新度量值组中创建该度量值。 SQL Server中的不同计数度量值在自己的度量值组中创建,以最大程度地提高处理性能。

  15. Employee Key Distinct Count 度量值的 Name 属性的值更改为 Sales Person Count,然后键入 #,# 作为 FormatString 属性的值。

按日期浏览“销售配额”度量值组中的度量值

  1. 在“生成”菜单上,单击“部署 Analysis Services 教程”

  2. 部署成功完成后,单击 Analysis Services 教程多维数据集的多维数据集Designer中的“浏览器”选项卡,然后单击“重新连接”按钮。

  3. 单击 Excel 快捷方式,然后单击“启用”

  4. 在“数据透视表字段列表”中 Sales Quotas ,展开度量值组,然后将 “销售额配额” 度量值拖到“值”区域。

  5. 展开“销售区域”维度,然后将“销售区域”用户定义层次结构添加到行标签。

    注意,“销售区域”多维数据集维度没有与 Fact Sales Quota 表直接或间接相关,如下图所示。

    销售区域多维数据集维度

    在本主题的下一系列步骤中,您将在该维度和该事实数据表之间定义引用维度关系。

  6. 将“销售区域”用户层次结构从“行标签”区域移到“列标签”区域。

  7. 在数据透视表字段列表中,选择“销售区域”用户层次结构,然后单击右侧的向下箭头。

    字段列表中的 Sales Territories 层次结构字段列表中的

  8. 在筛选器中,单击“全选”复选框以取消选中所有选择,然后仅选择 North America

    用于选择北美

  9. 在“数据透视表字段列表”中,展开 Date

  10. Date.Fiscal Date 用户层次结构拖到行标签

  11. 在数据透视表中,单击“行标签”旁的向下箭头。 取消选中除 FY 2008之外的所有年份。

    请注意,仅显示月份级别的 2007 年 7 月成员,而不是月份级别的 July、 20078月和 2007 年 9 月成员,并且仅显示该级别的 2007 年 7 月 1 日成员Date,而不是全部 31 天。 发生此行为是因为事实数据表中的数据粒度位于季度级别,维度的 Date 粒度为每日级别。 在本主题的下一个任务中,您可以对此行为进行更改。

    另注意,月份级别和日级别以及季度级别的“销售额配额”值相同,都为 $13,733,000.00。 这是因为“销售配额”度量值组中最低的数据级别为季度级别。 你可以在第 6 课中更改此行为。

    下图显示了“销售额配额”的值。

    Sales Amount Quota

定义“销售配额”度量值组的维度用法属性

  1. 打开“雇员”维度的维度设计器,右键单击“数据源视图”窗格中的 SalesTerritoryKey,然后单击“从列新建属性”

  2. 在“属性”窗格中,选择 SalesTerritoryKey,然后在“属性”窗口中,将 AttributeHierarchyVisible 属性设置为 False,将 AttributeHierarchyOptimizedState 属性设置为 NotOptimized,并将 AttributeHierarchyOrdered 属性设置为 False

    若要将“销售区域”维度链接到作为引用维度的Sales Quotas“销售配额 1”度量值组,则需要此属性。

  3. 在 Analysis Services 教程多维数据集的多维数据集Designer中,单击“维度使用情况”选项卡,然后查看和“销售配额 1”度量值组中的Sales Quotas维度使用情况。

    请注意, “员工 ”和 Date “多维数据集”维度通过常规关系链接到“ 销售配额”和“销售配额 1 ”度量值组。 另外注意,“销售区域”多维数据集维度未链接到这些度量值组中的任何一组。

  4. 单击 “销售区域” 维度与度量值组交集处的 Sales Quotas 单元格,然后单击浏览按钮 (...) 。“ 定义关系 ”对话框随即打开。

  5. 在“选择关系类型”列表中,选择“被引用的”

  6. 在“中间维度”列表中,选择“雇员”

  7. 在“引用维度属性”列表中,选择“销售区域所属地区”

  8. 在“中间维度属性”列表中,选择“销售区域关键字”。 (“销售区域所属地区”属性的键列为 SalesTerritoryKey 列。)

  9. 验证是否选中了“具体化”复选框。

  10. 单击“确定”。

  11. 单击“ 销售区域” 维度和“ 销售配额 1 ”度量值组交集处的单元格,然后单击浏览按钮 (...) 。“ 定义关系 ”对话框随即打开。

  12. 在“选择关系类型”列表中,选择“被引用的”

  13. 在“中间维度”列表中,选择“雇员”

  14. 在“引用维度属性”列表中,选择“销售区域所属地区”

  15. 在“中间维度属性”列表中,选择“销售区域关键字”。 (“销售区域所属地区”属性的键列为 SalesTerritoryKey 列。)

  16. 验证是否选中了“具体化”复选框。

  17. 单击“确定”。

  18. Date删除多维数据集维度。

    将度量值组中的 “订单日期 ”多维数据集维度 Sales Quotas 用作销售配额维度的维度,而不是四个与时间相关的多维数据集维度。 还会将此多维数据集维度用作多维数据集中的主日期维度。

  19. 在“ 维度” 列表中,将 “订单日期 ”多维数据集维度重命名为 Date

    重命名 Order Date 多维数据集维度, Date 使用户能够更轻松地了解其作为此多维数据集中主要日期维度的角色。

  20. 单击“浏览”按钮 (...) 单元格中度量值组与Date维度的Sales Quotas交集处。

  21. 在“定义关系”对话框中,选择“选择关系类型”列表中的“常规”

  22. 在“粒度属性”列表中,选择“日历季度”

    注意此时会出现一个警告,它指出由于已选择非键属性作为粒度属性,所以必须通过将所有其他属性指定为成员属性来确保它们与粒度属性直接或间接相关。

  23. 在“定义关系”对话框的“关系”区域中,将“日期”多维数据集维度下面表中的 CalendarYearCalendarQuarter 维度列链接到“销售配额”度量值组下面表中的 CalendarYearCalendarQuarter 列,然后单击“确定”

    注意

    “日历季度”定义为“销售配额”度量值组中“日期”多维数据集维度的粒度属性,但“日期”属性仍作为“Internet 销售”和“分销商”度量值组的粒度属性。

  24. Sales Quotas 1 度量值组重复前面的四个步骤。

定义“日期”维度中“日历季度”属性和其他维度属性之间的属性关系

  1. 切换到维度的维度DesignerDate,然后单击“属性关系”选项卡。

    请注意,虽然日历年通过日历学期属性链接到日历季度,但会计日历属性仅相互链接;它们未链接到 Calendar Quarter 属性,因此不会在Sales Quotas度量值组中正确聚合。

  2. 在关系图中,右键单击“日历季度”属性,然后选择“新建属性关系”

  3. 在“创建属性关系”对话框中,“源属性”是“日历季度”。 将“相关属性”设置为“会计季度”

  4. 单击“确定”。

    请注意,出现一条警告消息,指出 Date 维度包含一个或多个冗余属性关系,当非键属性用作粒度属性时,这些关系可能会阻止数据聚合。

  5. 请删除“月份名称”属性和“会计季度”属性之间的属性关系。

  6. 在“文件”菜单上,单击“全部保存” 。

按日期浏览“销售配额”度量值组中的度量值

  1. 在“生成”菜单上,单击“部署 Analysis Services 教程”

  2. 部署成功完成后,单击 Analysis Services 教程多维数据集的多维数据集Designer中的“浏览器”选项卡,然后单击“重新连接”。

  3. 单击 Excel 快捷方式,然后单击“启用”

  4. 将“销售配额”度量值拖到“值”区域。

  5. 将“销售区域”用户层次结构拖到列标签,然后筛选 North America

  6. Date.FiscalDate 用户层次结构拖到行标签,然后在数据透视表上单击“行标签”旁的向下箭头,并且取消选中除了 FY 2008 之外的所有复选框,以便只显示会计年度 2008。

  7. 单击“确定”。

  8. 依次展开 FY 2008H1 FY 2008以及 Q1 FY 2008

    下图显示了 Analysis Services 教程多维数据集的数据透视表,其中“销售配额”度量值组已正确设置维度。

    请注意,会计季度级别的每个成员都具有与季度级别相同的值。 以 Q1 FY 2008 为例, Q1 FY 2008 的 $9,180,000.00 的配额也是其每个成员的值。 出现此行为是因为事实数据表中数据的粒度属于季度级别,“日期”维度的粒度也属于季度级别。 在第 6 课中,你将了解如何按比例将季度量分配到每个月。

    销售配额度量值组已正确维度

下一课

第 6 课:定义计算

另请参阅

维度关系
定义常规关系和常规关系属性
使用数据源视图设计器中的关系图 (Analysis Services)