介绍
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
感谢以上参考文章作者提供的帮助!此博客只是作一个简单的笔记归纳!再次感谢!