首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

BI SSAS怎么创建维度层次结构

2012-10-13 
BI SSAS如何创建维度层次结构多维数据集建好了,其中有一个地理区域表(garea),大致字段如下:AreaID varchar

BI SSAS如何创建维度层次结构
多维数据集建好了,其中有一个地理区域表(garea),大致字段如下:
AreaID varchar(20) Primary Key,
AreaName varchar(30),
RowID char(6),
ParentRowID char(6),
TreeControl varchar(36)

该表中AreaID是主键,RowID为一个六位唯一字段串用于唯一标志该行,ParentRowID是该行的上一级地区区域的ROWID值,treeControl也是一个唯一标志该行的字段,它有一个特性,同一层次的成员它的长度是一样的,而且Treecontrol的最后6位以前的文本就是上一级节点的Treecontrol,例如,广东省的TreeControl ACD123,广州市的Treecontrol可以为ACD123XYZ123,而番禺区(广州市的一个区)的Treecontrol可以为ACD123XYZ123EFG789。
现在的问题是,要如何在SSAS中创建一个地理区域的层次结构?

[解决办法]
首先你的Dimension 表的设计有点问题:
1)在所有的 Dimension 表 PK 一般都是 Int 数据类型,很少有用 varchar 的,因为要考虑将来增加记录的方便。
2)如果你的这个 Dimension 表是个固定记录的表,将来不增加删除记录,RowID 和 AreaID 似乎是重复的

假如你的表结构设计没有问题了,那么你的这个要求叫做 Parent-child schema(的一部分), (不知道中文应该如何表达)。实现起来有好几个步骤需要做,不是一句话讲的清楚,类似的问题所有的SSAS 书籍或者帮助文件里都有详细的介绍。 如果你是使用SQL Server 2005 或者 2008,可以参考AdventureWorksDW 实例数据库里的 DimEmployee 表的设计和在SSAS Cube 里的实现方法,它就是一个典型的 Parent-Child schema.
[解决办法]
RowID做KEY,Treecontrol做NAME,在维度向导里面就有父子维度。。如果还不满足就做代理键

热点排行