我正在使用带有CQL 3的Cassandra 1.2.12,并且无法对我的列族进行建模。
我目前在特定时间存储客户数据的快照。效果很好:
CREATE TABLE data (
cust_id varchar,
time timeuuid,
data_text text,
PRIMARY KEY (cust_id, time)
);
cust_id是分区键,time是聚类ID,因此,据我所知,我可以想到表中的每一行,如:
| cust_id | timeuuid1:data_text | timeuuid2:data_text |
| CUST1 |此时的数据|此时的数据|
现在,我想为每个快照存储另一组指标 - 但这些列的名称并不固定。如下所示:
| cust_id | timeuuid1:data_text | timeuuid1:dynamicCol1 | timeuuid1:dynamicCol2 | timeuuid1:dynamicColN |
| CUST1 | data | {some value} | {some value} | {some value} |
我通过使用复合主键实现了时间戳的动态列,但是如果你明白我的意思,我无法看到如何在每个列集群中实现这一点。 如果我将“dynamicColumnName”添加到现有的复合键,我最终将为每个动态列存储客户数据,这不是我想要的。
这可能,而不使用Map列吗?希望你能帮忙,谢谢!
答案 0 :(得分:0)
我不是CQL用户...使用thrift API,您可以通过插入/更新带有名称为X的列的值的记录来动态地向列族添加列。列X将开始存在于那里然后是那个记录。
您是否尝试过INSERT语句,指定尚未明确定义的列?我希望它具有相同的效果(创建列)。