gpt4 book ai didi

cassandra - 关于 Cassandra 复合列的文档

转载 作者:行者123 更新时间:2023-12-04 23:41:02 24 4
gpt4 key购买 nike

当我尝试查找有关复合列的信息时,我找不到任何比 2013 年更新的信息(特别是 this one 是 Google 的顶级链接,在谈论使用复合列时没有 CQL 代码,并且显然使用了非常旧的 Java 驱动程序)。复合列是否仍然存在于较新版本的 Cassandra 中?我的意思是,除了有一个复合键。

我是 Cassandra 的新手,实际上想了解它们是否适合我的用例,如下所述。考虑一个有 4 个双值列的表,比如 w , x , y , z .这些数据是从 3 个来源收集的,例如 a , bc .每个来源可能缺少部分数据,因此表格的每一行最多有 12 个数字。
与其创建 3 个具有 4 列的表来存储来自不同来源的值,然后合并这些表以填充缺失的字段,我正在考虑使用一个将 4 个数据列建模为 4 super columns 的表。或 composite columns .像 a:w , b:w , c:w , a:x , b:x , c:x , a:y , b:y , c:y , a:z , b:z , c:z .此外,每一行都有一个时间戳作为主键。

我想知道的是我是否可以有像 SELECT *:w AS w FROM MyTable 这样的查询。这样对于每一行,x 的一个值从任何可用的来源返回(无论来自哪个来源)。虽然我还想保留从特定来源检索数据的能力,例如 SELECT a:w FROM MyTable .

----------------------------------------------------------------
| key | a:w | b:w | c:w | a:x | b:x | c:x | a:y | b:y | c:y | ...
----------------------------------------------------------------
| 1 | 10 | 10 | - | ....
| 2 | - | 1 | 2 | ....
| 3 | 11 | - | - | ....
| 4 | 12 | 11 | 11 | ....
-----------------------------------------------------------------

SELECT *:w AS w FROM MyTable
(10, 1, 11, 12) // would be an acceptable answer

SELECT a:w AS w FROM MyTable
(10, 11, 12) // would be an acceptable answer

最佳答案

复合列是与 Thrift 协议(protocol)相关的词汇。在内部,在 Cassandra 2.2 之前,存储引擎仍然处理复合列和 翻译 他们进入聚类专栏 自带的新词汇CQL .

自 Cassandra 3.x 以来,存储引擎已被重写,因此我们不再使用复合列存储数据。我们将存储引擎与新的 CQL 语义对齐,例如分区键/集群列。为了向后兼容,在处理旧的 Thrift 协议(protocol)时,我们仍然将集群列转换回复合列语义。

如果您刚开始使用 Cassandra,请忘记旧的 Thrift 协议(protocol)并立即使用 CQL 语义。

根据您的需要,以下架构应该可以完成这项工作:

CREATE TABLE my_data(
data text,
source text,
PRIMARY KEY ((data), source)
);

INSERT INTO my_data(data, source) VALUES('data1','src1');
INSERT INTO my_data(data, source) VALUES('data1','src2');
...
INSERT INTO my_data(data, source) VALUES('dataN','src1');
...
INSERT INTO my_data(data, source) VALUES('dataN','srcN');

//Select all sources for data1
SELECT source FROM my_data WHERE data='data1';

//Select data and source
SELECT * FROM my_data WHERE data='data1' AND source='src1';

关于cassandra - 关于 Cassandra 复合列的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530007/

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