作者: 混合动力火锅 | 来源:发表于2018-10-20 17:01 被阅读0次

HBase 的数据模型

Hbase是一个稀疏的长期存储在磁盘上的有序的映射表,因为是稀疏存储,所以同一张表里面的每一行数据都可以有截然不同的列。

数据都是字符串,没有类型

概念视图

RowKey:行主键, HBase不支持条件查询和Order by等查询,读取记录只能按Row key(及其range)或全表扫描

Column Family:列族,在表创建时声明,每个Column Family为一个存储单元存储在一个Store中

Column:列,HBase的每个列都属于一个列族,以列族名为前缀,如列article:title和article:content属于article列族 ,会依照列名排序。列可以动态的增加

Timestamp:HBase通过row和column确定一份数据,这份数据的值可能有多个版本,不同版本的值按照时间倒序排序,即最新的数据排在最前面,查询时默认返回 最新版本。

Value:值

存储结构可以理解为:

SortedMap(Rowkey,List(

SortedMap(Column,List(

Value,Timestamp

))

))

特点

HBase只有很简单的插入,查询,删除,清空等操作,表和表之间是分离的

基于列存储的,每个列族都有几个文件保存,不同列族的文件是分离的,后面会提到。

确切的来说,HBase的更新操作应该不叫更新,虽然一个主键或列会对应新的版本,但它的旧版本依然会保留

Hbase的适用场景

需要对数据进行随机读写操作

大数据上高并发操作,比如没秒对PB级数据进行上千次操作

只进行非常简单直接的读写访问,查询场景简单

Hbase的基本操作

名称命令表达式

创建表create '表名称','列簇名称1','列簇名称2'.......

添加记录put '表名称', '行名称','列簇名称:','值'

查看记录get '表名称','行名称'

查看表中的记录总数count '表名称'

删除记录delete '表名',行名称','列簇名称'

删除表①disable '表名称' ②drop '表名称'

查看所有记录scan '表名称'

查看某个表某个列中所有数据scan '表名称',['列簇名称:']

更新记录即重写一遍进行覆盖

参考:Shell&Java API

相关文章

  • 。一一,一,一,一。

    一,、

  • 一 一

    2018年6月22日 星期五 雨 一水一万物 一星一宇宙 一字一文章 一书一世界 一读一微笑 一赞一知音

  • 一 一

    杨德昌《一 一》,早年曾看过一遍。 婷婷短发,白净,蓝色衬衫,学生裙,黑皮鞋,白袜子,学习很好的中学女生。温柔,懂...

  • 一 一

    给自己无处安放的灵魂找到了家!简书,我的新写作时光!继续,在流年里拾荒,禅落一身的光!

  • 一.一

  • 一.一

    一节车厢,一只行囊,肯为当时一念疯狂。 一根点燃,一缕惆怅,不许未来一片迷茫。 一眼远看,一众不详,哪知各位一去何...

  • 一(一)

    我叫一,总有人喜欢在背后说我,因为很多时候我都是自己一个人。很多人都说我很孤单,看起来很可怜,但我觉得很奇怪,他们...

  • (一-一)

    白天不看书晚上开灯照亮全宿舍的sb们该睡了

  • 一梦一寻(一)

    01 你在想什么?宝贝。” 一个磁性而温柔的声音传来。一双温柔的手轻抚我的头,这温暖使我从漫天的思绪中挣脱出来。 ...

  • 一梦一浮生(一)

    我曾做过一个梦。 曾梦见你给我画了很多很多的画,写了一封很长很长的信。 我看信看到很感动很感动但却很悲伤。 但我却...

网友评论

      本文标题:

      本文链接:https://www.haomeiwen.com/subject/dvemzftx.html