首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有一个单独的数据仓库数据库吗?

有一个单独的数据仓库数据库吗?
EN

Database Administration用户
提问于 2015-01-31 14:08:02
回答 2查看 2.5K关注 0票数 3

我使用PHP和MySQL构建了一个典型的web应用程序,以供企业使用。

MySQL数据库是尽可能多的3NF。

但是,随着时间的推移,对数据的请求似乎更多地是针对数据仓库的,这样他们就可以以任何他们想要的方式分割和剪切数据。

因此,我拿起了一本书,第3版数据仓库工具包的金球集团。

在本文中,作者描述了一个Kimball DW/BI体系结构,并将星型模式用于DW/BI的维度和事实表。见下文。

我的问题是,由于我最熟悉PHP和MySQL,我是否应该将数据仓库星型模式与原始的3NF数据库分开?

不会使用商业BI工具。任何看起来像OLAP或BI的东西都可能是一个开源软件,我可以自己来扩充。

请给我建议。

编辑

到目前为止,我的整个3NF MySQL数据库大约是2000万桶,每个月大约增长1MB。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2015-02-02 04:27:30

在回答您对我的评论的答复时,我提到了PostgreSQL为DW工作提供的一些领域--特别是CTEs (公共表表达式- AKA - WITH子句)和窗口函数(AKA - OVER子句)。

没有这些在MySQL中,您最终将编写自己的黑客来模仿这些(而且,没有不尊重,但是您的代码需要一段时间才能摆脱bug ),而在使用PostgreSQL时,您可以将它们从盒子中拿出来。PostgreSQL还具有更好的GIS支持(如果需要的话)和更好的JSON --仅在MySQL中进行实验。

看一看这里

PostgreSQL传统上专注于可靠性、数据完整性和集成的以开发人员为中心的功能。它有一个非常复杂的查询计划器,它能够有效地连接相对较多的表。另一方面,MySQL传统上一直专注于阅读--大多是用PHP编写的web应用程序,主要关注的是如何优化简单的查询。

DW类型的应用比后者需要更多的前者。

另外,请查看 --这是两个系统的最新比较。我对此的看法是,PostgreSQL是两者中最好的,尤其是。为了DW的工作。

您可以仔细阅读这些页面中的PostgreSQLMySQL特性。这里有一个特定的“宗教战争”元素,我注意到,你已经有了MySQL经验,这对你来说可能是一个有利因素。我祝愿你的DW项目一切顺利。

编辑回应OP的评论

我当然会敦促您为您的OLTPOLAP工作建立单独的数据库--如果这是您的预算范围内的话。OLTPOLAP本质上是不同的,如果你把它们混合在一起,就会有很多冲突--我知道“经理”坚持在白天针对一个实时系统运行报告所带来的痛苦--所以如果我是你,我会让MySQL作为我的OLTP系统,PostgreSQL作为我的OLAP

但是无论您选择什么配置,我强烈建议单独使用服务器。

如果我被迫选择一个数据库和一个数据库,这将是PostgreSQL毫不犹豫。在第一次互联网繁荣期间,MySQL基本上是幸运的,在正确的时间和正确的地点拥有合适的软件。国际水文学组织,PostgreSQL无疑是技术上的优势。

我忍受MySQL没有恶意-我经常使用它(客户!)并发现,如果您可以接受或解决它的怪癖,它可以很好地表现,并有一些有趣的特性-特别是存储引擎的选择,你可以(不能用PostgreSQL)。

在MySQL的DW领域中,有两个有趣的发展可能预示着这一领域未来的发展--它们是柱状存储引擎-- 无限b知音。目前的问题是,Infinidb似乎已经死了--尽管代码仍然可用,但安装指南已经消失, (Infobright Community )本质上是残废的。您不妨评估一下企业版。

我建议您设置一些测试用例--想象一下您将运行什么样的报告,并在这两个系统上进行测试。特别要考虑到OLAP系统所需的复杂报告--我相信,您会发现更加丰富的PostgreSQL SQL语言是对它有利的有说服力的论点。

票数 4
EN

Database Administration用户

发布于 2015-02-02 04:46:19

虽然没有将重点放在特定的关系数据库管理系统上,但它涉及的问题是:

我是否应该将数据仓库星型模式与原始的3NF数据库单独放在一个数据库中?

我会说:是的!

OLTP (您称之为“原始3NF数据库”)和OLAP是查看数据的非常不同的方式,对于这两个不同的系统通常有非常不同的期望。因此,有不同的需求,导致不同的配置,等等。

而且,如果对“数据库”一词严格解释您的问题,使您的意思是在同一服务器上有两个单独的数据库,一个用于OLTP,另一个用于OLAP,我将澄清我的回答,即您确实需要单独的服务器:

  • 您应该有能力在不影响另一个系统的情况下,将其中一个系统拆卸以进行维护。
  • 在某种程度上,您可能需要从节点的角度来增长OLTP端,但是对于OLAP端,您可能需要使用更多的内存、磁盘等来增长该服务器。
  • 最后,您可能会将几个不同的OLTP系统聚合到一个OLAP系统中。
  • OLTP = OnLine事务处理Processing --这些是“源事务”/“操作源系统”
  • OLAP = OnLine分析区域--这是“前沿室”/“数据展示区”中的“演示区”
票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/90707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档