0

我将 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 列的情况下,这可能吗?希望能帮到你,谢谢!

4

1 回答 1

0

我不是 CQL 用户...使用 thrift API,您可以通过插入/更新具有名称 X 的列的值的记录来动态地将列添加到列族中。列 X 将开始存在,然后那个记录。

您是否尝试过指定未明确定义的列的 INSERT 语句?我希望这具有相同的效果(创建列)。

于 2014-02-04T14:46:14.693 回答