HBase的条件查询

Hbase行键设计(rowkey)实现多条件查询 HBASE的使用跟业务逻辑有很强的关联性,就像本文里提到的例子使用ElasticSearch更合适。HBASE适合那种使用key-value模式的快速查询,多字段查询还是不适合它。 所以大家如果看本文的话,就全当是加深对hbase过滤器的理解吧,内容概括起来就是实现一个使用位运算的比较器。本文主要内容是通过合理hbase行键(rowkey)设计实现快速的多条件查询,所采用的方法将所有要用于查询中的列经过一些处理后 立即下载

一、环境

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.youkuaiyun.com/dajuezhao/archive/2010/07/21/5751914.aspx

手把手教你用树莓派蓝牙抓取小米温湿度计2代数据,接入HomeAssistant(附密钥获取避坑指南) 本文详细介绍了如何通过树莓派蓝牙抓取小米温湿度计2代数据并接入HomeAssistant的完整流程。重点解析了获取32位加密密钥的三种方法,包括使用Telink Flasher工具、米家APP抓包和开源工具ATC_MiThermometer,并提供了HomeAssistant集成配置和常见问题排查指南,帮助用户实现稳定可靠的温湿度监测。 阅读详情

相关推荐

Windows Server 搭建ftp服务

Windows Server 搭建ftp服务

ch258563的博客 1010

Hbase 查询命令 条件筛选

Hbase 查询命令 条件筛选

qq_38151907的博客 1万+

Linux与Windows双系统,安装完linux后无法通过grub进入Windows的解决方法

先装Windows 10,Windows可正常启动,再装Kali,Kali提示装grub后照装。然而装完后重启发现无Windows选项。

sakurashockwave的博客 6454

HBase条件查询

HBase只提供了行级索引,因此,要进行条件查询只有两种方式: (1).设计合适的行键(通过行键直接定位到数据所在的位置); (2).通过Scan方式进行查询,Scan可设置其实行和结束行,把这个搜索限定在一个区域中进行; Scan可以设置一个或多个Filter,来对行键、列族和列进行过滤,从而达到条件查询的目的。 这里记录了一下使用第二种方式进行条件查询的代码。 1.PrefixFil

just_young的专栏 1万+

多agv系统调度的MATLAB仿真

从起点出发,到货物点领取货物最后到卸货点,以完成任务总时间最短为目标进行单目标优化,约束条件为,任务不冲突,路径不冲突,要能实现路径规避 ,4-6台agv一起工作。左右货架间隔可通过1个agv,上下货架间隔可通过两个agv,通道为双向行驶通道。一台agv只能带一个货物,优化目标为完成任务总的时间最短,agv的速度是匀速,转弯也不会减速,取货物时间为固定值。上面的图里面货物看为正方形跟agv一样的长度大小,agv试做是跟货物一样大小的正方形agv的速度是每秒1个车身。多台agv一起完成...

FPGA/MATLAB学习教程/源码/项目合作开发 7564

hbase数据查询及过滤器详细使用

创建并插入数据: hbase(main):179:0> create 'scores','grade','course' hbase(main):180:0> put 'scores','zhangsan01','course:art','90' hbase(main):181:0> scan 'scores' ROW

小强签名设计 的博客 2万+

Unity实战篇 | 教你怎样将Unity的启动Logo 设置成 自己制作的 帧动画

上一篇文章我们讲了怎样在不购买专业版的情况下自定义Unity的启动Logo。 那本篇文章就来介绍一下,怎样在去除默认Logo的前提下制作自己的启动动画!

努力前行,总会成为自己心中的那道光 6万+

HBase条件查询(多条件查询)

Author:Pirate Leo myBlog: http://blog.youkuaiyun.com/pirateleo/ myEmail: codeevoship@gmail.com 转载请注明出处,谢谢。 文中可能涉及到的API: Hadoop/HDFS:http://hadoop.apache.org/common/docs/current/api/ HBase: http:

胡同里的庇护所(Pirate Leo's Shelter) 9万+

【A_Star三维路径规划】基于matlab A_Star算法结合B样条平滑三维地形路径规划(含雷达威胁)【含Matlab源码 3527期】

A_Star算法结合B样条平滑三维地形路径规划(含雷达威胁) 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 741

药物对接仿真软件:HADDOCK_(3).分子对接基本原理

分子对接(Molecular Docking)是计算化学和结构生物学中的一种重要技术,用于预测小分子(如药物分子)与大分子(如蛋白质)之间的相互作用模式和结合亲和力。这一技术在药物设计和开发中具有广泛的应用,尤其是在寻找和优化潜在的药物候选物方面。本节将详细介绍分子对接的基本原理,包括其理论基础、计算方法和应用。

kkchenjj的博客 1170

hbase条件查询java实现

多条件过滤: /** * 通过tileId获取轨迹信息 * @param tableName hbase 表名 * @param family * @param tile_id 条件值字符串 * @return * @throws IOException */ public ArrayList<String> filterByRouteFingerprintId(String tableName, String family, String tile_id) throws IOExceptio

m0_38053092的博客 1002

ABAP RAP 行为建模深入学习:从 Behavior Definition 到 Behavior Implementation 的完整实践指南

ABAP RAP开发指南:业务行为定义与实现 本文介绍SAP RAP框架中业务对象行为的开发方法: 分层设计 Behavior Definition声明业务能力(增删改查、校验、动作等) Behavior Implementation在ABAP类中编写具体逻辑 核心组件 使用BDL定义业务行为 通过FOR BEHAVIOR OF绑定行为池类(ABP) 在本地类实现校验/确定/动作逻辑 关键特性 支持managed/unmanaged两种实现模式 提供草稿表、并发控制等企业级功能 通过EML以别名访问实体 开

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 411

hbase条件查询

一、环境 HBase版本hbase-0.20.5,Hadoop的版本hadoop-0.20.2,JDK1.6 二、需求背景       在HBase中,进行条件查询,很多的文件都说过,但是大多数都是在说明如何设置合理的表结构以及如何设置rowkey进行查询检索,这样的结构设计可以在一定层度上通过rowkey来定位查询(速度很快),但是,如果我是已知某个列的值,需要看有多少行的...

baiyunl的专栏 358

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【hbase】HBase条件查询实现过程解析(多条件查询)

Author:Pirate Leo myBlog: http://blog.youkuaiyun.com/pirateleo/ myEmail: codeevoship@gmail.com 转载请注明出处,谢谢。 文中可能涉及到的API: Hadoop/HDFS:http://hadoop.apache.org/common/docs/current/api/ HBase:

zhengrunjian的博客 802

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

HBase高性能复杂条件查询引擎

版权声明:本文由本人撰写并发表于2014年7月份的InfoQ,HBase的PMC成员Ted Yu先生参与了审稿并于给予了肯定。该方案设计之初仅寄希望于通过二级索引提升查询性能,由于在前期架构时充分考虑了通用性以及对复杂条件的支持,在后来的演变中逐渐被剥离出来形成了一个通用的查询引擎。HBase在大数据领域的应用越来越广泛,成为目前NoSQL数据库中表现最耀眼,呼声最高的产品之一,但就应对复杂条件的查询来说,一般认为它并不是非常适合,熟悉HBase的开发人员对此应该有一定的体会,但是基于普遍的需求,开发者们希

Laurence的技术博客 4万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

HBase多条件及分页查询的一些方法

HBase是Apache Hadoop生态系统中的重要一员,它的海量数据存储能力,超高的数据读写性能,以及优秀的可扩展性使之成为最受欢迎的NoSQL数据库之一。它超强的插入和读取性能与它的数据组织方式有着密切的关系,在逻辑上,HBase的表数据按RowKey进行字典排序, RowKey实际上是数据表的一级索引(Primary Index),由于HBase本身没有二级索引(Secondary Ind...

weixin_34418883的博客 1503

hbase 查询固定条数_hbase shell插入根据条件查询数据

hbase shell插入根据条件查询数据创建并插入数据:hbase(main):179:0> create 'scores','grade','course'hbase(main):180:0> put 'scores','zhangsan01','course:art','90'hbase(main):181:0> scan 'scores'ROW...

weixin_39622150的博客 1059

java hbase 条件查询_Hbase多条件查询数据(FilterList)

packagecn.edu.zucc.hbase;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.hbase.Cell;importorg.apache.hadoop.hbase.CellUtil;importorg.apache.hadoop.hbase.HBaseConfiguration;importorg...

weixin_39566773的博客 586

Hbase 多条件查询的解决思路

背景: 开发一个根据标签的的范围圈定符合条件的所有用户的服务,并将其提供给营销部门使用。在随后的开发过程中 我门发现已经有人做过这块,其文章中描述的服务与我们的需求及其相似。不过我们想要实现的是更为复杂的多条件查询。 摘抄:(以下为前辈的blog主要内容摘要,传送门) 本文主要内容是通过合理hbase 行键(rowkey)设计实现快速的多条件查询,所采用的方法将所有要用于查询中的列经过...

Neo_Echo的博客 4066
上一篇: hbase 简单命令测试
下一篇: Mysql HA实现MYSQL的高可用
jackfor001
博客等级 码龄22年 41粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值