hbase中根据Rowkey后缀进行查询
2017-11-23 11:28
1331 查看
假如hbase表设计时,Rowkey设计为“time+uid”(这里不考虑hbase的Rowkey设计合理性,只是简单说明)。现在有一个需求,筛选出某一uid在一个时间段[time1,time2)的值,该怎么办呢?
如果是在命令行中进行查询,可以结合startrow,endrow,filter,(column),具体如下所示:
scan ‘tablename’,
{STARTROW=>’time1+uid’,ENDROW=>’time2+uid’,FILTER=>”RowFilter(=,’regexstring:.*uid’)”}
如果是在代码中进行查询,
如果是在命令行中进行查询,可以结合startrow,endrow,filter,(column),具体如下所示:
scan ‘tablename’,
{STARTROW=>’time1+uid’,ENDROW=>’time2+uid’,FILTER=>”RowFilter(=,’regexstring:.*uid’)”}
如果是在代码中进行查询,
Configuration config = new Configuration(); config.set("hbase.zookeeper.quorum", "10.1.1.1");//需根据hbase配置进行设置 HBaseConfiguration hbaseConfig = new HBaseConfiguration(config); Scan scan = new Scan(); scan.setStartRow(Bytes.toBytes(time1+uid)); scan.setStopRow(Bytes.toBytes(time2+uid)); Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new RegexStringComparator(".*"+uid)); scan.setFilter(filter); ResultScanner rs = null; HTable table = new HTable(hbaseConfig, Bytes.toBytes(tableName)); String rowkey = null; rs = table.getScanner(scan); for (Result r : rs) { for (KeyValue kv : r.list()) { rowkey = Bytes.toString(kv.getRow()); System.out.println(rowkey); } }
相关文章推荐
- hadoop之根据Rowkey从HBase中查询数据
- HBase中已知RowKey和部分列进行查询~~~~~
- Hbase根据rowkey利用scan查询
- hbase RowFilter如何根据rowkey查询以及实例实现代码 habase模糊查询【转】
- hbase RowFilter如何根据rowkey查询以及实例实现代码
- hbase RowFilter如何根据rowkey查询以及实例实现代码
- OpenGrok添加根据文件名后缀进行查询过滤的功能
- 根据Rowkey从HBase中查询数据
- hbase 利用rowkey设计进行多条件查询
- hbase表数据的写入流程:(根据rowkey进行写入)
- hbase表数据的读流程:(根据rowkey读)
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- mongodb 分页查询并 根据传入的经纬度计算计算两点距离进行排序
- 根据已经加载好的datagrid数据,通过条件查询进行重新根据查询的条件进行加载:(无需通过后台再次查询)
- hbase根据rowKey范围批量删除
- 统计查询-根据条件进行count的两种实现方式- oracle
- NSPredicate 根据谓语动词 进行 模糊查询
- PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询
- Java,Mysql-根据一个给定经纬度的点,进行附近500米地点查询–合理利用算法
- spring-使用JdbcTemplate实现根据id进行查询