与MongoDB或Cassandra相比,Greenplum或Vertica等数据库的优势

14
我目前在几个项目中分别使用MongoDBApache Cassandra。 我还经常使用Solr,并且使用它们处理“大量”数据(约1-2TB)。 我在上周第一次听说GreenplumVertica,我不太确定如何将它们放入我的脑海中。 它们对我来说似乎是数据仓库(DWH)解决方案,而我并没有真正使用过DWH。 而且它们似乎需要花费很多钱(例如,在Greenplum中,1TB存储需要6万美元)。 我目前不处理Petabyte的数据,我认为也不会这样做,但像Cassandra这样的产品似乎也能处理这种规模的数据。
Cassandra是公认的NoSQL领袖,当涉及到舒适地扩展到TB或PB级别的数据时。

通过http://www.datastax.com/why-cassandra

所以我的问题是:为什么人们应该使用Greenplum等产品?与这些其他产品相比,是否存在巨大优势?
谢谢。
6个回答

42

Cassandra、Greenplum和Vertica都可以处理大量数据,但它们的处理方式非常不同。

以下是一些虚构的使用案例,展示每个数据库的优势:

使用Cassandra进行:

tweets.insert(key:user, data:blob);
tweets.get(key:user)

使用Greenplum进行以下操作:

begin;
update account set balance = balance - 10 where account_id = 1;
update account set balance = balance + 10 where account_id = 2;
commit;

使用Vertica可以用于:

select sum(balance)
over (partition by region order by account rows unbounded preceding)
from transactions;

13

我在电信行业工作,处理大量数据集和复杂的EDW(企业数据仓库)模型。我们最初使用的是Teradata,在几年内表现良好。然后数据指数级增长,正如您所知道的,Teradata的扩展非常昂贵。因此,我们评估了EMC的Greenplum、Oracle Exadata、HP Vertica和IBM Netteza。

在速度方面,生成20个报告的排名如下:1. Vertica,2. Netteza,3. Greenplum,4. Oracle。

在压缩比方面,Vertica具有天然优势。在其他人中,IBM也不错。按照基准测试,EMC和Oracle最差。像往常一样,这两个公司都想销售大量存储和硬件。

可扩展性:所有系统都能够很好地扩展。

加载时间:EMC在这方面表现最佳,其他系统(Teradata、Vertica、Oracle、IBM)也表现不错。

并发用户查询:Vertica、EMC、Greenplum,然后只有IBM。相对来说,Oracle Exadata在任何类型的查询情况下都比较慢,但比其老式10g要好得多。

价格:Teradata > Oracle > IBM > HP > EMC

注意:需要进行苹果与苹果的比较,即同样数量的核心、内存、数据量和报告。

我们选择了Vertica,因为其具有独立于硬件的定价模型、更低的价格和良好的性能。现在所有40多个用户都可以愉快地生成报告,而不需要等待,而且一切都适合成本较低的HP DL380服务器。它非常适用于OLAP / EDW用例。

所有这些分析仅针对EDW /分析 / OLAP情况。对于所有的OLTP、丰富的PLSQL、连接等,我仍然是Oracle的粉丝。Exadata提供了不错的混合工作负载,但性价比不合理,仍需要将10g代码迁移到Exadata最佳实践(类似于MMP,批量处理等)中,而且比他们声称的耗时。


7
我们在Hadoop方面已经工作了4年,而在Vertica方面已经有2年的经验。我们在MySQL表的批量加载和索引问题上遇到了很大的困难,使用自制的分片解决方案已接近尾声。我们本可以大力投资于开发更复杂的分片解决方案,但我认为这将是相当痛苦的。我们也可以更加深入地考虑哪些数据绝对需要保留在SQL数据库中。
但最后,我们选择从MySQL转向Vertica。Vertica的性能模式与MySQL的完全不同,这也带来了一些头疼的问题。但它可以快速加载大量数据,并且擅长处理会让MySQL无法承受的重负查询。
在我看来,Vertica是一个解决方案,当你已经投资于SQL并需要更重的SQL数据库时,它可以提供帮助。我不是专家,所以无法告诉您与Vertica相比,转向Oracle或DB2的过渡在集成工作或货币成本方面会有怎样的差异。
Vertica提供了很多我们还没有深入研究的功能。对于其他使用情况不同的人可能非常有吸引力。

6
我是Vertica DBA,在此之前我曾是Vertica的开发人员。Michael Stonebreaker(Ingres、Vertica和其他数据库背后的人)对NoSQL提出了一些值得倾听的批评意见。
基本上,以下是我认为Vertica的优势:
- 处理大量数据相当快速 - 它的性能与其他数据仓库解决方案类似,但它的优势在于集群和商品硬件。因此,您可以通过添加更多的商品硬件来进行扩展。从总体成本每TB来看,它看起来很便宜。(根据记忆而非确切引用。) - 再次强调,它是用于数据仓库。 - 您可以使用传统的SQL和表格。底层不同。
我无法评论其他产品,但我相信它们中的许多产品也很好。
编辑:这是Stonebreaker的演讲:http://www.slideshare.net/Dataversity/newsql-vs-nosql-for-new-oltp-michael-stonebraker-voltdb

3

Pivotal,前身为Greenplum,是EMC、VMware和GE的资金充裕的分拆公司。Pivotal的市场对象是需要进行复杂分析和高速ETL的多PB级数据库的企业(以及国土安全机构)。Greenplum起源于基于Map Reduced MPP重新设计过的PostgreSQL DB,并后来增加了列式支持和HDFS。它将SQL与NoSQL的优点融合在一起,形成了NewSQL。

特点:

  • 在2015H1,包括Greenplum DB和HAWQ在内的大部分代码将成为开源。一些高级管理和性能功能将保留专有。
  • MPP(大规模并行处理)无共享RDBMS数据库,设计用于多TB到多PB环境。
  • 完全符合SQL - 支持所有版本的SQL:'92,'99,2003 OLAP等。与PostgreSQL 8.2完全兼容。仅支持SQL over HADOOP,能够处理TPC-DS基准标准使用的所有99个查询而无需重写。竞争对手无法执行其中许多操作,并且速度明显较慢。SIGMON白皮书。
  • ACID符合性。
  • 支持存储在HDFS、Hive、HBase、Avro、ProtoBuf、Delimited Text和Sequence Files中的数据。
  • Solr/Lucene集成,用于SQL中嵌入多语言全文搜索。
  • 包含开源软件:Spring、Cloud Foundry、Redis.io、RabbitMQ、Grails、Groovy、Open Chorus、Pig、ZooKeeper、Mahout、MADlib、MapR。其中一些在EBSCO中使用。
  • 本机连接到HBase,这是一种流行的列存储技术,用于Hadoop。
  • VMware参加了1.5亿美元的MongoDB投资,可能会导致PB级XML文件的集成。
  • 逐表指定分发键,允许您设计表模式以利用节点本地连接和分组,但即使没有这样做,也会执行得很好。
  • 行和/或列导向数据存储。它是唯一一个数据库,其中表可以具有由DBA定义的基于列和基于行的分区的多态性。
  • 列式表可以每列具有不同的压缩算法,因为不同的数据类型具有不同的压缩特性以优化其存储。
  • 高级Map-Reduce类CBO查询优化器 - 可以在数十万个节点上运行查询。
  • 它是唯一一个具有动态分布式管道执行模型的数据库,用于查询处理。虽然旧数据库依赖于实体化执行,但Greenplum不必在每个中间查询步骤中将数据写入磁盘。它将数据流式传输到查询计划的下一个阶段中的内存中,并且永远不必将数据实体化到磁盘上,因此比任何人在Hadoop上展示的都要快。
  • 在大型数据集上进行的复杂查询可在几秒钟甚至亚秒内解决。
  • 数据管理 - 提供表统计信息、表安全性。
  • 深度分析 - 包括使用MADlib的数据挖掘或机器学习算法。使用GPText进行深层语义文本分析。
  • 图形分析 - 十亿边缘分布式内存图数据库和使用GraphLab的算法。
  • SQL、Solr索引、GPText、MADlib和GraphLab的集成在单个查询中,用于深度搜索分析的大规模句法分析和图/矩阵亲和性分析。
  • 完全符合ODBC/JDBC。
  • 分布式ETL速率为16 TB/hr!!与Talend集成可用。
  • 云支持:Pivotal计划打包其Cloud Foundry软件,以便可以将Pivotal置于其他云上,包括Amazon Web Services' EC2。Pivotal数据管理可用于各

2
很多人对于何时使用行数据库(如MySQL或Oracle)以及列式数据库(如Infobright或Vertica)或NoSQL变种或Hadoop存在很大的困惑。我们撰写了一篇白皮书,旨在帮助梳理哪些技术最适合哪些用例 - 您可以下载《新兴数据库格局》(向下滚动到页面中部)或观看关于同一主题的点播网络研讨会
希望其中任何一个对您有用。

应该提到的是,Vertica可以从Hadoop中摄取数据。它们并不是互斥的。 - geoffrobinson
1
提供的所有链接都无法使用。《新兴数据景观》显示404错误,而点播网络研讨会没有列出任何视频。能否更新这些链接? - Kingz
这是更新后的链接:http://tdwi.org/whitepapers/2011/10/users-guide-to-the-emerging-database-landscape-row-vs-columnar-vs-nosql.aspx - user398039

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接