0

我有一个 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=?";

你知道我做错了什么吗?我在城市列上做了二级索引,希望是正确的。提前致谢。

4

2 回答 2

1

感谢阿比的建议。该链接非常有用,因此我以以下方式创建了键空间并且它正常工作。

create keyspace App with placement_strategy ='org.apache.cassandra.locator.SimpleStrategy' 
   and strategy_options = {replication_factor:2};

我已将 2 台计算机连接到我的 cassandra 集群,因此 replication_factor 设置为 2。

于 2013-05-21T03:56:22.477 回答
0

也许这是一个键空间创建问题。正确检查您的键空间创建模式。可能这个关于 cassandra 用户组的讨论会给你一个更好的主意

于 2013-05-20T17:56:05.330 回答