2011-03-15 121 views
9

在webapp(django)环境中,对于使用Greenplum而不是PostgreSQL有什么争议?Greenplum vs PostgreSQL

我的直觉反应是喜欢PostgreSQL的开源方法和庞大的知识库。

我的配置(虽然我很想听听任何其他配置)是一个中等规模的企业,拥有2个Web服务器和(目前)2个数据库服务器。

需要对比的区域为二进制data crunchingreplication中的节点数以及我个人的最爱:communitiy support和熟练的工程师支持。

使用Greenplum而不是PostgreSQL有什么优点和缺点?

+0

这应该是'社区wiki'吗? – 2011-03-15 11:57:37

+1

Greenplum现在开放源代码:http://greenplum.org/ – 2016-02-24 02:12:07

回答

9

我不太了解Greenplum,除了快速浏览您发送的链接。数据仓库与事务操作数据存储不同。前者用于临时查询,统计分析,维度分析,大部分为阅读历史数据。后者用于实时读取/写入运行数据。他们是免费的。

我猜你想要PostgreSQL。

谁在为你推Greenplum?为什么?如果将它作为替代方案呈现,我会深入挖掘并反驳论证。

+6

你说得对,数据仓库与交易/运营数据存储不同,但Greenplum碰巧是两者兼而有之。 Greenplum的主要特点是它可以在单独的物理服务器上并行存储和计算PostgreSQL的多个实例(专有版本)。这为事务性和分析性工作负载提供了好处。 GP还具有数据仓储(即柱状存储和压缩)的附加功能,但其设计目的是同时处理事务处理。但是,它可能仍然比PostgreSQL差。 – goodside 2011-07-06 18:11:47

2

我认为Greenplum更好地利用了并行处理。不过,它基于PostgreSQL。

Greenplum有一个free community edition。你可以随时在你自己的环境中下载和测试。

3

由于Greenplum利用并行处理,因为主节点需要与基础数据节点进行通信以检索所有这些查询的答案,所以会有运行大量微小读取查询的开销。对于以毫秒为单位的查询,预计Greenplum的性能会降低一个数量级的性能。

3

如果您正在寻找一个基于PostgreSQL的数据仓库解决方案,我也会看看GridSQL。它是一个跨多个PostgreSQL实例的并行化层,并且是免费且开源的。

就像在其他评论中提到的那样,它在许多小型毫秒查询中表现不佳,但对于长时间运行的查询会大大帮助您。 GridSQL也不会包含像Greenplum那样的柱状存储的DW优化,但您可以利用约束排除分区(例如:按日期范围的子表)与并行性相结合来加快查询结果。

您甚至可以在单个多核服务器上使用它,因为PostgreSQL在处理查询时将只使用单个核心。

1

如果任何数据处理需要超过一个小时的时间,那么对于您添加的每个核心,都会获得线性性能提升。对于需要较少时间来完成的任何事情来说,这并不值得。

7

Greenplum是PostgreSQL的MPP适配器。它针对大型数据集的仓储和/或分析进行了优化,并且在交易环境中表现不佳。如果你需要一个大的DW环境,看看Greenplum。如果您需要OLTP或更小的DB大小(10TB以下),请查看PostgreSQL。

3

Greenplum是MPP分析(OLAP)DBMS。 PostgreSQL是一个OLTP DBMS。总的来说,市场上没有一种解决方案可以同时适用于OLAP和OLTP,您可以在此找到我的想法here

WebApp后端将始终创建OLTP工作负载。由于Greenplum是一个分布式系统,因此它在事务处理方面有很大的开销,所以不要指望这会为您提供超过500-600 TPS的数据。相比之下,Postgres可以通过正确的调整达到成千上万的TPS。

相比之下,当您需要OLAP工作负载时,Postgres可以为您提供只有一个主机处理,没有动态分区清除的分区,不压缩,没有柱状存储。而Greenplum将能够在群集上并行处理您的数据。

所以,你正在寻找的解决方案是一个典型的数据仓库情况下 - 使用高事务工作负载OLTP解决方案,将数据与ETL/ELT提取到数据仓库,然后在它

运行复杂的数据运算查询目前PostgreSQL和Greenplum都是开源产品,所以你可以自由选择其中的任何一个,但是因为PostgreSQL社区更大ATM