【发布时间】:2016-09-28 12:57:24
【问题描述】:
当我尝试查找关于复合列的信息时,我找不到任何比 2013 年更新的内容(特别是 this one 是 Google 的顶级链接,在谈论使用复合列时没有 CQL 代码,并且显然使用了非常旧的 Java司机)。复合列是否仍然存在于较新版本的 Cassandra 中?我的意思是,除了有一个复合键。
我是 Cassandra 的新手,实际上想了解它们是否适合我的用例,如下所述。考虑一个具有 4 个双值列的表,例如 w、x、y、z。这些数据是从 3 个来源收集的,例如 a、b 和 c。每个来源都可能缺少部分数据,因此表格的每一行最多有 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,@9876543@39@,b:z,b:z,@9876543441@,@987654341。此外,每一行都有一个时间戳作为主键。
我想知道的是我是否可以有一个像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
【问题讨论】: