【问题标题】:Cassandra query language(CQL): Can we combine SELECT * FROM table_name; and SELECT count(*) FROM table_name;Cassandra 查询语言(CQL):我们可以结合 SELECT * FROM table_name;和 SELECT count(*) FROM table_name;
【发布时间】:2021-05-20 20:57:58
【问题描述】:

我想知道我们是否可以在 CQL 中将 'Select *' 和 'Select count(*)' 查询组合在一起,如果可以,那么性能如何,它是否会提高查询而不是在大型数据集上运行 2 个单独的查询。

【问题讨论】:

    标签: cassandra cql cassandra-3.0


    【解决方案1】:

    简短回答 - 不,您不能合并这两个查询。

    更长的答案 - 不要那样做。在大数据集上,您的查询很可能会超时,因为 Cassandra 需要遍历所有机器上的所有数据。这将导致协调节点的负载增加,并可能使其崩溃。如果您需要获取所有数据,则需要使用另一种方法:

    • 使用针对此类任务进行了高度优化的Spark Cassandra Connector
    • 如果你想卸载数据,或者只是计算,你可以使用DSBulk utility 来实现
    • 如果您仍需要从代码中执行此操作,则需要执行所谓的令牌范围扫描 - Spark Cassandra 连接器和 DSBulk 使用的技术。您可以自己实现(这里是 an example for Java driver 3.x),或者对于 Java 使用 DSBulk 的 API - jar 可以通过 Maven 获得(我没有示例)

    【讨论】:

      猜你喜欢
      • 2012-03-16
      • 2013-06-01
      • 2012-05-07
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多