Hbase 与 传统关系数据库(RDBMS)的比较

来源:互联网 发布:傻瓜视频制作软件 编辑:程序博客网 时间:2024/05/21 15:44

来自:Hadoop权威指南

Hbase并不是关系数据库,它不支持sql,但在特定的问题空间里,它能够做RDBMS不能做的事情:在廉价硬件构成的集群上管理超大规模的稀疏表。

Hbase是一个分布式的 面向列的数据存储系统,通过在HDFS上提供随机读写来解决Hadoop不能处理的问题,Hbase自底层设计开始即聚焦于各种可伸缩性问题:表可以很“高”(数十亿个数据行);表可以很“宽”(数百万个列);水平分区并在上千个普通商用机节点上自动复制。

严格来说,RDBMS是一个遵循“Codd的12条规则”(Codd's 12 rules  参考:http://blog.csdn.net/zelor/article/details/324926)的数据库,标准的RDBMS是模式固定,面向列的数据库且具有ACID性质(原子性 一致性 隔离性 持久性)和复杂的SQL查询处理引擎,RDBMS强调事务的“强一致性”、参照完整性、数据抽象与物理存储层相对独立,以及基于SQL语言的复杂查询支持。在RDBMS中,可以非常容易的建立“二级索引”,执行复杂的内连接和外连接,执行计数、求和、排序、分组等 操作,或对表、行和列中的数据进行分页存放。

Hbase特性:

  • 没有真正的索引 行是顺序存储的,每行中的列也是,所以不存在索引膨胀问题,而且插入性能和表的大小无关。
  • 自动分区  在表增长的时候,表会自动分裂成区域,并分布到可用的节点上。
  • 线性扩展和对新节点的自动处理  增加一个节点,把它指向现有集群并运行regionserver。区域自动重新进行平衡,负载均匀 分布。
  • 普通商用硬件支持
  • 容错 大量节点意味着每个节点的重要性并不突出,不用担心单个节点失效。
  • 批处理  Mapreduce集成功能使我们可以用全并行的分布式作业根据“数据的位置”来处理它们。




0 0