Nosql 使用CQL3在Cassandra 1.2中创建一个表,其中将在运行时创建列名
我想在ApacheCassandra1.2中存储对象的快照 Row key是对象#ID,每个快照都有一列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 在
-------- 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)上的我的索引。
我指的是集合(列表、映射和集)字段上的二级索引,而不是普通索引。