0
点赞
收藏
分享

微信扫一扫

[HBase基础]--RowKey查询(Scan和Get比较)


一、HBase查询方式

    hbase的查询实现只提供两种方式:

  1. 按指定rowkey获取唯一一条记录:get方法。
  2. 按指定条件获取一批记录:scan方法。

    实现条件查询功能使用的就是scan方式,scan在使用时有以下几点值的注意:

  1. scan可以通过setCaching与setBatch方法提高速度(以空间换时间)
  2. scan可以通过setStartRow与setEndRow来限定范围。范围越小,性能越高。
  3. scan可以通过setFilter方法添加过滤器,这也是分页(性能差)、多条件查询的基础。

二、RowFilter介绍

operator

description

less

 小于

less_or_equal

 小于等于

equal

 等于

not_equal

 不等于

greater_or_equal

 大于等于

greater

 大于

no_op

 排除所有

Comparator

description

BinaryComparator

使用bytes.comparaTo()比较

BinaryPrefixComparator

和BinaryComparator差不多,从前面开始比较

NullComparator


BitComparator


RegexStringComparator

正则表达式

subStringComparator

把数字当成字符串,用contains()来判断

参考:

  • Get:  http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Get.html#setFilter-org.apache.hadoop.hbase.filter.Filter-
  • Scan:http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan.html#setFilter-org.apache.hadoop.hbase.filter.Filter-
  • 扫描参数设置: http://grokbase.com/t/hbase/user/126vtkfr7h/scan-vs-put-vs-get
  • 对比:http://student-lp.iteye.com/blog/2309841
  • RowKey设计:http://blog.chedushi.com/archives/9720


举报

相关推荐

0 条评论