java查询cassandra_java-获取Cassandra选择查询的完整结果

根据Cassandra文档,使用execute来获取选择查询的结果并不能保证返回完整的结果.

ResultSet execute(Statement statement) Executes the provided query.

This method blocks until at least some result has been received from

the database. However, for SELECT queries, it does not guarantee that

the result has been received in full. But it does guarantee that some

response has been received from the database, and in particular

guarantee that if the request is invalid, an exception will be thrown

by this method.

因此,如果我有一个应该返回查询完整结果的API,我将如何实现它呢?现在,我创建一个Statement并使用Session类之外的execute方法来获取结果.但是,根据文档看来,这并不总是可行.

解决方法:

该文档描述了驱动程序的分页行为.如果说尚未完全检索到整个结果,则意味着协调者尚未完全实现整个结果集.这样做是为了防止在协调器上创建大量对象.

您将看到ResultSet(execute的结果)具有几种方法.但是只有一个all()将翻页整个结果集并将其立即下载到驱动程序.

相反,如果您使用迭代器,则在您下次在迭代器上调用时,将从服务器分批分页结果.这意味着一次只能将ResultSet的一部分下拉到驱动程序,以减少服务器上的负载,并允许您处理大型数据集而无需将其全部拉入ram.

标签:cassandra,java

来源: https://codeday.me/bug/20191118/2025831.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值