我试图通过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);
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
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)
Run Code Online (Sandbox Code Playgroud)
我已经尝试了Cassandra cql比较器类型计数器的答案,但我知道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>
Run Code Online (Sandbox Code Playgroud)
您确定使用的是 cql 3 吗?从你的回溯来看,你好像不是,如果你不小心使用了 cql 2,这就是我所期望的错误。
该 create 语句应该适用于 cql 3。
编辑:您使用的是 cql 3,但没有使用 Cassandra 1.1.2。这是 1.1.0 中的一个已知错误;如果升级到 1.1.2,应该会修复该问题。
归档时间: |
|
查看次数: |
2267 次 |
最近记录: |