第 4-3 课 - 自动分组属性成员

适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

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

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

EqualAreas
SQL Server Analysis Services创建组范围,以便维度成员的总填充在组中平均分布。

群集
SQL Server Analysis Services通过使用具有高斯分布的 K-Means 聚类分析 方法对输入值执行单维聚类分析来创建组。 此选项只对数值列有效。

指定了一种分组方法后,必须使用 DiscretizationBucketCount 属性指定分组的数量。 有关详细信息,请参阅 Group Attribute Members (Discretization)

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

为“客户”维度中的属性层次结构成员分组

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

  2. 在“数据源视图”窗格中,右键单击 Customer 表,再单击“浏览数据”。

    注意, YearlyIncome 列的值的范围。 如果未启用成员分组,这些值将成为 年收入 属性层次结构的成员。

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

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

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

    下图显示了修改后的“年收入”属性。

    年收入的已修改属性 修改

为“雇员”维度中的属性层次结构成员分组

  1. 切换到“雇员”维度的维度设计器。

  2. 在“数据源视图”窗格中,右键单击 Employee 表,再单击“浏览数据”

    注意 SickLeaveHours 列和 VacationHours 列的值。

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

  4. 在“属性”窗格中,选择“病假时间”

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

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

  7. 在“属性”窗口中,将 DiscretizationMethod 属性的值更改为 Equal Areas ,将 DiscretizationBucketCount 属性的值更改为 5

浏览已修改的属性层次结构

  1. 在SQL Server Data Tools的“生成”菜单上,单击“部署 Analysis Services 教程”。

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

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

  4. 将“Internet 销售-销售额”度量值拖到数据透视表字段列表的“值”区域。

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

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

    “年收入”属性层次结构的成员现在已分为六个存储桶,其中包括一个用于年收入未知的客户的销量的存储桶。 并非所有的存储桶都会显示出来。

  7. 从列区域删除“年收入”属性层次结构,从“值”区域中删除“Internet 销售-销售额”度量值。

  8. 将“分销商销售-销售额”度量值添加到数据区域。

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

    注意,所有销售是由两个组中的其中一个组的雇员完成的。 另注意,病假时数为 32 - 42 小时的雇员完成的销售比病假时间为 20 - 31 小时的雇员完成的销售多得多。

    下图显示了按雇员病假时数确定维度的销售。

    按员工病假小时数维度

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

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

    注意,根据等区域分组方法,显示了两个组。 其他三个组因不包含数据值而被隐藏。

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

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

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

  3. 在SQL Server Data Tools的“生成”菜单上,单击“部署 Analysis Services 教程”。

  4. 部署成功完成后,请切换回SQL Server Analysis Services教程多维数据集的多维数据集Designer。

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

    1. 将“分销商销售-销售额”拖到值

    2. 将休假时间(在“雇员组织”文件夹中)拖到列

    3. 将产品型号系列拖到行

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

课程中的下一个任务

隐藏和禁用属性层次结构

另请参阅

对属性成员分组(离散化)