Hadop之Hbase

介绍

Hbase是非关系型分布式数据库

Hbase区分与传统关系数据库的特点

  • 数据类型:Hbase采用简单的数据模型,把数据存储为未经解释的字符串。
  • 数据操作:HBase操作则不存在复杂的表与表之间的关系,只有简单的插入、查询、删除、清空等,因为HBase在设计上就避免了复杂的表和表之间的关系。
  • 存储模式:关系数据库是基于行模式存储的。HBase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的。
  • 数据索引:关系数据库通常可以针对不同列构建复杂的多个索引,以提高数据访问性能。HBase只有一个索引——行键。
  • 数据维护:在关系数据库中,更新操作会用最新的当前值去替换记录中原来的旧值,旧值被覆盖后就不会存在。而在HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留。
  • 可伸缩性:可灵活的水平扩展。

Hbase的数据模型

示例
  • 表:HBase采用表来组织数据,表由行和列组成,列划分为若干列族。
  • 行:每个HBase表都由若干行组成,每个行由行键(row key)来标识。
  • 列族:一个HBase表被分组成许多“列族”(Column Family)的集合,它是基本的访问控制单元。
  • 列限定符:列族里的数据通过限定符(或列)来定位。
  • 单元格:在HBase表中,通过行、列族和列限定符确定一个“单元格”(cell),单元格中存储的数据没有数据类型,总被视为字节数组byte[]
  • 时间戳:每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引。

Hbase基本操作

  • 创建表
    1.create 'table', 'column_family_1','column_family_2','column_family_3'..
  • 赋值
    2.put 'test','row1','cf:a','va'--------为表test按行键row1为列族中的列a赋值为va
  • 查找
3.scan 'test'------------------------查看表中的所有信息
4.get 'test','row1'------------------查看表中指定行的信息
5.get 'test','row1','cf:a'------------------查看表中指定行的列族某列信息
6.get 'test','row1','cf','cg'------------------查看表中指定行的多个列族信息
  • 删表
    7.删除表:先 disable 'test'使处于无效状态,再drop 'test' 删除表
  • 退出
    quit

参考:https://www.jianshu.com/p/53864dc3f7b4
https://www.cnblogs.com/Transkai/p/10748536.html
https://www.jianshu.com/p/1dabb1a7374f
https://www.cnblogs.com/qingyunzong/p/8681490.html

感谢以上参考文章作者提供的帮助!此博客只是作一个简单的笔记归纳!再次感谢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容