你的位置:首页 > 软件开发 > Java > HBase入门

HBase入门

发布时间:2015-03-17 18:02:29
一、HBase基本概念1、Row key  行主键,在对HBase进行查询时候只能依靠Row key,HBase不支持条件查询等类似于一些主流数据库的查询方式,读取记录只能依赖行主键以及进行全局扫面,可以将行主键想象成主流数据库查询过程中用到的主键(例如,id)。2、Column ...

一、HBase基本概念

1、Row key

  行主键,在对HBase进行查询时候只能依靠Row key,HBase不支持条件查询等类似于一些主流数据库的查询方式,读取记录只能依赖行主键以及进行全局扫面,可以将行主键想象成主流数据库查询过程中用到的主键(例如,id)。

2、Column Family

  列族,可以将列族想象成日常主流数据库中的表结构的所有列的一个大管家,列族中存储了所有列的名称,整个表包括多少列,列族就包括多少(除去Row key和Timestamp列)。

3、Column

  列,HBase的每个列都隶属于一个列族,以列族名称作为前缀,同一列族中的所有列会聚集在一个存储单元上,同时按照Column key进行排序

4、Timestamp

  在HBase中,通过row key 和 Colum Family确定一份数据,同一个row key和Colum Family可能有多份不同的数据,HBase通过时间戳来区分这些数据,同时按照时间戳对左右的数据进行排序,最新的数据排在最前面,时间戳默认为系统当前时间(精确到毫秒),同时也可以人为设置该值。

5、Value

  我们在HBase表中精确查询数据时,通过TableName找到表,接着通过Row key找到对应的行,然后通过ColumnKey找到相应的列,最后根据时间戳找到最新的需要查询的值,这个值就是value。

6、存储类型

  在HBase中,表名称是字符串,行键和列名称是二进制值(即就是Java中的Byte[]),时间戳是一个64为的整数(Java中的long类型),最后的查询结果Value是字节数组(Java中的byte[]类型)。

7、存储结构

  在HBase中,整个数据表是按照行键进行排序,每行包括任意数量的列,列和列之间通过列键进行排序,每列包括若干的数据,整个HBase的存储结构可以理解如下:

      Table (

        Row key,List(

          SortedMap(

            Column,list(

              Value,Timestamp

              )

            )

          )

        )

二、HBase基本Shell命令

1、创建表

  >>create 'table name','column family',...省略号代表后面可以追加若干列族

2、添加记录

  >>put 'table name','row key',‘column family:column name','data'

  >>put 'table name','row key','column family:column name','data',

  >>...

  上面语句表示向表中添加若干条记录,在data代表需要添加的数据,column family:column name代表在列族中的某一列中添加数据,每行中的列可以不同,每行可以有人一多的列。

3、查询

  由上面可以知道,HBase仅支持依靠Row key查询或者全表扫描,数据表按照row key的字典序进行排序,每行包含任意多的列,同时所有的列按照column key进行自动排序。

  >>get 'table name','row key'

4、更新

  >>put 'table name','row key','Column family name:Column name','data'

  上面这条语句代表将表中需要更新的数据的值更新为data。

5、条件查询

  >>get 'table name','row key',{COLUNM=>'Column family name:column name',VERSIONS=>n}

  上面这条语句代表查询表中column name这一列中的n条记录,每列有许多条记录,这些记录按照时间戳倒序进行排列

  >>get 'table name','row key',{COLUNM=>'Column family name:column name',TIMESTAMP=>time}

  上面这条语句代表查询表中column name这一列中时间戳大于time的所有记录。

6、删除记录

  >>delete 'table name','row key','Column family name:Column name'

  HBase中delete语句只能删除一列,上面这条语句代表删除列名称为Column name的所有数据。

  >>delete 'table name','row key'

  删除key row行中所有的数据

7、删除表

  >>disable 'table name'

  >>delete 'table name'

  删除表时候需要注意,HBase中必须先使表disable,然后使用delete语句。

二、通过Java Api操作HBase

1、加载配置

  将HBase下的hbase-site.

1 Configuration conf = new Configuration;2 conf=HBaseConfiguration.create(conf);3 //conf.addResource("hbase-site-cluster.//可以加载指定的文件

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:HBase入门

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录