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

时间:2012-06-03 15:30:17

标签: cassandra cql

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

我以前用过: CREATE COLUMNFAMILY userstats(username varchar PRIMARY KEY,images counter)WITH default_validation = counter AND comment ='User Stats';

现在,当我在CQL3中运行时,我得到: 错误请求:default_validation不是CREATE COLUMNFAMILY

的有效关键字参数

1 个答案:

答案 0 :(得分:3)

CQL3不再支持“动态列名”模型。它仍然可以制作任意宽的cassandra行,但它们看起来像CQL中的“普通”窄表,所有列都被命名和定义。这就是CQL3不再支持设置default_validationcomparator

的原因

在进行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成为其中一个反手。