5

如何在 cassandra 中使用 CQL3 创建计数器列族?

我曾经使用: CREATE COLUMFAMILY userstats (username varchar PRIMARY KEY, images counter) WITH default_validation=counter AND comment='User Stats';

现在,当我在 CQL3 中运行它时,我得到:错误请求:default_validation is not a valid keyword argument for CREATE COLUMNFAMILY

4

1 回答 1

3

CQL3 不再坚持“动态列名”模型。它仍然可以创建任意宽的 cassandra 行,但它们看起来像 CQL 中的“普通”窄表,所有列都已命名和定义。这就是 CQL3 不再支持设置 a default_validationorcomparator等​​的原因。

在 CQL3 中做任何重要的事情之前,您应该阅读并理解http://www.datastax.com/dev/blog/schema-in-cassandra-1-1 。

但是,您的问题的答案是,它就像省略default_validation:

CREATE TABLE userstats (
    username varchar PRIMARY KEY,
    images counter
) WITH comment='User Stats';

虽然不清楚您是否打算在那里每行使用多个计数器,因为您想要一个default_validation. 如果你这样做了,而且你comparator本来会是varchar,你可以这样做:

CREATE TABLE userstats (
    username varchar,
    countername varchar,
    value counter,
    PRIMARY KEY (username, countername)
) WITH comment='User Stats';

..让我们images成为其中一个反名。

于 2012-06-05T18:30:33.490 回答