我将 Cassandra 1.2.12 与 CQL 3 一起使用,并且在为我的列族建模时遇到了麻烦。
我目前在特定时间存储客户数据的快照。效果很好:
CREATE TABLE data (
cust_id varchar,
time timeuuid,
data_text text,
PRIMARY KEY (cust_id, time)
);
cust_id 是分区键,时间是集群 ID,所以,据我所知,我可以将表中的每一行想象成:
| cust_id | timeuuid1:data_text | timeuuid2 : 数据文本 |
| CUST1 | 此时的数据 | 此时的数据 |
现在我想为每个快照存储另一组指标 - 但这些列中的每一个的名称都不是固定的。所以像:
| cust_id | timeuuid1:data_text | timeuuid1 : 动态Col1 | timeuuid1 : 动态Col2 | timeuuid1:动态ColN |
| CUST1 | 数据 |{某个值} |{某个值} |{某个值} |
我已经通过使用复合主键实现了时间戳的动态列,但是如果您明白我的意思,我看不出如何在每个列集群中实现这一点。如果我将“dynamicColumnName”添加到现有的复合键中,我最终会得到为每个动态列存储的客户数据,这不是我想要的。
在不使用 Map 列的情况下,这可能吗?希望能帮到你,谢谢!