Hbase获得查询结果总数
2015-03-17 13:37
330 查看
在使用Hbase的时候,通常涉及到前台分页,而分页又涉及到在前台显示符合条件的总数,在ORACLE中我们可以轻易的获得总条数,但在Hbase中就得做一些配置了,上代码:
1.服务器端配置
在$HBASE_HOME/conf/hbase-site.xml添加一个配置项。具体如下
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value>
</property>
若之前未配置此项,则配置完后,需要重启hbase方能生效,客户端的hbase-site.xml最好也加入此配置,以防出现奇怪的问题。
2.客户端使用,直接上代码。
scan直接用查询结果所用的scan即可。
[java] view plaincopy
/**
* 获得符合条件结果总数
* @author wanglongyf2 2013-1-11 上午10:29:15
* @param scan
* @return
*/
private long getTotalNumber(Scan scan) {
AggregationClient aggregationClient = new AggregationClient(conf);
long rowCount = 0;
try {
<scan.addColumn(columnFamily, etimeQualifier);//必须有此句,或者用addFamily(),否则出错,异常包含 ci ****
rowCount = aggregationClient.rowCount(tableName, null, scan);
} catch (Throwable e) {
LOG.fatal("getTotalNumber wrong. ");
e.printStackTrace();
}
return rowCount;
}
更多hbase性能请参见:http://www.icartype.com
1.服务器端配置
在$HBASE_HOME/conf/hbase-site.xml添加一个配置项。具体如下
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value>
</property>
若之前未配置此项,则配置完后,需要重启hbase方能生效,客户端的hbase-site.xml最好也加入此配置,以防出现奇怪的问题。
2.客户端使用,直接上代码。
scan直接用查询结果所用的scan即可。
[java] view plaincopy
/**
* 获得符合条件结果总数
* @author wanglongyf2 2013-1-11 上午10:29:15
* @param scan
* @return
*/
private long getTotalNumber(Scan scan) {
AggregationClient aggregationClient = new AggregationClient(conf);
long rowCount = 0;
try {
<scan.addColumn(columnFamily, etimeQualifier);//必须有此句,或者用addFamily(),否则出错,异常包含 ci ****
rowCount = aggregationClient.rowCount(tableName, null, scan);
} catch (Throwable e) {
LOG.fatal("getTotalNumber wrong. ");
e.printStackTrace();
}
return rowCount;
}
更多hbase性能请参见:http://www.icartype.com
相关文章推荐
- 用hbase(0.92版本以上)的协处理器实现快速返回查询结果总数
- 用hbase(0.92版本以上)的协处理器实现快速返回查询结果总数
- 用hbase(0.92版本以上)的协处理器实现快速返回查询结果总数 .
- 用hbase(0.92版本以上)的协处理器实现快速返回查询结果总数
- Eclipse中java获得mysql的查询结果集
- (转)PL/SQL编辑数据"这些查询结果不可更新,请包括ROWID或使用SELECT...FOR UPDATE获得可更新结果"处理
- 如何在存储过程内部获得查询的结果
- Python sqlite获得查询结果表的列名
- SQL查询结果集游标循环获得行数据
- PL/SQL编辑数据"这些查询结果不可更新,请包括ROWID或使用SELECT...FOR UPDATE获得可更新结果"处理
- Oracle编辑数据时提示:这些查询结果不可更新,请使用ROWI或者SELECT……FOR UPDATE获得可更新结果。
- Eclipse中java获得mysql的查询结果集
- PL/SQL编辑数据"这些查询结果不可更新,请包括ROWID或使用SELECT...FOR UPDATE获得可更新结果"处理
- Hbase查询结果分页(PageFilter)
- derby获得查询结果条目数
- 如何在存储过程内部获得查询的结果
- hbase 将查询结果写入文件
- php mysql绑定结果查询时stmt获得查询结果条数
- SQL入门 7 8 9 10 11 12 从查询中获得有效的结果
- 查询 总数为 0 的数据 让其查询结果为 空