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

我曾经用过:
使用default_validation = counter和comment ='User Stats'创建COLUMNFAMILY userstats(用户名varchar PRIMARY KEY,图像计数器);

现在,当我在CQL3中运行它时,我得到:
错误的请求:default_validation不是CREATE COLUMNFAMILY的有效关键字参数

最佳答案

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只是计数器名称之一。

10-07 13:13