日期:2014-05-16 浏览次数:20429 次
转载请注明出处,谢谢。
Author:Pirate Leo
Email:codeevoship@gmail.com
————————————————————————————————————————————————
HBase的查询实现只提供两种方式:
1、按指定RowKey获取唯一一条记录,get方法(org.apache.hadoop.hbase.client.Get)
2、按指定的条件获取一批记录,scan方法(org.apache.hadoop.hbase.client.Scan)
(具体API参见官方地址:http://hbase.apache.org/apidocs/overview-summary.html)
实现条件查询功能使用的就是scan方法,scan方法在使用时有以下几点值得注意:
1、scan可以通过setCaching与setBatch方法提高速度(以空间换时间);
2、scan可以通过setStartRow与setEndRow来限定范围。范围越小,性能越高。
通过巧妙的RowKey设计使我们批量获取记录集合中的元素挨在一起(应该在同一个Region下),可以在遍历结果时获得很好的性能。
3、scan可以通过setFilter方法添加过滤器,这也是分页、多条件查询的基础。
下面举个形象的例子:
我们在表中存储的是文件信息,每个文件有5个属性:文件id(long,全局唯一)、创建时间(long)、文件名(String)、分类名(String)、所有者(User)。
我们可以输入的查询条件:文件创建时间区间(比如从20120901到20120914期间创建的文件),文件名(“中国好声音”),分类(“综艺”),所有者(“浙江卫视”)。
假设当前我们一共有如下文件:
ID |
CreateTime |
name |
category |
userID |
1 |
20120902 |
中国好声音第1期 |
综艺 |
1 |
2 |
20120904 |
中国好声音第2期 |
综艺 |
1 |
3 |
20120906 |
中国好声音外卡赛 |
综艺 |
1 |
4 |
20120908 |
中国好声音第3期 |
综艺 |
1 |
5 |
20120910 |
中国好声音第4期 |
综艺 |
1 |
6<
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|