2016-10-28 7 views
1

У меня есть простой кусок кода для удаления данных из Кассандры 2Cassandra Java datastax 2.1.8 Не удается подключиться к цитатами ключевого пространства

Cluster myCluster = Cluster.builder().addContactPoint(myhost).withPort(myport).build(); 

Session session = myCluster.connect(keyspaceName); 
session.excecute(deleteStatement); -- it is just simple Delete.Where 

Так в основном, когда я пытаюсь сделать что-то (например) keyspaceName = «test» он легко выполнит мой оператор delete, но если я попробую одно и то же для (например) keyspace = "\" DONT_WORK \ "" (так как у меня есть имя ключа в кавычках в cassandra), это не сработает , и будет выбрасывать

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:16660 (com.datastax.driver.core.ConnectionException: [localhost/127.0.0.1:16660] Pool is shutdown)) 
at com.datastax.driver.core.exceptions.NoHostAvailableException.copy(NoHostAvailableException.java:84) 
at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37) 
at com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:214) 

Мне нужна помощь

PS. Я даже использовал статический метод Metadata.quote() из библиотеки datastax - все еще не работает.

+0

Как вы создали пространство ключей с кавычками? Я думаю, что это должен быть тот же синтаксис, когда вы удаляете. –

+0

Чтобы быть откровенным, я уже работаю с существующим пространством ключей, но для записи: cassandra по умолчанию имеет строчное имя всего ключа, но если вы хотите проигнорировать этот строчный регистр, вы помещаете имя в кавычки. Например: введите CQL CREATE KEYSPACE «MY_KEYSPACE» С {...}, и он создаст ровно «MY_KEYSPACE» пространство ключей. – Kamil

+0

Вы говорите 'myCluster.connect (namespaceName);' это проблема? –

ответ

0

Вам не нужно указывать имя ключа для подключения. Цитата важна для защиты чувствительности к регистру в контексте строки CQL, но вам не нужно ее защищать, если вы передаете имя ключа в качестве параметра API.

0

Хорошо, нет необходимости в дальнейшем изучении этой проблемы. Проблема заключалась в том, что я случайно использовал 2.1.8 библиотеку datastax на cassandra версии 2.0.8. Я должен прекратить использовать числовой keyborad. Простая ошибка, но уверенность в том, что она была довольно шумной.