如何使用CQL在Cassandra中动态添加列族中的列

10

我希望通过使用CQL编写的代码动态地向这个列族添加列。

CREATE COLUMN FAMILY blog_entry
WITH comparator = UTF8Type
AND key_validation_class=UTF8Type
AND default_validation_class = UTF8Type;

我该怎么做?


沙鲁,你能告诉我你是否正在使用像Hector、Datastax这样的工具来处理这个问题,或者计划使用吗? - Harish Kumar
另外,为了详细说明我的要求,我想动态地向列族添加诸如UUID、名称(其值包含空格)、日期、价格(浮点数)等列。 - Shalu
通过Cassandra-cli,您可以使用set <cf>['<key>']['<col>'] = <value>;而不是cql。Cassandra-cli的功能非常有限。您可以在cassandra-cli中使用help set;来检查此功能。 - Harish Kumar
您将使用UTF8Type,因为Cassandra中没有Varchar类型。请查看此链接http://www.datastax.com/docs/1.0/ddl/column_family#about-data-types-comparators-and-validators - Harish Kumar
实际上,我已经通过CQL Shell定义了列族。 - Shalu
显示剩余7条评论
3个回答

18

他的练习对我很有帮助,因为它让我更清楚了解了一些事情。谢谢jbellis。 - Harish Kumar

4

要使此功能正常工作,您必须先更改表以添加列,然后插入才能开始工作。我在cqlsh上尝试了上述方法,它起作用了。

alter table newdata add column name varchar;

请参考下面的链接:

如何在Cassandra中定义动态列族


谢谢哈里什,你的练习消除了我许多与CQL和CLI相关的疑惑。 - Shalu

0
ALTER TABLE blog_entry ADD newcolumnname text;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接