首页 > 教育学习 > 为什么 > Vertica 数据库与 Cassandra 相比有什么优势?

Vertica 数据库与 Cassandra 相比有什么优势?
2012-01-19 20:09:59   来源:   点击:

    Vertica 数据库与 Cassandra 相比有什么优势?Vertica 是传统关系型数据库么?首先它也是基于列的,除了没有 HDFS 之外,它跟 HBase 或者是 Cassandra 有什么区别?SQL 接口慢慢大家都会有。我个人觉得 NoSQL 这种提法本身就有问题,实现部分 SQL 的 Vertica 不能算传统关系型数据库。称为 Column-based 数据库比较合适。HBase、Cassandra 等都属于该范畴。但 Vertica 比较特殊,没用 HDFS 这种分布式文件系统。它自己用本地文件系统通过 spread 通信。我比较关心执行效率问题。个人认为 NoSQL 和 SQL 的比较主要是开发人员使用体验,对实际数据处理效率没有实际意义,传统关系型数据库修改数据很快适合 OLTP,但不适合海量数据查询分析。但对于 OLAP 来说,更多的关心执行效率。Vertica 在数据插入上比较慢,但查询快,所以要比较 OLAP。

    2 个答案

    • 答案 1:

      你把vertica写成virtica了,我先帮你纠正过来。vertica是传统的关系型数据库,特点是按列存储,而且集成了MapReduce支持。Cassandra则是属于NoSQL阵营,特点是综合Dynamo的弱一致性模型和Bigtable的数据模型。它们的比较其实就相当于这两个阵营的对比了,这方面文章不要太多。那么很显然,vertica最大的优势就是它提供了SQL的支持,可以很好的兼容以往的工具和数据,习惯SQL的程序员用起来也爽。传统的SQL语义在高可伸缩性要求下很难实现,如join等操作。你可以设想一下,如果要join的表都非常大,超出单台机器的处理能力,要高效地完成这个操作该有多困难。事实上这方面已经有很多学术研究在进行。传统的数据库除了SQL语义外,还要保证transaction的ACID,而要同时满足高一致性和事务操作的要求是很难实现高可伸缩性的。因而才会有NoSQL的出现,它们牺牲了部分SQL和事务的语义、降低一致性要求,以实现高可伸缩性的系统。Vertica的底层存储实现和HBase的不一样。虽然都是叫按列存储,HBase是先将表格按行划分成块,在数据块内部才是按列存储;Vertica的存储比较灵活,它号称可以配置哪些列要放在一起存储,每列都分开就是最基本的按列存储,所有列都和在一起就是按行存储了,不过同一列的数据还是会放在一起。所以按列或者按行存储只是不同的系统设计选择,不是决定性因素。关键还是在于对上层提供的语义。你如果关心的是执行效率,推荐你一篇论文http://www.cse.nd.edu/~dthain/courses/cse40771/spring2010/benchmarks-sigmod09.pdfHBase,Cassandra本身只有存储能力,如果要做查询需要借助Hadoop这样的框架进行,Hive就是把查询都编译成Hadoop任务实现的。Hadoop的查询效率要比关系型数据库要低,主要是因为1)Hadoop为了保证容错,中间数据都要走一遍磁盘,IO开销大;2)Hadoop缺少查询优化引擎还有索引等优化机制(有人把Hadoop任务转换成sql语句,然后再利用传统数据库的优化算法优化portal.acm.org/citation...)。Hadoop社区主要关注的是高可伸缩性,性能不行,就加机器呗。
    • 答案 2:

      你那个文档 我看过,比较的是Hadoop与Vertica,我觉得没有可比性,应该比HBase与Vertica。除非HBase没有优化它的存储和查询,直接使用Map Reduce做查询。MapReduce是对大文件,无序数据处理。HBase应该是有排序的,还没仔细读源代码。

相关热词搜索:

上一篇:为什么 Android 在同样的硬件条件(甚至是更好的硬件)下没法做到 iOS 下那样的流畅?
下一篇:苹果如果收购 Hulu 是一个好的选择吗?为什么?