zoukankan      html  css  js  c++  java
  • 【HBase】三、HBase和RDBMS的比较

      HBase作为一种NoSQL的数据库,和传统的类似于mysql这样的关系型数据库是有很大区别的,本文来对他们做一个对比分析,以便更加深入的了解HBase。

      主要区别体现在以下六个方面:

      1、数据类型

      关系型数据库采用关系模型,具有丰富的数据类型和存储方式,比如我们熟知的mysql可以存储char、varchar、int等等各种类型的数据,而HBase则采用了更简单的数据模型,将数据存储为未解释的字符数组,所有数据都没有类型,都直接作为字符数组来看待。

      2、数据操作

      关系型数据库有丰富的数据操作,最基本的如:增删改查,并且这其中涉及复杂的多表连接,而HBase操作则不存在复杂的表与表之间的连接关系,只有简单的插入、查询、删除、清空等操作,因为HBase在设计上就避免了复杂的表和表之间的关系。

      3、存储模式

      关系型数据库是基于行模式来存储的,而HBase正如我们介绍的那样,它是基于列存储的,每个列族的数据都保存在一起,不同列族的文件是相互分离的。

      4、数据索引

      在关系型数据库中,有模式、表、视图、索引等多个概念,RDBMS可以根据不同列构建复杂的多个索引,以此来提高数据访问的性能,而HBase我们看到,实际上它只有一个索引,那就是行键,HBase表的所有访问都要通过行键,通过巧妙的设计,HBase中的所有访问方法,或者通过行键访问,或者通过行键扫描。

      5、数据维护

      关系型数据库中,更新操作会用当前的最新值去替换记录中的旧值,旧值被覆盖后就不再存在了,而HBase中的每个单元格是有一个以时间戳表示的版本号的,它在执行更新操作时,并不会删除数据的旧版本,而是生成一个具有更新的版本号的新数据,原有旧数据仍然会保存。

      6、可伸缩性

      关系型数据库大多受限于一台机器的存储容量,只能进行垂直扩展(更换大容量的设备、提升设备性能等等),很难做到横向扩展,而HBase设计的初衷本来也就是为了实现灵活的横向扩展,能够通过简单的增加节点数量来实现扩展,从而可以存储超大规模数据集,实现超大规模数据的随机访问。

  • 相关阅读:
    高效 告别996,开启java高效编程之门 5-4新集合类型MultiSet
    高效 告别996,开启java高效编程之门 5-3不可变集合
    高效 告别996,开启java高效编程之门 5-2实战Optional使用
    高效 告别996,开启java高效编程之门 5-1Guava开场
    高效 告别996,开启java高效编程之门 4-6本节总结
    高效 告别996,开启java高效编程之门 4-5TWR进阶与特殊情况
    高效 告别996,开启java高效编程之门 4-4TWR方式关闭流资源
    高效 告别996,开启java高效编程之门 4-3传统方式关闭流资源
    省市经纬度
    Web移动端常见问题-摘抄
  • 原文地址:https://www.cnblogs.com/gzshan/p/11096390.html
Copyright © 2011-2022 走看看