【原创】HBase中查询优化小点

摘要:
HBase过滤器提供了非常强大的特性来帮助用户提高其处理表中数据的效率。用户不仅可以使用HBase中预定义好的过滤器,而且可以实现自定义的过滤器。hbase.client.scanner.caching配置项可以设置HBasescanner一次从服务端抓取的数据条数,默认情况下一次一条。

HBase过滤器(fliter)提供了非常强大的特性来帮助用户提高其处理表中数据的效率。用户不仅可以使用HBase中预定义好的过滤器,而且可以实现自定义的过滤器。

在对于HBase集群数据库的查询中即用到了以下几种过滤器:(行键:时间、监测点、车牌号)

1)根据where中的时间条件限制,使用scan.setStartRow();scan.setStopRow();指定本次查询的起始行键范围;

这种方法的使用比下面同样是对于时间过滤的用法快好多好多,

List<Filter> filters = new ArrayList<Filter>(); //过滤器存放

Filter filter1 = new SingleColumnValueFilter(cfs[0].getNameAsString().getBytes(),
pojo.getRECORDTIME().getBytes(), CompareOp.GREATER_OR_EQUAL,
Bytes.toBytes(stime)); // 当列rTime的值为2012-12-16 00:00:10时进行查询
filters.add(filter1);
Filter filter2 = new SingleColumnValueFilter(cfs[0].getNameAsString().getBytes(),
pojo.getRECORDTIME().getBytes(), CompareOp.LESS_OR_EQUAL,
Bytes.toBytes(etime)); // 当列rTime的值为2012-12-16 00:00:10时进行查询
filters.add(filter2);

2)用到了SingleColumnValueFilter用于实现对于记录中某一列中的过滤,即用一列的值决定是否一行数据被过滤;

3)使用scan.addColumn获取结果记录中的某一列;

4)为了满足使用多个过滤器共同限制返回到客户端的结果,使用FilterList(过滤器列表)实现组合多个过滤器的功能来实现某种效果。

5hbase.client.scanner.caching配置项可以设置HBasescanner一次从服务端抓取的数据条数,默认情况下一次一条。通过将其设置成一个合理的值,可以减少scan过程中next()的时间开销。数据管理平台中使用了scan.setCaching(1000),即当结果记录总数少于等于1000时一次返回,大于1000时一次返回1000

免责声明:文章转载自《【原创】HBase中查询优化小点》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JavaScript数字精度丢失问题总结任务池管理与执行器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Hbase介绍及操作

1. Hbase概述 1.1 Hbase是什么 HBase是建立在HDFS之上的分布式面向列的数据库;属于KV结构数据,原生不支持标准SQL。它是一个Apache的开源项目,是横向扩展的。 HBase可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。 HBase不同于一般的关系数据库,它是一个适合于非结构化数据...

HBase 学习(二) Hbase安装与启动

一,前言 二,前期准备   2.1 文件下载   2.2 服务器准备 三,配置文件配置   3.1 hbase-env.sh   3.2 hbase-site.xml   3.3 regionservers   3.4 将hbase的bin目录添加到环境变量   3.5 Hbase的官方配置文档 四,Hbase服务启动   4.1 Hbase启动   4....

快速搭建Hadoop及HBase分布式环境

本文旨在快速搭建一套Hadoop及HBase的分布式环境,自己测试玩玩的话ok,如果真的要搭一套集群建议还是参考下ambari吧,目前正在摸索该项目中。下面先来看看怎么快速搭建一套分布式环境。 准备 三台虚拟机:1台作为NameNode和HMaster 两台作为DataNode和HRegionServer。同时三台都安装zookeeper。 Hadoop...

最为关心的问题,hbase查询一条数据的过程.

HBase中的Client如何路由到正确的RegionServer 在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer。什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer。Client本身并不知道哪个Region...

HBase BulkLoad批量写入数据实战

1.概述 在进行数据传输中,批量加载数据到HBase集群有多种方式,比如通过HBase API进行批量写入数据、使用Sqoop工具批量导数到HBase集群、使用MapReduce批量导入等。这些方式,在导入数据的过程中,如果数据量过大,可能耗时会比较严重或者占用HBase集群资源较多(如磁盘IO、HBase Handler数等)。今天这篇博客笔者将为大家分...

HBase性能优化方法总结

4.1 HBase性能优化方法总结(一):表的设计 4.1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样...