首页 > 其他 > 详细

HBase使用

时间:2020-02-18 19:05:34      阅读:80      评论:0      收藏:0      [点我收藏+]
Hbase
         高表(tall table)比宽表(tall table)的性能更高(50%以上)
概念:
**cell** 通过row和columns确定的为一个存贮单元称为cell
**timestamp ** 每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。
**Family** 列族在创建之前需要定义好,cloumn可以动态插入
**rowKey** Rowkey排序是按照ASCII码表进行排序
 
# 建表
1 create table,{NAME=>dataset,DATA_BLOCK_ENCODING=>PREFIX} # 指定表名/列簇/压缩方式
2 create table,{NAME=>1},{NAME=>2}
3 alter table,family # 添加列簇
# 删除
1 disable table # 删除表
2 drop table     
3  
4 alter table,{NAME=>1,METHOD=>delete} # 删除列簇
5 delete tebale,row,family:coloumn # 删除列delete <table>,<rowkey>,<family:column>
6 deleteall table,row # 删除行deleteall <table>,<rowkey>,<family:column>
7 eg:
8 deleteall annotation_task,oilT2My9Asrsi85CV0M.6.xj8upd8kbypm7vIQsoE
9 deleteall annotation_task,"oilT2My9Asrsi85CV0M.\x5Cx00\x5Cx00\x5Cx00\x5Cx06.xj8upd8kbypm7vIQsoE" (双引号)
# 增加
1 put <table>,<rowkey>,<family:column>,<value>,<timestamp>
2 put table,sfsfsf,id:lisi,1993 # column 可以临时创建,通过:指定
# 查询
1 count table,{INTERVAL => 100, CACHE => 500} #表中有多少行,每100条显示一次,缓存区为500
2 get table,row,family:column
3  
4 scan table,{COLUM=>info} # 扫描info这个列簇
5 scan table,{COLUMNS=>info:birthday} # 扫描指定列
6 scan table, {STARTROW => Sariel, LIMIT=>1, VERSIONS=>1}
#除了列(COLUMNS)修饰词外,HBase还支持Limit(限制查询结果行数),STARTROW(ROWKEY起始行。会先根据这个key定位到region,再向后扫描)、STOPROW(结束行)、TIMERANGE(限定时间戳范围)、VERSIONS(版本数)、和FILTER(按条件过滤行)等。比如我们从Sariel这个rowkey开始,找下一个行的最新版本
1 scan table, { STARTROW => rowKey, LIMIT=>1, VERSIONS=>1}
# Filter是一个非常强大的修饰词,可以设定一系列条件来进行过滤。比如我们要限制某个列的值等于26
1 scan table, FILTER=>"ValueFilter(=,binary:26’)"
2 scan member, FILTER=>"ValueFilter(=,substring:6)" # 值包含6这个值
3 scan member, FILTER=>"ColumnPrefixFilter(birth) # 列名中的前缀为birth
4 scan table,FILTER=>"PrefixFilter(rowPrefix)" # 过滤扫描rowkey
5 scan member, FILTER=>"ColumnPrefixFilter(birth) AND ValueFilter ValueFilter(=,substring:1988)" # 多重条件过滤
6 scan hbase:meta,FILTER=>"PrefixFilter(table)" # 获取指定table的region信息
# 其他     
1 exists table # 判断表名是否存在
2 disable table # 修改表结构,先disable,再enable
3 alter table,{NAME=>1,TTL=>18888} 
4 ebale table    
# 创建lemon表
 1 create sample_set_lemon,
 2 {NAME => s, DATA_BLOCK_ENCODING => FAST_DIFF}, 
 3 {NAME => l, DATA_BLOCK_ENCODING => FAST_DIFF}, 
 4 METADATA => { 
 5     lemon.autoindex.enabled => true, 
 6     lemon.index.enabled => true, 
 7     lemon.index.regions => 1,
 8     lemon.update.enabled =>true, 
 9     lemon.index.meta => {"indexes":[
10         {"nameType":"E","family":"s","column":"sample_id","termExtractor":"com.huaweicloud.gaia.annotation.lemon.DatasetQualifierValueExtractor"},
11         {"nameType":"E","family":"s","column":"sample_name","termExtractor":"com.huaweicloud.gaia.annotation.lemon.DatasetQualifierValueMd5Extractor"},
12         {"nameType":"E","family":"s","column":"sample_dir","termExtractor":"com.huaweicloud.gaia.annotation.lemon.DatasetQualifierValueMd5Extractor"},
13         {"nameType":"E","family":"s","column":"sample_size","termExtractor":"com.huaweicloud.gaia.annotation.lemon.SampleSizeExtractor"},
14         {"nameType":"E","family":"s","column":"sample_time","termExtractor":"com.huaweicloud.gaia.annotation.lemon.SampleDateExtractor"},
15         {"nameType":"E","family":"s","column":"sample_status","termExtractor":"com.huaweicloud.gaia.annotation.lemon.DatasetQualifierValueExtractor"},
16         {"nameType":"E","family":"s","column":"annotation_status","termExtractor":"com.huaweicloud.gaia.annotation.lemon.DatasetQualifierValueExtractor"},
17         {"nameType":"E","family":"s","column":"annotated_by","termExtractor":"com.huaweicloud.gaia.annotation.lemon.DatasetQualifierValueMappingExtractor"},
18         {"nameType":"E","family":"s","column":"reviewer","termExtractor":"com.huaweicloud.gaia.annotation.lemon.DatasetQualifierValueMappingExtractor"},
19         {"nameType":"E","family":"s","column":"review_score","termExtractor":"com.huaweicloud.gaia.annotation.lemon.DatasetQualifierValueExtractor"},
20         {"nameType":"E","family":"s","column":"create_time","termExtractor":"com.huaweicloud.gaia.annotation.lemon.SampleDateExtractor"},
21         {"nameType":"E","family":"s","column":"update_time","termExtractor":"com.huaweicloud.gaia.annotation.lemon.SampleDateExtractor"},
22         {"nameType":"E","family":"s","column":"metadata","termExtractor":"com.huaweicloud.gaia.annotation.lemon.SampleMetadataExtractor"},
23         {"nameType":"F","family":"l","termExtractor":"com.huaweicloud.gaia.annotation.lemon.SampleLabelsExtractor"}
24     ]}
25 }

 

 
java API操作HBase表

HBase使用

原文:https://www.cnblogs.com/luckyboylch/p/12327298.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!