Ключевое пространство, созданное с помощью Astyanax, не видно cqlsh

Я использую Cassandra 1.2.6 с Astyanax. Я создал пространство ключей с именем DummyKeyspace с использованием Java. Я могу получить доступ к этому пространству ключей из 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

person shyos    schedule 12.08.2013    source источник
comment
Это копипаста? Как вы получили неверный запрос на «twitter2», когда использовали «DummyKeyspace»?   -  person Richard    schedule 12.08.2013
comment
ой извините, я забыл изменить эту часть. Обычно я не использую настоящие имена сегментов кода, когда делюсь ими публично. Так вот почему он там. отредактировано.   -  person shyos    schedule 12.08.2013
comment
и да, это мой код, а не копипаста.   -  person shyos    schedule 12.08.2013
comment
Что describe keyspaces; выводит в cqlsh?   -  person Richard    schedule 12.08.2013
comment
вывод: DummyKeyspace system tempks system_auth tempks1 system_traces   -  person shyos    schedule 12.08.2013
comment
Итак, мы можем сказать, что он виден, но недоступен.   -  person shyos    schedule 12.08.2013
comment
Что ж, благодаря вашему комментарию я понял, что cql пишет имя пространства ключей в нижнем регистре, поэтому я не могу до него добраться. Я попытался создать пространство ключей строчными буквами, и это сработало. Затем искал решение в верхнем регистре, и вот оно: USE "DummyKeyspace"   -  person shyos    schedule 12.08.2013


Ответы (2)


Я создал тикет по этому поводу (CASSANDRA-5879). Возможно, намерение состоит в том, чтобы использовать кавычки, но это неинтуитивно. Вы также можете использовать аргумент командной строки -k для cqlsh.

person Richard    schedule 12.08.2013

Попробуйте заключить пространство ключей в кавычки ""

person Piyush Mattoo    schedule 25.01.2015