cassandra分页

cassandra分页

在cassandra的协议中,没有具体规定查询结果的行数限制。但是对于大的数据集,依然有结果分页的必要。过大的结果集会爆掉服务端或者客户端的内存。

传统的分页方法采用了一点trick,采用了token函数

SELECT * FROM images LIMIT 100;
SELECT * FROM images WHERE token(image_id) > token([Last image ID received]) LIMIT 100;

这种方式会造成一点编程上的麻烦,一般开发中会重新再封装一次分页的方法。在cassandra2.0的java api中,添加了对于分页的支持,如下所示:

Statement stmt = new SimpleStatement("select * FROM raw_weather_data WHERE wsid= '725474:99999' AND year = 2005 AND month = 6");
stmt.setFetchSize(24);
ResultSet rs = session.execute(stmt);
Iterator iter = rs.iterator();
while (!rs.isFullyFetched()) {
   rs.fetchMoreResults();
   Row row = iter.next();
   System.out.println(row);
}

参考资料

  1. Things You Should Be Doing When Using Cassandra Drivers

  2. Improvements on the driver side with Cassandra 2.0

关键字:cassandra

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部