Hbase是谷歌对BigTable的开源实现,它是一个分布式数据库,具有容量大,数据结构不固定,列式存储,数据类型单一化,高性能的特点.
Hbase能具备以上特点主要基于其表结构设计及底层的hdfs的支持,我们先说一下它的表结构:
行键:每行数据的索引
列族:多个列的组合,比如姓名,年龄,这两个列可以组成一个列族
列:单个的列字段
上述三者共同构成一个列表,由于列族和行键的引入,其实是把数据构成一个个块状,这样就可以通过行列进行快速定位,进行快速的读写
hdfs是个分布式文件系统,Hbase在这个基础上依赖上述的数据结构做了进一步的封装,实现数据处理的低延时,更适用于大规模的实时数据处理,而Hdfs更适用大规模数据的批处理
Hbase常用命令:
首先打开Hbase shell
创建表: create 'tableName',{'cloumnsName'=>'user',versions=>3}
tableName:我们要创建的表名,
cloumnsName:我们要创建的列族名,该列子中列族名是user,中间的“=>”符号是赋值的意思
versions:该列族中列字段储存的版本次数,为啥会有这东西呢,这是因为Hbase在进行更新时并不进行覆盖而是以时间戳为标志进行追加,该离子中是3,意思最多追加三次
添加数据:
put ‘tableName’ '1' 'user:id' ,'001'该例中 ‘1’是我们上述所说的行键,即行索引,‘user:id’是在user这个列族中加入列字段,当前加入了id字段,‘001’就是该字段的值
get ‘tableName’ '1'是从tableName这个表中取出行键为1的数据
还有很多命令就不一一列举了,重要的是明白hbase表结构特点
Habse也提供了丰富的Java API,可自行查阅
