Nosql 使用CQL3在Cassandra 1.2中创建一个表,其中将在运行时创建列名

Nosql 使用CQL3在Cassandra 1.2中创建一个表,其中将在运行时创建列名,nosql,cassandra,cql,Nosql,Cassandra,Cql,我想在ApacheCassandra1.2中存储对象的快照 Row key是对象#ID,每个快照都有一列 -------- latest -------- v2 -------- v1 id-122 100 -------- 50 -------- 66 -------- 因此,列名是在运行时动态创建的 如何使用CQL3在Cassandra 1.2中创建上一个表?在CQL3中,表模式是固定的。因此,您无法真正获得动态列名。为此,您必须切换到CQL2 在

我想在ApacheCassandra1.2中存储对象的快照

Row key是对象#ID,每个快照都有一列

--------    latest  --------   v2   -------- v1
id-122      100     --------   50   -------- 66
--------
因此,列名是在运行时动态创建的


如何使用CQL3在Cassandra 1.2中创建上一个表?

在CQL3中,表模式是固定的。因此,您无法真正获得动态列名。为此,您必须切换到CQL2

在CQL3中,表模式是固定的。因此,您无法真正获得动态列名。为此,您必须切换到CQL2

您将使用CQL3的复合主键功能:

CREATE TABLE foo (
  object_id int,
  version int,
  value int,
  PRIMARY KEY (object_id, version));

您将使用CQL3的复合主键功能:

CREATE TABLE foo (
  object_id int,
  version int,
  value int,
  PRIMARY KEY (object_id, version));

模式是固定的,但是像复合键和集合这样的东西允许你在Thrift和CQL2中做你能做的一切。@Theo:说得对。但我相信,由于缺乏二级索引,不可能方便地使用集合,是的,如果我错了,请纠正我。这就是为什么我仍然选择CQL2。
创建表示例(id1文本、id2文本、值文本、主键(id1、id2))
创建索引示例(id2)上的我的索引。
我指的是集合(列表、映射和集)字段上的辅助索引,而不是普通的索引。模式是固定的,但像复合键和收藏这样的东西可以让你在节俭和CQL2等方面尽你所能。@Theo:说得对。但我相信,由于缺乏二级索引,不可能方便地使用集合,是的,如果我错了,请纠正我。这就是为什么我仍然选择CQL2。
创建表示例(id1文本、id2文本、值文本、主键(id1、id2))
创建索引示例(id2)上的我的索引。
我指的是集合(列表、映射和集)字段上的二级索引,而不是普通索引。