Hbase shell命令使用 get,scan,时间戳,过滤器,版本等参数详细使用说明

hbase常见命令
https://blog.csdn.net/qq_41712271/article/details/108464191


备注:COLUMN 和 COLUMNS 是不同的,scan 操作中的 COLUMNS 指定的是表的列族, get操作中的 COLUMN 指定的是特定的列,COLUMNS 的值实质上为“列族:列修饰符”。COLUMN 和 COLUMNS 必须为大写。

get相关的操作

1 查看 scores 表中的 Jim 行的相关数据。
    get 'scores','Jim'

2 获取rowKey=Jim并且 1552819392398 <= 时间戳范围 < 1552819398244
    get 'scores', 'Jim', {TIMERANGE => [1552819392398, 1552819398244]}

3 查看 scores 表中 Jim 行、course 列族的所以数据
    get 'scores','Jim','course'
    或
    get 'scores','Jim',{COLUMNS=>'course'}

4 查看 scores 表中 Jim 行、course 列族中 math 列的值。
    get 'scores','Jim','course:math'
    或
    get 'scores','Jim',{COLUMN=>'course:math'}

5 获取多个列的值,使用数组表示
    get 'scores', 'Jim', {COLUMN => ['grade', 'course', 'address:shen']}

6 获取grade列4个版本的值,默认是按照时间戳降续排序的
    get 'scores', 'Jim', {COLUMN => 'grade', VERSIONS => 4}

7 通过时间戳获取某列相应版本的数据
    get 'scores','Jim',{COLUMN=>'course:Chinese',TIMESTAMP=>1599450828729}

8 获取rowKey=Jim中的值等于85的所有列
    get 'scores', 'Jim', {FILTER => "ValueFilter(=, 'binary:85')"}

 

scan相关的操作

1 扫描所有数据
    scan 'scores'

2 扫描所有数据,只显示某列
    scan 'scores',{COLUMN => 'course:Chinese'}

3 扫描所有数据,只显示某列,并指定时间戳
    scan 'scores', {COLUMNS => 'grade', TIMESTAMP=> 1599461998485}

4 扫描所有数据,并用TIMERANGE限制,表示的是”>=开始时间 and <结束时间“
    scan 'scores',{TIMERANGE=>[1599461946117, 1599464538536]}

5 扫描所有数据,显示多列的值
    scan 'scores', {COLUMNS => [ 'grade','course:Chinese', 'course:math']}

6 LIMIT 返回的行数
    scan 'scores', { LIMIT => 2}

7 STARTROW,ROWKEY起始行。会先根据这个key定位到region,再向后扫描
    scan 'scores', { STARTROW => 'Jim'}

8 STOPROW :截止到STOPROW行,STOPROW行之前的数据,不包括STOPROW这行数据
    scan 'scores', { STOPROW => 'Tom'}

9 scan 命令可以指定 startrow,stoprow 来 scan 多个 row,并限制rowkey数量
    scan 'scores',{COLUMNS =>'course',LIMIT =>10, STARTROW => 'Jim', STOPROW=>'Tom'}

 

FILTER条件过滤器

ValueFilter 值过滤器, binary 等于某个值 ,substring:包含某个值
scan 'scores', FILTER=>"ValueFilter(=,'binary:85')"
scan 'scores', FILTER=>"ValueFilter(=,'substring:0')"

ColumnPrefixFilter 列名前缀过滤器,注意:是列名,不是列族
scan 'scores', FILTER=>"ColumnPrefixFilter('eng')"

通过括号、AND和OR的条件组合多个过滤器
scan 'scores', FILTER=>"ColumnPrefixFilter('eng') OR ValueFilter(=,'substring:5')"

  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值