【发布时间】:2017-03-11 10:04:00
【问题描述】:
我有一段简单的代码用于从 cassandra 2 中删除数据
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" 上做某事时 它会很容易地执行我的删除语句,但是如果我对(例如)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)
我需要帮助
附言。我什至使用了 datastax 库中的 Metadata.quote() 静态方法 - 仍然无法正常工作。
【问题讨论】:
-
你是如何创建带引号的键空间的?我认为删除时应该是相同的语法。
-
坦率地说,我已经对现有的键空间进行了操作,但为了记录:cassandra 默认小写所有键空间名称,但如果您想忽略该小写字母,请将名称放在引号中。例如:输入 CQL CREATE KEYSPACE "MY_KEYSPACE" WITH {...} 它将准确地创建 "MY_KEYSPACE" 键空间。
-
你是说
myCluster.connect(keyspaceName);是问题吗?
标签: java cassandra datastax cassandra-2.1