【问题标题】:Cassandra get table count using Java driver 4.6Cassandra 使用 Java 驱动程序 4.6 获取表计数
【发布时间】:2023-03-13 23:00:01
【问题描述】:

我正在尝试获取超过 100,000 条记录的表的计数。我已经完成了异步获取页面大小为 10000 并通过迭代结果集行来增加原子序数。但是获取计数需要很长时间。

没有异步,我能够使用getAvailablewithoutfetching() 获取结果集的计数,但不能获取所有行。有没有更好的方法来获取计数。

  1. DSE - 6.8.9
  2. Cql - 3.4.5
  3. 卡桑德拉 - 4.0.0.681
  4. Java 驱动程序 - 4.6.1

【问题讨论】:

    标签: cassandra datastax datastax-java-driver


    【解决方案1】:

    @Gvtha,不建议在 Apache Cassandra 等 NoSQL 分布式数据库中扫描整个分布式集群节点来查找表数。相反,我们有一个坚如磐石的工具来实现这一目标。它被称为DataStax Bulk Loader (aka DSBulk in short)。此工具可用于loadunloadcount 与 OSS Cassandra/DataStax Enterprise (DSE)/DataStax AstraDB 集群的无缝操作。

    总之,

    ./dsbulk count -h <hostname_or_ip_of_c*_node> -k <keyspace_name> -t <table_name>
    

    这里有一些参考资料可以帮助您快速入门,

    我希望这有助于您入门。

    【讨论】:

    • 我可以在java代码中使用它吗?
    • @Gvtha,绝对是的! (我假设您在询问编程访问方法)。如果它回答了您的原始问题,请执行accept my answer
    • 我已经搜索了很多但无法找到 dsbulk 以在 java 程序中使用。
    • @Gvtha,请参阅答案参考部分中的第三个项目符号,其中我们有 maven 依赖项等示例,
    猜你喜欢
    • 2016-08-04
    • 2020-03-30
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 2016-03-29
    • 2018-02-15
    • 1970-01-01
    • 2018-10-21
    相关资源
    最近更新 更多