gpt4 book ai didi

cassandra - 如果没有 'allow filtering',如何在 CQL 中进行条件查询?

转载 作者:行者123 更新时间:2023-12-04 01:09:52 27 4
gpt4 key购买 nike

我是 CQL 的新精简者。我有(餐厅) table 。通过实现'desc restaurants',它显示了信息 restaurants table information

如何在不使用“允许过滤”的情况下运行以下查询,从 borough = 'brooklyn' 的餐厅中选择名称;

为了能够在没有“允许过滤”的情况下运行查询,需要执行哪些必要步骤?

非常感谢。

最佳答案

使用 Cassandra (CQL),您需要采用基于查询的建模方法。这意味着您需要一个专门设计的表来按 borough 提供查询。

一个很好的开始问题是,为什么(在您当前的表设计中)id 是您唯一的主键?您是否必须支持通过 id 进行的查询?如果没有,那么你不应该需要那张 table 。但是,由于 borough 不是唯一的,因此将额外的列聚集到您的主键定义中是有意义的。

我会选择这样的东西:

CREATE TABLE stackoverflow.restaurants_by_borough (
borough text,
name text,
id int,
buildingnum text,
cuisinetype text,
phone text,
street text,
zipcode int,
PRIMARY KEY (borough, name, id)
) WITH CLUSTERING ORDER BY (name ASC, id ASC);

现在这个查询可以工作了:

select name from restaurants_by_borough
where borough = 'brooklyn';

它将返回每个行政区的数据,按名称 排序。此外,如果任何两家餐厅具有相同的 name(布鲁克林可能有不止一家麦当劳),则将 id 添加到键的末尾以确保唯一性。

关于cassandra - 如果没有 'allow filtering',如何在 CQL 中进行条件查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55832953/

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