gpt4 book ai didi

cassandra - Cassandra 中的范围查询 (CQL 3.0)

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

我不完全理解的 Cassandra 的一个主要部分是它的范围查询。我知道Cassandra强调分布式环境,注重性能,但可能正因为如此,它目前只支持几种可以高效完成的范围查询,我想知道的是:支持哪些类型的范围查询通过 Cassandra 。

据我所知,Cassandra 支持以下范围查询:

1:主键范围查询,关键字为TOKEN , 例如:

 CREATE TABLE only_int (int_key int PRIMARY KEY);
...
select * from only_int where token(int_key) > 500;

2:在二级索引上,关键字为 ALLOW FILTERING的具有一个相等条件的范围查询, 例如:
CREATE TABLE example (
int_key int PRIMARY KEY,
int_non_key int,
str_2nd_idx ascii
);
CREATE INDEX so_example_str_2nd_idx ON example (str_2nd_idx);
...
select * from example where str_2nd_idx = 'hello' and int_non_key < 5 allow filtering;

但我想知道我是否遗漏了一些东西并寻找一个规范的答案,其中列出了当前 CQL 支持的所有类型的范围查询(或一些允许更多类型范围查询的变通方法)。

最佳答案

您可以找集群键 .
主键可以由分区键形成,然后由集群键形成。

例如像这样的定义

CREATE TABLE example (
int_key int,
int_non_key int,
str_2nd_idx ascii,
PRIMARY KEY((int_key), str_2nd_idx)
);

将允许您在不使用 token 的情况下进行此类查询
select * from example where str_2nd_idx < 'hello' allow filtering;

在 cassandra 中创建 TABLE 之前,您应该首先考虑查询以及您想从 cassandra 中的数据模型中询问什么。

关于cassandra - Cassandra 中的范围查询 (CQL 3.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18202639/

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