Project REAL分析服务技术探讨(3)
2007-05-15 09:28:13 来源:WEB开发网度量组
Project REAL实现的关系型数据模型包括三张实际的表:Store Sales、Store Inventory、和Distribution Center Inventory。物理上,为处理大量的数据(例如,每周约1.4亿-2.0亿条存货记录),需要按周来分割这三张实体表。分割是很重要的,因为:
◆这能提供更好的性能。查询只会扫描覆盖某个时段的分割表。一般情况下,这些分割表越多,它们就越小,查询就会执行的更快。
◆更容易删除数据。简单的删除分割表,就能删除数据。你不必再重新处理任何Cube。正常情况下,从一个实际的表中删除数据,都需要重新处理Cube。
◆更容易实现起伏不定的周期。例如,假定一个系统需要保存最近三年有价值的历史数据。你可以按不同的周期来获得分割表,累积到36个月即可。这比从某个固定日期开始,要好很多。新的分割表按照每周或者每月不断的被创建。三年以前的分割表就能直接被删除。
一个对SQL Server 2000分析服务应用很熟练的用户会注意到Project REAL设计中一个有趣的事情:所有的度量组都是包含再一个单一的Cube中。度量组提供了一个在SQL Server 2000分析服务中被称为Cube的对象。一个Cube就是一个实际的表,它会连接到维度的一个子集,这个子集在数据库中可以按指定的粒度使用。一个真实表粒度是各种维度里面级别最低的。SQL Server 2000分析服务有一个称为虚拟Cube的特性,允许你将各不相同的Cube聚合到一个简单框架中。在SQL Server 2005分析服务中,一个Cube就是一个这样的简单框架。现在的度量组就是捕获各种粒度的维度子集。
如果你想使用一个虚拟的Cube,可以使用在多个Cube之间连接的度量组来创建虚拟Cube。这些连接的Cube(老式的Cube)每个都带有一个简单度量组。事实上,这就是分析服务迁移向导(Analysis Services Migration Wizard)所创建的内容。它这样作,也是想要把SQL Server 2000数据库分析服务和SQL Server 2005数据库分析服务中的对象数目和类型保持一致。
赞助商链接