gpt4 book ai didi

mapreduce - Cassandra 不等于运算符

转载 作者:行者123 更新时间:2023-12-02 11:15:22 25 4
gpt4 key购买 nike

向所有 Cassandra 专家提问。

我有一个包含大约一百万条记录的列族。

我想以能够执行Not-Equal-To类型的操作的方式查询这些记录。

我在谷歌上搜索了这个,看来我必须使用某种Map-Reduce

有人可以告诉我在这方面有哪些可用的选项吗?

最佳答案

我可以建议一些方法。

1) 如果您想要测试不等式的值数量有限,请考虑将它们建模为 boolean列(即:列 isEqualToUnitedStates 为 true 或 false)。

2) 否则,请考虑模拟不受支持的查询 != X通过组合两个单独查询的结果,< X> X在客户端。

3) 如果您的架构无法支持上述任一类型的查询,您可能不得不编写自定义例程来执行客户端过滤并动态构造不相等集。如果您可以首先将搜索空间缩小到可管理的比例,这样在没有不等于的情况下运行查询相对便宜,那么这将起作用。

假设您对除 Widget 之外的每种产品类型的特定客户的所有购买都感兴趣。理想的查询可能类似于 SELECT * FROM purchases WHERE customer = 'Bob' AND item != 'Widget';当然,现在您无法运行它,但在这种情况下您应该能够运行 SELECT * FROM purchases WHERE customer = 'Bob'不浪费太多资源和过滤item != 'Widget'在客户端应用程序中。

4) 最后,如果在执行扫描之前无法以有意义的方式限制数据(不进行相等性检查的查询将返回太多行而无法轻松处理),您可能不得不求助于 MapReduce。这意味着运行一个分布式作业,该作业将扫描集群中表中的所有行。此类作业的运行速度显然比 native 查询慢很多,而且设置起来也相当复杂。如果您想这样做,请研究Cassandra Hadoop 集成

关于mapreduce - Cassandra 不等于运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21925525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com