一、HBase查询方式
hbase的查询实现只提供两种方式:
- 按指定rowkey获取唯一一条记录:get方法。
 - 按指定条件获取一批记录:scan方法。
 
实现条件查询功能使用的就是scan方式,scan在使用时有以下几点值的注意:
- scan可以通过setCaching与setBatch方法提高速度(以空间换时间)
 - scan可以通过setStartRow与setEndRow来限定范围。范围越小,性能越高。
 - 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
 










