Cassandra - 遍历 table 行

Cassandra - Iterate through table rows

我的目标是遍历我的 cassandra 数据库,其中的每个条目,并检查某个字段以查看是否需要执行操作。我正在使用在这里找到的 erlang cql 驱动程序:https://github.com/matehat/cqerl

当我在 2000 年的 table 中 运行 select * from keyspace.table limit 10; 时,我得到了前 10 个结果...但是我需要得到下一个 1990。我如何得到接下来的 10 个使用 CQL?我看到支持分页,但没有关于如何在 cql 中执行此操作的文档。

我已经广泛研究了这个问题,似乎关于这个主题的唯一答案是不完整的,许多对这些问题的评论者没有得到他们正在寻找的答案:Iterating through Cassandra wide row with CQL3

提前感谢您的帮助!

感谢@Atomic_alarm,我找到了答案

此处的文档:https://www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0 指定如何使用 CQL 进行自动分页。

我没有像文档说的那样使用 cql 命令行,而是使用了 erlang 驱动程序代码。首先我将 1000 行插入 table,然后我 运行 下面的函数。它迭代了所有 1000 个结果,一次 2 页:

test_page() ->
       {ok, Client} = cqerl:get_client({}),
       {ok, Res} = cqerl:run_query(Client, #cql_query{statement = "SELECT * FROM dks.devices;",
                       page_size = 2}),
       get_more(Res, 0).
   get_more(Res, Num) ->
       case cqerl:has_more_pages(Res) of
           true ->
               {ok, Res2} = cqerl:fetch_more(Res),
               get_more(Res2, Num+1);
           false -> 
               Num
       end.