如何在cassandra中使用CQL3创建计数器列族?
我曾经用过:
使用default_validation = counter和comment ='User Stats'创建COLUMNFAMILY userstats(用户名varchar PRIMARY KEY,图像计数器);
现在,当我在CQL3中运行它时,我得到:
错误的请求:default_validation不是CREATE COLUMNFAMILY的有效关键字参数
最佳答案
CQL3不再坚持使用“动态列名称”模型。它仍然可以创建任意宽的cassandra行,但是它们看起来像CQL中的“普通”窄表,所有列均已命名和定义。这就是为什么CQL3不再支持设置default_validation
或comparator
等的原因。
在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
只是计数器名称之一。