在csssh(cql3)中看不到添加到cassandra-cli中columnfamily的新列

时间:2013-06-28 09:16:06

标签: cassandra cql3 cassandra-cli cqlsh

我在cql3中定义了一个表。描述它会返回以下内容:

  

创建表结果(
    id uuid PRIMARY KEY,
    案例名称文本,
    结果文本,
    run int,
    用户文字
  )WITH ...

我尝试使用以下事实:这不应该限制columnfamily并添加新的列值对:

insert into results (id, sogginess) values(3d6f63a4-c1e0-4dd8-b043-8e0754122f23, 'high') ;

但这不起作用。如果我使用cassandra-cli,我可以使用标准集语法添加sogginess的值,并且行正常保留。即使切换回cql3,select *查询也不会返回这个新列,并且两个描述都没有显示新列的sogginess。

这意味着你不能将任意数据添加到cql3中的行中并且你受到定义的模式的约束?如果没有,我该怎么办?

1 个答案:

答案 0 :(得分:4)

<强> TL; DR;
不,但您可以使用集合:phonenumbers set<text>

CQL 3期望在元数据中定义所有列,因此您可以绑定到模式。

  

如果没有,我该怎么做?

嗯,你不能。您可以做的是使用集合并构建数据模型。通过thrift添加任意列被认为是不良做法。我的建议是阅读datastax关于wide row support in CQL3的文章。这些问题也是相关的(如果不重复......)所以请看看它们:

  1. Does cql3 require a schema for cassandra now
  2. Create a table in Cassandra 1.2 with CQL3 where column names will be created at runtime