如何使用节点cassandra-client在cassandra中创建键空间

时间:2014-01-22 09:41:52

标签: cassandra

我正在尝试使用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

3 个答案:

答案 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 };