[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使用数字比字符串好:https://blog.csdn.net/alphags/article/details/53786777
  • RowKey设计:http://blog.chedushi.com/archives/9720


你可能感兴趣的:(HBase)