自动对属性成员进行分组

浏览多维数据集时,通常根据另一个属性层次结构的成员来衡量一个属性层次结构的成员。 例如,可以按城市、购买的产品或性别对客户销售进行分组。 但是,对于某些类型的属性,Microsoft Analysis Services 根据属性层次结构中成员的分布自动创建属性成员的分组非常有用。 例如,可以让 Analysis Services 为客户创建年度收入值组。 执行此作时,浏览属性层次结构的用户将看到组的名称和值,而不是成员本身。 这会限制向用户显示的级别数,这对于分析更有用。

DiscretizationMethod 属性确定 Analysis Services 是否创建分组,并确定执行的分组类型。 默认情况下,Analysis Services 不执行任何分组。 启用自动分组时,可以允许 Analysis Services 根据属性的结构自动确定最佳分组方法,也可以选择以下列表中的一种分组算法来指定分组方法:

EqualAreas Analysis Services 创建组范围,使维度成员的总体均等分布于各个组中。

集群 Analysis Services 通过在高斯分布中使用 K-Means 聚类分析方法对输入值执行单维聚类分析来创建组。 此选项仅适用于数值列。

指定分组方法后,必须使用 DiscretizationBucketCount 属性指定组数。 有关详细信息,请参阅 组属性成员(离散化)

在本主题中的任务中,你将为以下项启用不同类型的分组: “客户 ”维度中的年收入值; “员工 ”维度中员工病假小时数;和 “员工 ”维度中的员工休假小时数。 然后,你将处理并浏览 Analysis Services 教程多维数据集以查看成员组的效果。 最后,将修改成员组属性,以查看分组类型更改的效果。

在客户维度中对属性层次结构成员进行分组

  1. 在解决方案资源管理器中,双击“维度”文件夹中的“客户”,打开“客户”维度的维度设计器。

  2. “数据源视图 ”窗格中,右键单击 “客户 ”表,然后单击“ 浏览数据”。

    请注意 YearlyIncome 列的值范围。 除非启用成员分组,否则这些值将成为 Yearly Income 属性层次结构的成员。

  3. 关闭 “浏览客户表 ”选项卡。

  4. 在“ 属性 ”窗格中,选择“ 年收入”。

  5. 在“属性”窗口中,将 DiscretizationMethod 属性的值更改为 “自动 ”,并将 DiscretizationBucketCount 属性的值更改为 5

    下图显示了 Yearly Income 的修改属性。

    修改后的年收入属性

在员工维度中对属性层次结构成员进行分组

  1. 切换到员工维度设计器。

  2. “数据源视图 ”窗格中,右键单击 “员工 ”表,然后单击“ 浏览数据”。

    请注意 SickLeaveHours 列和 VacationHours 列的值。

  3. 关闭 “浏览员工表 ”选项卡。

  4. “属性 ”窗格中,选择“ 病假小时数”。

  5. 在“属性”窗口中,将 DiscretizationMethod 属性的值更改为 Clusters ,并将 DiscretizationBucketCount 属性的值更改为 5

  6. 在“ 属性 ”窗格中,选择“ 休假时间”。

  7. 在“属性”窗口中,将 DiscretizationMethod 属性的值更改为 “等于区域 ”,并将 DiscretizationBucketCount 属性的值更改为 5

浏览修改的属性层次结构

  1. 在 SQL Server Data Tools (SSDT) 的“构建”菜单上,单击“部署 Analysis Services 教程”

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

  3. 单击 Excel 图标,然后单击“ 启用”。

  4. Internet Sales-Sales Amount 度量值拖到数据透视表字段列表的值区域。

  5. 在字段列表中,展开 “产品 ”维度,然后将 “产品模型行 ”用户层次结构拖到字段列表的 “行标签 ”区域。

  6. 展开字段列表中的 “客户 ”维度,展开 “人口统计 ”显示文件夹,然后将 “年收入 ”属性层次结构拖动到 “列标签 ”区域。

    Yearly Income 属性层次结构的成员现在分为六个分组,包括一个用于年收入未知客户销售的分组。 并不是所有的存储桶都被显示出来。

  7. 从列区域中删除 Yearly Income 属性层次结构,并从“值”区域中删除 Internet Sales-Sales Amount 度量值。

  8. Reseller Sales-Sales Amount 度量值添加到数据区域。

  9. 在字段列表中,展开 “员工 ”维度,展开 “组织”,然后将 “病假时间 ”拖到 “列标签”。

    请注意,所有销售都是由两个组中的员工进行。 另请注意,有32至42个病假的雇员比20-31个病假的雇员的销售额要大得多。

    下图显示了按员工病假工时维度划分的销售数据。

    按员工病假小时数划分的销售额

  10. “数据”窗格的列区域中删除“病假小时数”属性层次结构。

  11. “休假时间 ”添加到 “数据 ”窗格的列区域。

    请注意,根据相等面积的分组方法,识别出两个组。 另外三个组被隐藏,因为它们不包含数据值。

修改分组属性并查看更改的效果

  1. 切换到“员工”维度的维度设计器,然后在“属性”窗格中选择“休假时间”。

  2. 在“属性”窗口中,将 DiscretizationBucketCount 属性的值更改为 10。

  3. 在 SQL Server Data Tools 的“构建”菜单上,单击“分析服务教程部署”

  4. 部署成功完成后,切换回 Analysis Services 教程多维数据集的多维数据集设计器。

  5. 单击“浏览器”选项卡上的“重新连接”,单击 Excel 图标,然后重新构造数据透视表,以便可以查看对分组方法所做的更改的效果:

    1. 将经销商 Sales-Sales 金额拖到数值区域

    2. 将“员工组织”文件夹中的“休假时间”拖动到数据列中

    3. 将产品型号线拖动到行

    请注意,现在有三组 “休假时间” 属性的成员具有产品的销售值。 (其他七个组包含没有销售数据的成员。

课程中的下一个任务

隐藏和禁用属性层次结构

另请参阅

组属性成员 (离散化)