hbase条件查询
来源:互联网 发布:淘宝换手机屏幕可靠么 编辑:程序博客网 时间:2024/04/26 00:32
一、环境
HBase版本hbase-0.20.5,Hadoop的版本hadoop-0.20.2,JDK1.6
二、需求背景
在HBase中,进行条件查询,很多的文件都说过,但是大多数都是在说明如何设置合理的表结构以及如何设置rowkey进行查询检索,这样的结构设计可以在一定层度上通过rowkey来定位查询(速度很快),但是,如果我是已知某个列的值,需要看有多少行的列包含这个值,那么这样的需求通过rowkey来查询就显得不合适。最早我的想法是查询内容,然后遍历,但是这样的效率明显是很低下的,所以,我寻求了其他的解决办法。
三、操作过程
1、一些已知rowkey这样的查询内容我就不在这里描述,网络上有很多这样的内容,我在下面只是说在已知列值的情况下进行的一些查询工作。
2、阅读API,发现了一个SingleColumnValueFilter类,就看名字大概知道作用,细看,然后查了些资料,编写了代码如下,先看代码:
public class HBaseFilterTest {public static void main(String[] args) {try { HBaseConfiguration conf = new HBaseConfiguration();conf.set("hbase.master.port", "IP:PORT");conf.set("hbase.zookeeper.quorum", "IP");HTable table = new HTable(conf, "scores");Filter course_art_filter = new SingleColumnValueFilter(Bytes.toBytes("course"), Bytes.toBytes("art"), CompareOp.EQUAL, Bytes.toBytes("art"));Scan s = new Scan();s.setFilter(course_art_filter);// 指定之后,将只返回一个cell,也就是指定的那一个// s.addColumn(Bytes.toBytes("course"), Bytes.toBytes("art"));ResultScanner scanner = table.getScanner(s);scanner = table.getScanner(s);for (Result rr = scanner.next(); rr != null; rr = scanner.next()){ System.out.println("rowkey = " + new String(rr.getRow()));System.out.println("first cell value = " + rr.getCellValue());System.out.println("cell[] length = " + rr.getCellValues().length);System.out.println("getCellValues()[2] = " + rr.getCellValues()[2]);System.out.println("get local cell value = " + rr.getCellValue(Bytes.toBytes("course"), Bytes.toBytes("art")));}} catch (Exception e){ e.printStackTrace(); }}}3、代码写的比较粗糙,但是一些具体的内容反映出来了.
四、总结
抛砖引玉了,filte还有很多,如果细致,可以看看其他的filter类,这样是可以辅助我们在使用hbase进行查询的效率和功能的。当然,对于前面说到的rowkey的设计也是十分重要的。复合的查询不仅能够缩短时间,也能加快查询的效率和速度。
转自:http://blog.csdn.net/dajuezhao/archive/2010/07/21/5751914.aspx
- HBase的条件查询
- HBase的条件查询
- HBase的条件查询
- hbase条件查询
- hbase条件查询
- HBase条件查询
- HBase条件查询(多条件查询)
- HBase条件查询(多条件查询)
- HBase条件查询(多条件查询)
- HBase条件查询(多条件查询)
- HBase条件查询(多条件查询)
- HBase条件查询(多条件查询)
- HBase条件查询(多条件查询)
- hbase条件查询实现理论
- Solr的HBase多条件查询
- HBase高性能复杂条件查询引擎
- HBase如何实现多条件查询
- HBase高性能复杂条件查询引擎
- hbase中filter查询例子
- 内容共享 之 发送内容到其他的APP
- 智能算法浅介----模拟退火,遗传算法,禁忌搜索,神经网络等
- android中图片异步加载工具类 ---利用双缓存技术和线程池
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eproductServ
- hbase条件查询
- Dijkstra_And_Ford
- 字节对齐方式引起的血案
- AT91SAM9X5-EK开发板从NFS启动
- 使用Aspose.Pdf从PDF文件中获取个别的附件
- c++实现使用内存映射文件处理大文件
- STL面试题
- 逻辑和物理数据模型的区别
- WebLogic优化大全