通常,数据仓库是一种整合多个源系统的方法,通常用于报告目的。但是,在某些情况下,使用数据仓库本身作为主数据库(即捕获和管理数据,而不是从另一个系统加载数据)是一个好主意吗?
发布于 2012-07-03 04:16:54
简短的回答是-不,我不这么认为,。您应该首先为生产数据库设计一个良好的、规范化的数据库结构,然后再考虑数据仓库部分。
保持仓库和生产数据库的分离被认为是“最佳业务实践”,也许最重要的是它是一个设计考虑因素。数据仓库和生产数据库有两种不同的用途。生产数据库最重要的功能可能是可靠、一致和明确地捕获事务。这在设计数据库和选择软件时都很重要,即数据库引擎。
它的设计部分不应该被低估--我想说,在大多数项目中,一个好的数据库设计是人们应该做的第一件事。获得正确的表结构比选择技术更重要。
如果您计划增长,尝试将数据隔离到不同的数据库中也很有意义-这是因为这样更容易在以后拆分数据库,并在不同的硬件上运行不同的部分(当您达到“尖端”时,购买更多的服务器比购买更强大的服务器要便宜得多),还因为您以后可能想要拆分软件模块或将它们彼此独立地重用。您不会希望以相同的方式拆分数据仓库。
因此,简单地说,先从生产数据库开始,然后构建数据仓库-通常可以推迟到您觉得有必要组合来自不同来源的数据或在生产数据库中添加冗余以实现更快的报告。
我在一家在线赌博公司工作了8年。我参与了生产数据库的设计,后来我负责构建数据仓库-所以上面的评论是基于一些错误和经验。
发布于 2012-07-04 14:25:57
@tobixen总结得很好。关于数据仓库的另一项最佳实践是,您不需要修改数据,而是通常附加数据(以便保留历史记录)。
大多数数据仓库技术都适合这种模式。因此,在数据仓库上使用典型的OLTP系统或Master Data系统将无法正常工作。
一般的流程是
OLTP数据库->数据仓库>归档。
OLTP数据库可能会保留数据1个月到13个月。数据仓库将保留数据,例如最多5 /10年(不是所有细节,可能是摘要),然后进行归档。
有人说,像Hadoop / Hive这样的BigData技术使得存储大量数据(比如10年)并以经济高效的方式处理它们变得更容易。
发布于 2012-08-23 23:32:03
我不得不说一般不是,但是...我们被要求构建一个DWH,它的源系统之一是一个收集Twitter数据的"OLTP“系统。在这种情况下,我认为Twitter收集" OLTP“系统只保留一周的数据,每天将其传递到DWH进行存储,然后每天将摘要信息反馈给Twitter OLTP系统。在这种情况下,我们将成为Twitter数据的主要数据存储库...老实说,这是我们第一次遇到这种情况。
我不同意@Sathish Senathi的说法,我认为"Datawarehouse将保留多达5 /10年的数据(不是所有细节,可能是摘要)“。我永远不会总结进入DWH的数据,总是保留最低粒度的事务数据,但显然不是OLTP系统中的所有属性。
我承认我没有从事过在线赌博,这是有非常大的数据,但我曾在电信和保险,有数to的DWHes。我们总是存储电话或保费/索赔交易本身的详细信息。
https://stackoverflow.com/questions/11300388
复制相似问题