我正在尝试使用nodejs cassandra-client使用以下代码创建一个键空间 -
var System = require('cassandra-client').System;
var sys = new System('127.0.0.1:9160');
sys.addKeyspace(ksDef, function(err) {
if (err) {
// there was a problem creating the keyspace.
} else {
// keyspace was successfully created.
}
});
但我收到错误“ksDef未定义”。请给我解决方案,使用cassandra-client创建密钥空间。什么是ksDef?如何定义ksDef?参考 - 网址= https://github.com/racker/node-cassandra-client
由于 Subhra
答案 0 :(得分:3)
在node.js中使用cassandra-client我们无法创建密钥空间。因为要首先与cassandra密钥空间建立连接是必要的。因此,您只需使用已有的密钥空间之一进行连接,然后运行简单查询即可创建密钥空间。
示例:
var connectionOptions = {
host: 'localhost',
port: 9160,
keyspace: 'mahendradb',
use_bigints: true
};
var con = new Connection(connectionOptions);
con.connect(function(err) {
if (!err) {
var query = "create keyspace keyspace1 with strategy_options:replication_factor = '1' and strategy_class = 'SimpleStrategy'";
con.execute(query, [],function(err) {
if (!err) {
console.log("new keyspace created");
}
else{
console.log("error in keyspace creation");
}
});
}
else{
}
});
答案 1 :(得分:3)
在nodejs-driver github repo上的examples之一中进行了演示:
var cassandraDriver = require('cassandra-driver');
var client = new cassandraDriver.Client({
contactPoints: ['localhost:9042']
});
client.connect(function(e) {
var query;
query = "CREATE KEYSPACE IF NOT EXISTS examples WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3' }";
return client.execute(query, function(e, res) {
return console.log(e, res);
});
});
答案 2 :(得分:0)
您需要在客户端之外创建KeySpace。密钥空间就像MySQL中的数据库。
使用cqlsh
命令行:
$ cqlsh
CREATE KEYSPACE yourKeyspaceName
WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };