KDT#70 如何规划数据仓库的架构
在我们构建DW/BI系统时,如何来规划架构是非常重要的一步。我们是选择将系统建立在关系数据库中,还是建立在多维数据库中,还是关系数据库和多维数据库中都进行建立。在建立的多维数据库后,是否还有必要将多维模型建立在关系数据中?这些都是在架构数据仓库时首先要考虑的问题。通常的建议是关系数据库和多维数据库都需要。
目前,直接建立多维数据库也是可以实现数据仓库的,直接在交易系统中ETL数据到多维数据库中。但是这样是否是一个好的选择呢?以Microsoft Sql Server 2005为例,用微软的产品构建数据仓库时,Analysis Services是一定要包含在内。但是只有AS多维数据库从以下几个方面来讲是不够的。
1.一致性维度和一致性事实。
在一般较简单例子里,我们可以在ETL到AS多维数据库的过程中完成一致性维度和一致性事实的工作。但是现实中,在ETL的过程中一定会伴随着更新和删除数据的操作,而这些操作都应该在关系数据库中完成。
2.灾难恢复。
关系数据库的备份管理和恢复等操作相比AS多维数据库都已相当成熟和方便。
3.熟悉程度。
DBA等对SQL和关系数据库都非常熟悉,他们会抵制不使用关系数据库系统。
4.扩展的灵活性。
当修改AS多维数据库结构时,需要重新部署和迁移数据,而同样的功能在关系数据库中会非常容易。
5.适应将来变化的灵活性。
如果放弃关系数据库而直接使用AS多维数据库构建数据仓库系统,你就上了微软的贼船。
个人感觉,Kimball的MD架构是一个非常不错的选择,使用关系数据库存储多维数据,为了性能等原因可以在其上建立多维数据库。短期来说,直接建立多维数据库还是不可取的。