大数据常见问题,HBase vs 传统关系型数据库

hbase是一种面向列的数据库,它常常会被拿来和传统的关系型数据库(rdbms)进行比较。两者在实现和设计上的出发点差别很大,下面小鸟就客观的讲一讲两者的区别。
一、存储的量级
在传统的关系型数据库中,随着数据量的增大,查询速度会越来越慢,一张有上百个字段的数据表在有千万级别的数据量时,响应速度会变的非常缓慢。
而hbase是一个分布式的数据存储系统,他的建立是基于hdfs的。其设计的初衷就是为了解决传统关系型数据库在处理海量数据时,速度太慢的问题。
二、数据的灵活度
hbase是面向列存储的,其存储结构是一种key-value的方式,因此在数据有新的字段需求的时候可以随意增加。
而传统关系型数据库则只能通过关联表的方式,通过增加外键和索引来处理新的字段,因此极为不便。
三、响应的速度
传统关系型数据库读写数据是需要考虑主键、外键和索引等因素的,随着数据的剧增其响应速度也是梯度下降的。
而hbase则不会有这样的问题,其写数据的性能和表的大小无关,并且由于其key-value的存储格式等原因,其读数据的速度也几乎不会下降。
四、良好的扩容
hbase的扩容只需要在集群上简单的增加节点。其新增节点的代价很小,hbase中增加一个节点服务器只需要3万不到,并且由于节点很多,某个节点宕机并不会对整个集群造成巨大影响。
而传统关系型数据库只能通过升级硬件来升级服务,单台高性能的服务器价格是非常昂贵的。
五、索引的支持
传统关系型数据库则会随着数据量的增加,出现索引膨胀的问题。
hbase是不支持索引的,在降低了查询便利度的同时增加了响应性能。
六、自动分区
hbase中的数据表会自动分裂,存入合适的regionserver上。
传统关系型数据库则需要手动操作来实现分区。
如果传统型数据库已经成为了公司隐患的话,那么就应该好好考虑是否需要转型hbase了。并且这也意味着公司的规模越来越大了,毕竟只有海量的数据才需要使用到hbase,在数据量不大的时候,传统关系型数据库还是一个优先级更高的选择。
与其说hbase和传统关系型数据库各有优势,不如说hbase是大数据发展的必然产物,毕竟谁也不愿意忍受糟糕的延迟。
希望这篇文章能帮助到各位小伙伴们,关注小鸟,每天都有新的知识点!