Astyanax ALTER KEYSPACE CQL

Мне не удается выполнить оператор cql, который должен обновить коэффициент репликации пространства ключей SimpleStrategy. Это раздражает, потому что это прекрасно работает со всеми тремя версиями CQLSH.

Контекст пространства ключей, который я использую, настроен на использование cqlv3 .setCqlVersion("3.0.0")

CQL:

"ALTER KEYSPACE \"" + ksContext.getKeyspaceName() + "\" WITH REPLICATION = { " + 
            "'class' : 'SimpleStrategy', 'replication_factor' : 3 };";

Трассировки стека:

InvalidRequestException(why:line 1:108 no viable alternative at character '}')

at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:159)
at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:60)
at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:27)
at com.netflix.astyanax.thrift.ThriftSyncConnectionFactoryImpl$1.execute(ThriftSyncConnectionFactoryImpl.java:140)
at com.netflix.astyanax.connectionpool.impl.AbstractExecuteWithFailoverImpl.tryOperation(AbstractExecuteWithFailoverImpl.java:69)
at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:255)
at com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$6.execute(ThriftColumnFamilyQueryImpl.java:694)
at smail.cli.astyanax.Astyanax.execCQL(Astyanax.java:75)
at smail.cli.astyanax.Astyanax.alterReplicationFactor(Astyanax.java:307)
at smail.cli.test.SchemaTest.alterReplicationFactor(SchemaTest.java:25)
at smail.cli.test.TestSuite.runTests(TestSuite.java:39)
at smail.cli.Main.main(Main.java:22)

person user2059239    schedule 22.02.2013    source источник


Ответы (1)


У Astyanax есть некоторые проблемы с cql3, но он делает большие успехи. Создайте новое пространство ключей и используйте CQLv2 (установив его в контексте) и попробуйте без кавычек ":

String query = "ALTER KEYSPACE " + keyspaceName + " WITH REPLICATION = { 
               'class' : 'SimpleStrategy', 'replication_factor' : 2 };";

Примечание* в этом запросе вы обновляете фактор повторения до 2.

person Lyuben Todorov    schedule 02.03.2013