使用Astyanax创建的Keyspace不会被cqlsh看到

时间:2013-08-12 08:47:03

标签: java cassandra astyanax cqlsh

我正在使用Cassandra 1.2.6和Astyanax。我使用Java创建了一个名为DummyKeyspace的键空间。我可以从cassandra-cli到达该密钥空间,但不能从cqlsh到达。为什么呢?

这是我的Java代码:

public void createKeyspace(Cluster cluster,String KEYSPACE_NAME,String STRATEGY, String REPLICA_FACTOR) throws ConnectionException
    {
        if(cluster.describeKeyspace(KEYSPACE_NAME) == null)
        {
            KeyspaceDefinition ksDef = cluster.makeKeyspaceDefinition();

            Map<String,String> stratOptions = new HashMap<String,String>();
            stratOptions.put("replication_factor", REPLICA_FACTOR);

            ksDef.setName(KEYSPACE_NAME)
                .setStrategyOptions(stratOptions)
                .setStrategyClass(STRATEGY);

            cluster.addKeyspace(ksDef);
            System.out.println("Keyspace " + KEYSPACE_NAME + " created and added to cluster.");
        }
        else
        {
            System.out.println("Keyspace " + KEYSPACE_NAME + " already existed.");
        }
    }

当我尝试访问时出现错误:

cqlsh> USE DummyKeyspace;
Bad Request: Keyspace 'dummykeyspace' does not exist

2 个答案:

答案 0 :(得分:3)

尝试将键空间括在引号""

答案 1 :(得分:2)

我创建了一张关于此的票证(CASSANDRA-5879)。也许意图是使用引号,但它是不直观的。您还可以将-k命令行参数用于cqlsh。