目的
在我们开发的周期的前期查看维度成员,一保证没有任何错误,确定是否有数据问题会影响维度设计,确定维度成员按照预先设置的出现。当我们发现问题的时候,可以及时的通过增加或修改数据源视图的计算成员来改变维度成员名的格式,或是某个属性的顺序需要改变。
在浏览维度成员前,我们必选先将设计部署到Analysis Services服务器中。
内容
在运行完维度向导的所有页面后,系统会创建一个包含维度设计的XML文件。我们可以在解决方案管理器中该项目的“维度”文件夹找到该文件:Dim Product.dim。在部署该项目数据库时,数据库中所有的Xml文件的内容,包括Dim Product.dim文件,都将被复制到Analysis Services服务器中,维度结构被创建,源数据被加工成维度。
1、在“生成”菜单中,选择“部署Analysis Services”,如果在服务器中国已存在Analysis Services数据库,这里有几点需要提示下,起了确保我们的Analysis服务已经启动,而这正确配置。简单的如下图配置方案:
并且确保我们的服务项目发布的时候本地实例名是正确的。
到这里我们开始部署我们的项目
当Product维度已经成功部署和处理之后,将在“部署进度”窗口中出现“部署成功完成”的信息,如上图。现在,维度设计器已经被部署到服务器并且源数据已经处理到维度。我们就可以浏览维度中包含的数据了。
提示:其实我们上面建立的项目部署到了我们本地的Analysis服务器中,并且将数据库连接字符一并更改到本地。我们可以通过企业查询分析器查看。如下图:
2、选择维度设计器的“浏览器”选项卡。
“浏览器”选项卡包含维度中的所有层次结构的列表,以及用来浏览维度的“级别和成员”窗格。下面中的“当前级别”指示器显示选中成员的级别。该指示器显示Category层次结构中所有成员属于All级别。
3、在“级别和成员”窗口中,展开All成员并选中第一个Category Key成员,“当前级别”指示器显示了选中的该成员属于Category级别。
Category属性成员被显示成整数是因为该属性是基于DimProductCategory表的ProductCategoryKey列。下面的文章我们尝试用“设置NameColumn属性”来修改此属性,使其显示描述性的类别名。
Category属性也包含未知成员。在前几章中我们已经提到,DimProduct表中的一些记录有空的ProductSubCategoryKey值,这些记录在这里的Category和Subcategory属设置成为了“UnKown”(未知)成员。
提示:Unknown(未知)成员
在处理关系型数据库时,数据完整性是一个大问题,特别是在原型开发阶段或是从非标准数据库仓库的源中建立多维数据集的时候。在这些情况下,事实表能有在维度表不存在的维度。
一般情况下,如果要处理事实表中的多维数据集,而该事实表中包含了维度中不存在的维度,那么处理过程就会失败。然而,在建立原型或解决方案需要准实时的信息时,我们应该忽略这种类型的错误并且继续处理。
通过启用维度中的UnknownMember属性,并将多维数据集中的KeyErrorAction属性设置成ConvertToUnknown,就能在事实表中丢失或存在无效的维度键时,放置处理错误。在这种情况下,事实表中的值会设置成Unknown维度成员。这导致了多维数据集每个度量值总和等于事实表每个事实的总和。
Unknown属性可能有3个值:可见、隐藏和无。UnknownMember属性的默认设置是“可见”,因此可以在新的维度中的每个属性层次结构中看到名为Unknown的成员,即使在维度表中并没有以Unknown命名的记录。如果将UnknownMember属性值设置成“隐藏”,维度将包含一个Unknown成员,当该成员不可见。如果将属性值设置成“无”,维度中将不会包含Unknown成员,并且在处理包含了维度中不存在的维度键的事实表时,将会出错,当然,也可以时候用维度的UnknowMemberName(未知成员名)属性来为Unknow成员指定新的名称。
4、展开“层次结构”下拉列表,由于AttributeHierarchyEnable特性被设置为False,因此List Price属性并没有出现列别中,看下图:
尽管无法浏览List price属性,但当将它作为Product ID属性的成员属性时,在这里可以看到其成员。
5、从“层次结构”下拉列表中选择Product ID并展开All成员,单击“成员属性”按钮并选中List Price复选框,如下图:
6、单击“确定”。“成员和级别“窗格显示了每个Product ID和其List Price成员属性;
7、在”层次结构“下拉列表框中,分别选择其他属性的层次结构。对于每个层次结构都能通过展开All来查看属性成员。
除了Category和Subcategory,每个属性都有显示文本名称的成员。Category和subcategory是整数名称,因为他们由DimCategory和DimSubcategory表中的整数主键列创建。这样在语义上肯定是模糊的,下面一节我们将联系如何修改这些整数属性,使他们有描述性的文本名称。