维度建模中的数据存储(一)
Dimensional Relational vs. OLAP: The Final Deployment Conundrum
by Ralph Kimball,2007年4月27日
维度模型保存在关系数据库中还是OLAP中
在维度建模的数据仓库之中,是使用关系数据库来保存数据还是使用OLAP Cube来保存数据是一个需要数据仓库架构师作出选择的问题。在本文中列举了两种可选方式的34条优点和缺点,供大家参考。
在现在的数据仓库环境中,ETL作为最终的一个部署步骤已经逐渐成为一个单独的系统。而将发布给最终用户环境的数据保存在维度建模的关系数据库中还是保存在OLAP Cube中也是这时需要作出选择的事情。但是目前大部分情况下,人们只是将这个选择视为一个战术选择,对它的重视程度不够。那么这个选择是否如此简单呢?在我们动手做做这个选择之前,是否应该好好考虑一下呢?
在这篇文章中,我们会仔细的研究这个难题,并且力劝大家在设计数据仓库的初期就来解决这个问题。
BI开发者大部分都认为维度模型的数据对用户来说是最友好的数据。 如果你设计的数据仓库是一个支持所有BI系统的平台,那么在建设数据仓库的ETL处理过程中的最后一步就是生成维度格式的数据。很多BI开发者都已经认识到,一套设计良好的维度模型的关系数据库表可以很容易的转化为OLAP Cube,基本上做一对一映射即可
由于下面列出的各种原因,我建议所有的OLAP Cube都应该从维度模型来建立。这样,关系模型中的维度表会成为Cube的维度,也就是Cube的边。而关系模型中的事实表会成为Cube的单元格的数据内容。
在关系维度模型表和OLAP Cube的维度之间只有一些微小的差别,大部分的实现方法都是相同的。也正因为差别过于微小,很多人都到了数据仓库最后的步骤才来考虑如何来作出选择。更糟糕的是,还有一些BI开发者认为它们的差别很小,实施时可以在关系维度模型表和OLAP Cube间互相转换。
不要这么快做结论。在正确的环境中,ETL替换管道是可以和最终的部署步骤分离的,但是关系维度模型表和OLAP的选择会面临很多问题,需要仔细的考虑。让我们先看看这两个选择各自的优缺点吧。