Cassandra C#驱动程序获取所有记录表格表

问题描述

我正在尝试从Cassandra表中获取所有记录,但仅获得5000行。有什么办法可以从表格中获取所有结果?

以下是版本详细信息:
是驱动程序版本3.11.0
我的服务器版本是[cqlsh 5.0.1 |卡桑德拉3.11.4 | CQL规范3.4.4 |原生协议v4]

下面是我的代码

//Create a cluster instance using 3 cassandra nodes.
var cluster = Cluster.Builder()
.AddContactPoints("xx.xx.xx.xx")
 .Build();
var session = cluster.Connect("keyspace");
var rs = session.Execute("select * from table ALLOW FILTERING");
ini i=0;
 foreach (var row in rs)
 {
    i++;
}

i的值始终为5000。我试图实现分页以获取所有数据,但无法做到这一点。

 while (!rs.IsFullyFetched)
 {
     rs.FetchMoreResults();
     foreach (var row in rs)
     {
         i++;
     }
 }

我仍然得到相同的结果

也尝试遵循URL https://docs.datastax.com/en/developer/csharp-driver/3.13/features/paging/ 但这也不起作用,因为我没有使用任何过滤器。
但是当我尝试引入过滤器时,结果是0行。

    var ps = session.Prepare("select * from table where state = ? ALLOW FILTERING");
    //// Set the page size at statement level.
    var statement = ps.Bind("xyz").SetPageSize(1000);
    var rs = session.Execute(statement);
    var i = 0;
    foreach (var row in rs)
    {
       i++;
    }

有针对特定状态的记录,但未获取任何数据。记录数为零。
之前我也遇到了驱动程序版本问题
Query Cassandra form C# no result is shown

解决方法

默认情况下,fetchsize设置为5000,以防止应用程序在一次响应中意外检索大型结果集,也许您可​​以使用.setFetchSize(int)属性

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...