cassandra分页
Posted chenatu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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<Row> iter = rs.iterator();
while (!rs.isFullyFetched()) {
rs.fetchMoreResults();
Row row = iter.next();
System.out.println(row);
}
参考资料
- Things You Should Be Doing When Using Cassandra Drivers
- Improvements on the driver side with Cassandra 2.0
以上是关于cassandra分页的主要内容,如果未能解决你的问题,请参考以下文章
Cassandra 的 Stargate 文档 API 的分页