【发布时间】:2012-07-11 12:06:07
【问题描述】:
我正在尝试通过 Java 创建一个计数器列,但在运行它时出现错误。 我正在使用 CQL 3.0.0 和 Cassandra 1.1.2
Statement st = con.createStatement();
String data = "CREATE COLUMNFAMILY user_count(priKey text PRIMARY KEY, countME counter)";
st.execute(data);
这是我得到的错误:
Exception in thread "main" java.sql.SQLSyntaxErrorException:
org.apache.cassandra.config.ConfigurationException: Cannot add a counter column
(countme) in a non counter column family
'CREATE COLUMNFAMILY user_count(priKey text PRIMARY KEY, countME counter)'
at org.apache.cassandra.cql.jdbc.CassandraStatement.doExecute(CassandraStatement.java:179)
at org.apache.cassandra.cql.jdbc.CassandraStatement.execute(CassandraStatement.java:203)
at cassandratest.EdgeCreator.aaListData(EdgeCreator.java:1323)
at cassandratest.Main.main(Main.java:214)
我已经尝试了Cassandra cql comparator type counter 的答案,但我知道 CQL 3.0.0 的 default_validation 不再可用。我搜索了文档,但一无所获。我正在寻找如何使用 Java 创建一个计数器列族并增加它。 提前感谢您的帮助!
这也是我在这里的第一篇文章,所以如果有任何问题,请告诉我,以便我将来更正它。
更新 在 cqlsh 中使用 CREATE 语句时,我得到一个 ConfigurationException。 cqlsh 会话如下:
Connected to Test Cluster at localhost:9160.
[cqlsh 3.0.0 | Cassandra 1.1.0 | CQL spec 3.0.0 | Thrift protocol 19.30.0]
Use HELP for help.
cqlsh> use "Keyspace2";
cqlsh:Keyspace2> CREATE COLUMNFAMILY user_count(priKey text PRIMARY KEY, countME
counter);
Bad Request: org.apache.cassandra.config.ConfigurationException: Cannot add a
counter column (countme) in a non counter column family
cqlsh:Keyspace2>
【问题讨论】:
-
在 Cassandra 1.2.2 中为我工作,
cqlsh -3:CREATE COLUMNFAMILY user_count(priKey text PRIMARY KEY, countME counter);