【发布时间】:2013-05-15 06:09:36
【问题描述】:
我有一个 Cassandra DB,并且正在创建一个列族,如下所示。
CREATE COLUMN FAMILY users
WITH comparator = UTF8Type
AND key_validation_class=UTF8Type
AND column_metadata = [
{column_name: username, validation_class: UTF8Type}
{column_name: city, validation_class: UTF8Type, index_type="KEYS"}
];
我正在使用 node.js 中的以下内容将数据插入列族
var cql = "INSERT INTO App.users(KEY,username,city) VALUES (?,?,?)";
cassandra.execute(cql,[json.username+(new Date().getTime()),json.username,
json.city], function(err, rows) {
if(err) {
console.log(err);
return 1;
}
return 0;
});
这可以正常执行,但假设我使用 cassandra-cli 并运行
get user where city='NYC';
我得到一个不可用的异常。以下是我在 node.js 脚本中的 CQL 查询,它引发了相同的异常。
var cql = "SELECT notes,heading FROM App.users where city=?";
你知道我做错了什么吗?我在城市列上做了二级索引,希望是正确的。提前致谢。
【问题讨论】:
-
你有多少个节点?有没有不可用的?运行“nodetool status”时是否有任何节点列为关闭?
-
到目前为止,我只有一个节点。让我检查 nodetool 状态命令。
-
是你的错还是错字...
get users where city='NYC' -
密钥空间的复制因子是多少?
-
那么你能在
get user where city='NYC';告诉我user是什么吗?我猜你有users作为你的 CF ......并且还让我知道你的射频。也许你可以提供我 cqlsh 的desc keyspace输出