如何解决Cassandra 查询语言CQL:我们可以结合 SELECT * FROM table_name 吗?和 SELECT count(*) FROM table_name;
我想知道我们是否可以在 CQL 中将 'Select *
' 和 'Select count(*)
' 查询组合在一起,如果是,那么性能如何,它是否会增加查询的执行性能比在大型数据集上运行 2 个单独的查询的性能好。
解决方法
简短回答 - 不,您不能将这两个查询结合起来。
更长的答案 - 不要那样做。在大数据集上,您的查询很可能会超时,因为 Cassandra 需要遍历所有机器上的所有数据。这将导致协调器节点的负载增加,并可能使其崩溃。如果您需要获取所有数据,则需要使用另一种方法:
- 使用针对此类任务进行了大量优化的 Spark Cassandra Connector
- 如果你想卸载数据,或者只是计算,你可以使用 DSBulk utility
- 如果您仍然需要通过代码执行此操作,则需要执行所谓的令牌范围扫描 - Spark Cassandra Connector 和 DSBulk 使用的技术。您可以自己实现(这里是 an example for Java driver 3.x),或者对于 Java 使用 DSBulk 的 API - jar 可通过 Maven 获得(我没有示例)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。