文中可能涉及到的API:Hadoop/HDFS:http://hadoop.apache.org/common/docs/current/api/HBase: http://hbase.apache.org/apidocs/index.html?overview-summary.html
Begin!HBase的查询实现只提供两种方式:1、按指定RowKey获取唯一一条记录,get方法(
org.apache.hadoop.hbase.client.Get)2、按指定的条件获取一批记录,scan方法(
org.apache.hadoop.hbase.client.Scan) 实现条件查询功能使用的就是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 | 20120912 | 中国好声音选手采访 | 综艺花絮 | 2 |
|---|
| 7 | 20120914 | 中国好声音第5期 | 综艺 | 1 |
|---|
| 8 | 20120916 | 中国好声音录制花絮 | 综艺花絮 | 2 |
|---|
| 9 | 20120918 | 张玮独家专访 | 花絮 | 3 |
|---|
| 10 | 20120920 | 加多宝凉茶广告 | 综艺广告 | 4 |
|---|
这里UserID应该对应另一张User表,暂不列出。我们只需知道UserID的含义:1代表 浙江卫视; 2代表 好声音剧组; 3代表 XX微博; 4代表 赞助商。
调用查询接口的时候将上述5个条件同时输入find(20120901,20121001,"中国好声音","综艺","浙江卫视")。此时我们应该得到记录应该有第1、2、3、4、5、7条。第6条由于不属于“浙江卫视”应该不被选中。
我们在设计RowKey时可以这样做:采用UserID + CreateTime + FileID组成rowKey,这样既能满足多条件查询,又能有很快的查询速度。Oracle 11g不能连接报ORA-12537HBase实现记录定期定量删除相关资讯 Hbase HBase查询
- HBase 参考文档翻译之 Getting (08月15日)
- HBase应用开发回顾与总结系列 (01月10日)
- Apache HBase 2015年发展回顾与未 (01月04日)
| - 为啥HBase需要搭建SQL引擎层 (02月19日)
- HBase表数据分页处理 (01月10日)
- Hbase VS Oracle (11/21/2015 20:22:40)
|
本文评论 查看全部评论 (0)