自动将属性成员分组
浏览多维数据集时,通常根据一个属性层次结构的成员来确定另一个属性层次结构的成员的维度。例如,可以按城市、购买的产品或性别将客户销售分组。但是,对于某些类型的属性,如果由 Microsoft SQL Server 2005 Analysis Services (SSAS) 根据属性层次结构中的成员分布自动创建属性成员分组,将会很有用。例如,可以让 Analysis Services 创建客户的年收入值组。进行此操作时,浏览属性层次结构的用户将看到组的名称和值,而不是成员本身。这就限制了向用户显示的级别的数量,从而更有助于进行分析。
DiscretizationMethod 属性可以确定 Analysis Services 是否执行分组,并确定要执行的分组的类型。默认情况下,Analysis Services 不执行任何分组。如果启用了自动分组,则可以让 Analysis Services 根据属性的结构自动确定最佳分组方法,也可以选择下面列表中的一个分组算法来指定分组方法:
- EqualAreas
Analysis Services 创建分组范围,在各个组之间平均分布所有维度成员。
- Clusters
Analysis Services 使用 K-Means 聚类分析方法和高斯分布,对输入值执行单一维度聚类分析,以此创建分组。此选项只对数值列有效。
指定了一种分组方法后,必须使用 DiscretizationBucketCount 属性指定分组的数量。有关详细信息,请参阅对属性成员分组(离散化)
在本主题的任务中,将对以下对象启用不同类型的分组方法:“客户”维度中的年度收入值;“雇员”维度中的雇员病假时数;“雇员”维度中的雇员休假时数。然后,处理并浏览 Analysis Services Tutorial 多维数据集,以此查看各成员组的情况。最后,修改成员组的参数,查看组类型更改的效果。
为“客户”维度中的属性层次结构成员分组
为“客户”维度中的属性层次结构成员分组
在解决方案资源管理器中,双击**“维度”文件夹中的“客户”**,打开“客户”维度的维度设计器。
在**“数据源视图”窗格中,右键单击 Customer 表,再单击“浏览数据”**。
注意,YearlyIncome 列的值的范围。如果未启用成员分组,这些值将成为**“年收入”**属性层次结构的成员。
关闭**“浏览 DimCustomer 表”**选项卡。
在**“属性”窗格中,选择“年收入”**。
在“属性”窗口中,将 DiscretizationMethod 属性的值更改为 Automatic,将 DiscretizationBucketCount 属性的值更改为 5。
下图显示了修改后的**“年收入”**属性。
为“雇员”维度中的属性层次结构成员分组
为“雇员”维度中的属性层次结构成员分组
切换到“雇员”维度的维度设计器。
在**“数据源视图”窗格中,右键单击 Employee 表,再单击“浏览数据”**。
注意 SickLeaveHours 列和 VacationHours 列的值。
关闭**“浏览 DimEmployee 表”**选项卡。
在**“属性”窗格中,选择“病假时间”**。
在“属性”窗口中,将 DiscretizationMethod 属性的值更改为 Clusters,将 DiscretizationBucketCount 属性的值更改为 5。
在**“属性”窗格中,选择“休假时间”**。
在“属性”窗口中,将 DiscretizationMethod 属性的值更改为 Equal Areas,将 DiscretizationBucketCount 属性的值更改为 5。
浏览已修改的属性层次结构
浏览已修改的属性层次结构
在 Business Intelligence Development Studio 的**“生成”菜单上,单击“部署 Analysis Services 教程”**。
成功完成布置后,切换到 Analysis Services Tutorial 多维数据集的多维数据集设计器,再单击**“浏览”选项卡上的“重新连接”**。
从**“数据”窗格的行字段区域中删除“雇员”层次结构的所有级别,并从“数据”**窗格中删除所有度量值。
将**“Internet 销售额”度量值添加到“数据”**窗格的数据区域。
在**“元数据”窗格中,展开“产品”** 维度,再将**“产品型号系列”用户层次结构拖到“数据”窗格的“将行字段拖至此处”**区域。
展开**“元数据”窗格中的“客户”维度,再展开“人口统计”显示文件夹,然后将“年收入”属性层次结构拖到“将列字段拖至此处”**区域。
注意,Yearly Income 属性层次结构现在已分组到六个存储桶,其中包括一个用于年收入未知的客户的销售的存储桶。
从列区域删除**“年收入”属性层次结构,从“数据”窗格中删除“Internet 销售额”**度量值。
将**“分销商销售额”**度量值添加到数据区域。
在**“元数据”窗格中,展开“雇员”,再展开“组织”,然后右键单击“病假时间”,再单击“添加到列区域”**。
注意,所有销售是由两个组中的其中一个组的雇员完成的。(如果要查看没有销量人员的三个组,请右键单击数据区域,再单击**“显示空单元”**)。另注意,病假时数为 32 - 42 小时的雇员完成的销售比病假时间为 20 - 31 小时的雇员完成的销售多得多。
下图显示了按雇员病假时数确定维度的销售。
从**“数据”窗格的列区域删除“病假时间”**属性层次结构。
将**“休假时间”**添加到 **“数据”**窗格的列区域。
注意,根据等区域分组方法,显示了两个组。其他三个组因不包含数据值而被隐藏。
修改分组属性并检查更改的效果
修改分组属性并检查更改的效果
切换到“雇员”维度的维度设计器,再在**“属性”窗格中选择“休假时间”**。
在“属性”窗口中,将 DiscretizationBucketCount 属性值更改为 10。
在 BI Development Studio 的**“生成”菜单上,单击“部署 Analysis Services 教程”**。
成功完成部署后,切换回 Analysis Services Tutorial 多维数据集的多维数据集设计器。
在**“浏览器”选项卡上单击“重新连接”**,然后查看更改分组方法的效果。
注意,现在有三组具有**“休假时间”**属性的成员,这些成员都有产品销售值。(其他七个组包含没有销售数据的成员。)