积极答复者
关于维度设计的问题

问题
答案
-
非常好的问题。
- 理论上说,SSAS 可以使用任何形式的数据源来建立Cube, 在Cube 和 Data Source 之间有一个层: DSV: Data Source View, 在这个DSV 层里你可以组织和设计用于Cube 的表和关系;但是为了使DSV更为简洁和容易维护,这就要求 Data Source For Data Warehouse 应该更为接近Cube 的设计要求;这就涉及到了数据仓库的建模理论,建议你读一下 Kimball DW Methodology 这本书;
- 简单地说,如果你的‘关系型’数据库满足了下面的条件,就可以很方便的用于SSAS 中,
- 数据表之间满足 Referential Integrity ; 可以参考这篇文章:http://msdn.microsoft.com/en-us/library/aa933058(v=sql.80).aspx
- 使用Surrogate Key 作为主键;
- 如果你如果考虑性能,可以使用 Denomalization;
- 正确划分 Dimension 和 Fact 表
以上几个只是最基本的要求,其他关于 DW 建模的要求就太多了,建议你找一本书来读读。
- 已编辑 PatrickFengModerator 2011年10月24日 12:46
- 已标记为答案 Molly Chen_Moderator 2011年10月25日 9:40
-
那个东西叫surrogate key,你写错了。使用surrogate key不是必须的,要看情况,通常是business key过长或者type 2 scd。
另外,DW通常不用foreign key,而是自己通过etl保证data integrity,这个有时被称为logical foreign key。
PDW甚至连primary key都不允许有,得自己保证dimension key的唯一性。
P.S. 以上都不是必须的,SSAS通过unknown member和distinct来搞定这些问题。
想不想时已是想,不如不想都不想。- 已标记为答案 Molly Chen_Moderator 2011年10月25日 9:40
全部回复
-
非常好的问题。
- 理论上说,SSAS 可以使用任何形式的数据源来建立Cube, 在Cube 和 Data Source 之间有一个层: DSV: Data Source View, 在这个DSV 层里你可以组织和设计用于Cube 的表和关系;但是为了使DSV更为简洁和容易维护,这就要求 Data Source For Data Warehouse 应该更为接近Cube 的设计要求;这就涉及到了数据仓库的建模理论,建议你读一下 Kimball DW Methodology 这本书;
- 简单地说,如果你的‘关系型’数据库满足了下面的条件,就可以很方便的用于SSAS 中,
- 数据表之间满足 Referential Integrity ; 可以参考这篇文章:http://msdn.microsoft.com/en-us/library/aa933058(v=sql.80).aspx
- 使用Surrogate Key 作为主键;
- 如果你如果考虑性能,可以使用 Denomalization;
- 正确划分 Dimension 和 Fact 表
以上几个只是最基本的要求,其他关于 DW 建模的要求就太多了,建议你找一本书来读读。
- 已编辑 PatrickFengModerator 2011年10月24日 12:46
- 已标记为答案 Molly Chen_Moderator 2011年10月25日 9:40
-
那个东西叫surrogate key,你写错了。使用surrogate key不是必须的,要看情况,通常是business key过长或者type 2 scd。
另外,DW通常不用foreign key,而是自己通过etl保证data integrity,这个有时被称为logical foreign key。
PDW甚至连primary key都不允许有,得自己保证dimension key的唯一性。
P.S. 以上都不是必须的,SSAS通过unknown member和distinct来搞定这些问题。
想不想时已是想,不如不想都不想。- 已标记为答案 Molly Chen_Moderator 2011年10月25日 9:40