Vertica数据库与Cassandra相比有什么优势?
一、Vertica数据库与Cassandra相比有什么优势
vertica是传统的关系型数据库,特点是按列存储,而且集成了MapReduce支持。
Cassandra则是属于NoSQL阵营,特点是综合Dynamo的弱一致性模型和Bigtable的数据模型。vertica最大的优势就是它提供了SQL的支持,可以很好的兼容以往的工具和数据。
传统的SQL语义在高可伸缩性要求下很难实现,如join等操作。你可以设想一下,如果要join的表都非常大,超出单台机器的处理能力,要高效地完成这个操作该有多困难。事实上这方面已经有很多学术研究在进行。
传统的数据库除了SQL语义外,还要保证transaction的ACID,而要同时满足高一致性和事务操作的要求是很难实现高可伸缩性的。因而才会有NoSQL的出现,它们牺牲了部分SQL和事务的语义、降低一致性要求,以实现高可伸缩性的系统。
Vertica的底层存储实现和HBase的不一样。虽然都是叫按列存储,HBase是先将表格按行划分成块,在数据块内部才是按列存储;Vertica的存储比较灵活,它号称可以配置哪些列要放在一起存储,每列都分开就是最基本的按列存储,所有列都和在一起就是按行存储了,不过同一列的数据还是会放在一起。
所以按列或者按行存储只是不同的系统设计选择,不是决定性因素。关键还是在于对上层提供的语义。
HBase,Cassandra本身只有存储能力,如果要做查询需要借助Hadoop这样的框架进行,Hive就是把查询都编译成Hadoop任务实现的。Hadoop的查询效率要比关系型数据库要低,主要是因为1)Hadoop为了保证容错,中间数据都要走一遍磁盘,IO开销大;2)Hadoop缺少查询优化引擎还有索引等优化机制(有人把Hadoop任务转换成sql语句,然后再利用传统数据库的优化算法优化。
延伸阅读:
二、Vertica是什么
Vertica是一款基于列存储的MPP(massively parallel processing)架构的数据库。
它可以支持存放多至PB(Petabyte)级别的结构化数据。Vertica是由关系数据库大师Michael Stonebraker(2014 年图灵奖获得者)所创建,于2011年被惠普收购并成为其核心大数据平台软件。Vertica 采用无共享的MPP 架构,基于工业标准的x86 服务器,拥有高可扩展性。Vertica 集群中的所有节点100%对等,集群中没有主节点或其他共享资源。通过增加节点,就可以线性地扩展集群的计算能力和数据处理容量。Vertica 是真正的纯列式数据库,优化器和执行引擎可以忽略表中与查询无关的列。Vertica 不仅仅按列式存储数据,还主动地根据列数据的特点和查询的要求选用优异的算法对数据进行排序和编码压缩,这就极大地降低磁盘I/O 消耗。同时,Vertica 的执行引擎和优化器也是基于列式数据库设计的,编码压缩过的列数据在Vertica 的执行引擎中进行过滤、关联、分组等操作时不需要解反编码,从而大大降低了CPU 和内存消耗。
猜你喜欢LIKE
相关推荐HOT
更多>>MySQL普通索引不等于为什么会失效?
一、MySQL普通索引不等于会失效的原因1、列数据类型不匹配如果查询条件中的列类型与索引列类型不匹配,MySQL无法使用索引进行优化。例如,索引...详情>>
2023-10-18 11:14:01为什么关系型数据库系统不易于scaling out(横向扩展)?
一、为什么关系型数据库系统不易于scaling out(横向扩展)因为传统的SQL数据库没想到要分片存储,而现在的NewSQL开始考虑到这些问题了。当然分...详情>>
2023-10-18 10:49:50MySQL InnoDB引擎中的各种锁具体是怎么实现的?
一、MySQL InnoDB引擎中的各种锁的实现方式MySQL InnoDB引擎中的各种锁是通过多种机制实现的1、共享锁(Shared Lock)和排他锁(Exclusive Lock...详情>>
2023-10-18 10:26:59Android怎么连接远程数据库?
一、Android连接远程数据库的方法1、确保远程数据库可以远程访问首先,确保您的远程数据库允许远程连接。这通常需要在数据库服务器的配置中启用...详情>>
2023-10-18 10:09:10热门推荐
常用JS前端开发框架有哪些?
沸事务并发控制s2pl和s2pl有何区别?
热为什么一台电脑可以安装多个SQL Server实例?
热MySQL普通索引不等于为什么会失效?
新为什么关系型数据库系统不易于scaling out(横向扩展)?
MySQL InnoDB引擎中的各种锁具体是怎么实现的?
Android怎么连接远程数据库?
为什么MySQL在innodb引擎中即使使用了MVCC机制仍然会出现丢失更新?
IO多路复用中select、poll、epoll之间的区别?
读写分离为什么能够提升性能?
为什么mysql innodDB中组合索引中范围查询后的条件索引会失效?
为什么noteexpress不能建立数据库也不能打开别的数据库?
计算机前端是什么?
APP中集成移动端车牌识别系统都能达到什么效果?