数据仓库是否应该是主数据存储库?

时间:2012-07-02 20:03:17

标签: database-design data-warehouse

通常,数据仓库是整合多个源系统的一种方法,通常用于报告目的。但是,在任何情况下,将数据仓库本身作为主数据库使用是个好主意(即捕获和管理数据,而不是从其他系统加载数据)?

3 个答案:

答案 0 :(得分:5)

答案简短 - 不,我不这么认为。您首先应该为生产数据库设计一个良好的,规范化的数据库结构 - 然后担心数据仓库部分。

保持仓库和生产数据库分离被认为是“最佳商业实践”,也许最重要的是它是一个设计考虑因素。数据仓库和生产数据库有两个不同的用途。生产数据库可能最重要的功能是可靠,一致和明确地捕获事务。这在设计数据库和选择软件时都很重要,即数据库引擎。

它的设计部分不容小觑 - 我要说在大多数项目中,一个好的数据库设计是人们应该做的第一件事。获得正确的表格结构比选择技术更重要。

如果您计划增长,尝试将数据稍微分离到不同的数据库中也可能是有意义的 - 因为它使以后更容易拆分数据库并在不同的硬件上运行不同的部分(当你获得了“前沿”,购买更多服务器要比购买功能更强大的服务器便宜得多,并且因为你以后可能需要拆分软件模块或者相互独立地重复使用它们。您不希望以相同的方式拆分数据仓库。

回顾一下,从生产数据库开始,稍后构建一个数据仓库 - 通常可以推迟,直到您感到需要组合来自不同来源的数据或将冗余添加到生产数据库中以实现更快的报告。 / p>


我在一家在线赌博公司工作了8年。我参与了生产数据库的设计,后来我负责构建数据仓库 - 所以上面的评论是基于一些错误和经验所解释的。

答案 1 :(得分:0)

@tobixen的好回顾。关于Datawarehouse最佳实践的另一件事是您不修改数据,您通常会附加数据(因此保留了历史记录)。

大多数数据仓库技术都面向这种模式。因此,在数据仓库上使用典型的OLTP系统或主数据系统将无法正常工作。

一般流程是

OLTP数据库 - > Datawarehouse>归档。

OLTP数据库可能会保留1个月到13个月的数据。 Datawarehouse将保留最多5/10年的数据(并非所有细节,可能已汇总),然后归档。

据说像Hadoop / Hive这样的BigData技术可以更容易地存储大量数据(例如10年)并以经济有效的方式处理它们。

答案 2 :(得分:0)

我不得不说一般不是,但是......我们被要求建立一个DWH,其中一个源系统是一个收集Twitter数据的“OLTP”系统。在这种情况下,我认为Twitter收集“OLTP”系统只保留1周的数据,每天将其传递给DWH进行存储,然后每天我们将摘要信息反馈给Twitter OLTP系统。在这种情况下,我们将成为Twitter数据的主要数据存储库......说实话,尽管这是我们第一次出现这种情况。

我不同意@Sathish Senathi我认为“Datawarehouse将保留最多5/10年的数据(并非所有细节,可能已经汇总)”。我永远不会将数据汇总到DWH中,始终保持最低谷物交易数据,但显然不是OLTP系统中的所有属性。

我承认没有从事过拥有大量数据的在线赌博,但我曾在电信和保险公司工作,这些公司拥有多TB的DWH。我们总是存储电话或付款/索赔交易的详细信息。