我在cql3中定义了一个表。描述它会返回以下内容:
CREATE TABLE results (
id uuid PRIMARY KEY,
casename text,
result text,
run int,
user text
) WITH ...
我尝试利用这样一个事实:这不应限制列族并添加新的列值对:
insert into results (id, sogginess) values(3d6f63a4-c1e0-4dd8-b043-8e0754122f23, 'high') ;
但这行不通。如果我使用 cassandra-cli,我可以使用标准集语法添加 sogginess 值,并且该行会正常保留。即使切换回 cql3,select * 查询也不会返回这个新列,并且描述都不会显示新列的 sogginess。
这意味着您无法将任意数据添加到 cql3 中的行,并且您受到定义的架构的约束?如果没有,我该怎么办?
最佳答案
TL;DR;
不,但您可以使用集合:phonenumbers set<text>
CQL 3 期望所有列都在元数据中定义,所以是的,您必须绑定(bind)到一个架构。
If not, how can I do it?
好吧,你不能。您可以做的是使用集合并构建数据模型。通过 thrift 添加任意列被认为是不好的做法。我的建议是阅读 datastax 关于 wide row support in CQL3 的文章。此外,这些问题是相关的(如果不重复......),所以请看一下它们:
关于cassandra - 添加到 cassandra-cli 中的 columnfamily 的新列在 cqlsh (cql3) 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17361245/