尝试从cassandra检索数据时出现不可用异常

cqoc49vn  于 2021-06-15  发布在  Cassandra
关注(0)|答案(2)|浏览(371)

我有一个cassandra数据库,正在创建一个列族,如下所示。

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;
});

这可以正确执行,但是假设我使用cassandracli并运行

get user where city='NYC';

我得到一个不可用的例外。下面是我在node.js脚本中的cql查询,它抛出了相同的异常。

var cql = "SELECT notes,heading FROM App.users where city=?";

你知道我做错了什么吗?我做了一个关于城市的二级索引栏,希望是正确的。提前谢谢。

tpgth1q7

tpgth1q71#

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

qhhrdooz

qhhrdooz2#

谢谢你的建议。这个链接非常有用,所以我按照下面的方式创建了keyspace,它工作正常。

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

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

相关问题