【发布时间】:2014-07-09 04:49:41
【问题描述】:
我正在尝试使用 CQL 将一些行插入 Cassandra (1.2.16) 数据库,但 Datastax API 调用被拒绝。查询是通过PreparedStatement 创建的,并使用BoundStatement 执行,就像这样
session.Execute (boundStatement);
// query is
INSERT INTO "KeyspaceName.ColumnFamilyName" (key, column1, value) VALUES (?, ?, ?)
它被拒绝了
Caught an exception Cassandra.InvalidQueryException: unconfigured columnfamily KeyspaceName.ColumnFamilyName
// which happens at the Execute call above
但是,我可以看到列族确实存在
var cluster = Cluster.Builder ()
.AddContactPoint ("127.0.0.1")
.Build ();
new List<string> (cluster.Metadata.GetKeyspaces ()).ForEach ((value) => {
Console.WriteLine ("Keyspace: " + value);
new List<string> (cluster.Metadata.GetKeyspace(value).GetTablesNames()).ForEach((tableName) => {
Console.WriteLine("Table: " + tableName);
});
});
打印(以及其他)
Keyspace: KeyspaceName
Table: ColumnFamilyName
所以列族就在那里。
为什么 Cassandra 在执行 CQL INSERT 查询时找不到表/列族?这是版本问题吗?我的印象是较新版本的 CQL 将列族称为表。我应该如何配置表?
【问题讨论】: