gpt4 book ai didi

cassandra - 为什么基于第一个集群键的查询需要允许过滤?

转载 作者:行者123 更新时间:2023-12-04 15:12:18 26 4
gpt4 key购买 nike

假设我有这张 Cassandra 表:

CREATE TABLE orders (
customerId int,
datetime date,
amount int,
PRIMARY KEY (customerId, datetime)
);

那么为什么下面的查询需要一个 ALLOW FILTERING:

SELECT * FROM orders WHERE date >= '2020-01-01'

Cassandra 可以转到所有单独的分区(即客户)并根据集群键 date 进行过滤。由于 date 已排序,因此无需检索 orders 中的所有行并过滤掉与我的 where 子句匹配的行(据我所知)。

希望有人能赐教。

谢谢

最佳答案

发生这种情况是因为对于正常工作,Cassandra 需要分区键 - 它用于查找正在为其存储数据的机器。如果您没有分区键,例如在您的示例中,Cassandra 需要扫描所有数据以找到与您的查询匹配的数据。这需要使用 ALLOW FILTERING

附言数据仅在各个分区内排序,而不是全局排序。

关于cassandra - 为什么基于第一个集群键的查询需要允许过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64984497/

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