1

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

4

3 回答 3

5

简短的回答——不,我不这么认为。您应该首先为生产数据库设计一个好的、规范化的数据库结构——然后再考虑数据仓库部分。

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

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

如果您打算增长,尝试将数据稍微隔离到不同的数据库中也可能很有意义 - 两者都是因为它可以更容易地稍后拆分数据库并在不同的硬件上运行不同的部分(当您点击“流血边缘”,购买更多服务器比购买更强大的服务器便宜得多)并且因为您以后可能想要拆分软件模块或彼此独立地重复使用它们。您不希望以同样的方式拆分数据仓库。

因此,回顾一下,从生产数据库开始,稍后再构建数据仓库——这通常可以推迟到您感到有合并来自不同来源的数据或在生产数据库中添加冗余以实现更快报告的冲动之前。


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

于 2012-07-02T20:16:54.300 回答
0

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

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

一般流程是

OLTP 数据库 -> 数据仓库 > 归档。

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

据说 Hadoop / Hive 等大数据技术使存储大量数据(比如 10 年)和以具有成本效益的方式处理它们变得更加容易。

于 2012-07-04T06:25:56.780 回答
0

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

我不同意@Sathish Senathi 我认为“Datawarehouse 将保留数据最多 5 /10 年(不是所有细节,可能是总结)”的说法。我永远不会汇总进入 DWH 的数据,总是保留最低粒度的事务数据,但显然不是 OLTP 系统中的所有属性。

我承认没有从事过拥有大量数据的在线赌博工作,但我曾在拥有数 TB DWH 的电信和保险业工作过。我们始终存储电话或保费/索赔交易本身的详细信息。

于 2012-08-23T15:32:02.587 回答