HBase与RDBMS相比较有哪些不同点?

参与3

1同行回答

空kong空kong其它某单位
(1)HBase 是一个分布式的、面向列的数据存储系统,通过在 HDFS 上提供实时的随机读写来弥补 HDFS 读写延迟较高、 RDBMS 无法进行大规模可伸缩的分布式处理的问题:表可以很高(数十亿个数据行)、表可以很宽(数百万个列)、可以在上千个普通商用机上自动复制。而 RDBMS 是模式固定...显示全部

(1)HBase 是一个分布式的、面向列的数据存储系统,通过在 HDFS 上提供实时的随机读写来弥补 HDFS 读写延迟较高、 RDBMS 无法进行大规模可伸缩的分布式处理的问题:表可以很高(数十亿个数据行)、表可以很宽(数百万个列)、可以在上千个普通商用机上自动复制。而 RDBMS 是模式固定、面向行的数据库并具有 ACID 性质和复杂的 SQL 查询处理引擎。 RDBMS 具有二级索引,内连接和外链接等复杂连接和属性。

(2) 对于大多数中小规模应用, RDBMS 够用,但是如果要在数据规模和并发读写等方面进行大规模扩展, RDBMS 会损失很多性能,也很难进行分布式处理,而强行进行扩展会放松或放弃 ACID 限制等 RDBMS 的原有特性。

(3)HBase 没有索引的概念,行和列都是顺序存储的,不存在索引膨胀的问题,插入性能和表的大小无关。而 RDBMS 的写性能随着表规模变大而越来越慢。

除了无索引插入性能不受影响, HBase 还有以下特点:

(1) 自动分区。表增长时会自动分裂成区域,分布到不同 RegionServer 上。

(2) 线性扩展和对于新节点自动处理。增加一个节点后表的区域会自动负载均衡。

(3) 普通商用硬件支持。多个普通商用机器比一个高性能高端商用机器还便宜。而 RDBMS 往往为单节点,需要支持大量 I/O 的昂贵硬件。

(4) 容错。大量节点使得单个节点失效不会有大问题。

(5) 批处理。可用 MapReduce 并行分布式处理表数据。

收起
保险 · 2020-01-08
浏览1174

提问者

care
care002
项目经理某单位

相关问题

相关资料

问题状态

  • 发布时间:2020-01-07
  • 关注会员:2 人
  • 问题浏览:1597
  • 最近回答:2020-01-08
  • X社区推广