gpt4 book ai didi

cassandra - 使用 CQL3 迭代 Cassandra 宽行

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

如何使用 CQL3 提取一系列复合列?

考虑以下因素:

CREATE TABLE Stuff (
a int,
b text,
c text,
d text,
PRIMARY KEY (a,b,c)
);

在 Cassandra 中,这有效地创建了一个 ColumnFamily,其中包含整数行(a 的值)以及由 b 和 c 的值以及文字字符串“d”组成的 CompositeColumns。当然,这一切都被 CQL3 掩盖了,因此我们会认为我们正在插入到单独的数据库行中......但我离题了。

并考虑以下一组输入:

INSERT INTO Stuff (a,b,c,d) VALUES (1,'A','P','whatever0');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'A','Q','whatever1');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'A','R','whatever2');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'A','S','whatever3');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'A','T','whatever4');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'B','P','whatever5');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'B','Q','whatever6');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'B','R','whatever7');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'B','S','whatever8');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'B','T','whatever9');

在我当前的用例中,我想一次读取 Stuff 的所有值,即 n 个值。我该怎么做呢?这是我当前使用 n=4 的结果:

SELECT * FROM Stuff WHERE a=1 LIMIT 4;

正如预期的那样,我得到:

 a | b | c | d
---+---+---+-----------
1 | A | P | whatever0
1 | A | Q | whatever1
1 | A | R | whatever2
1 | A | S | whatever3

我遇到的麻烦是如何获得接下来的 4 个?这是我的尝试:

SELECT * FROM Stuff WHERE a=1 AND b='A' AND c>'S' LIMIT 4;

这不起作用,因为我们将 b 限制为等于“A”——这是合理的做法!但我在 CQL3 语法中没有发现任何东西可以让我继续迭代。我希望我能做这样的事情:

SELECT * FROM Stuff WHERE a=1 AND {b,c} > {'A','S'} LIMIT 4;

如何达到我想要的结果。即,如何让 CQL3 返回:

 a | b | c | d
---+---+---+-----------
1 | A | T | whatever0
1 | B | P | whatever1
1 | B | Q | whatever2
1 | B | R | whatever3

最佳答案

自动分页已完成https://issues.apache.org/jira/browse/CASSANDRA-4415 ,已发布至 Cassandra 2.0.1

关于cassandra - 使用 CQL3 迭代 Cassandra 宽行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17664438/

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