2

SimpleStrategyキースペースのレプリケーションファクターを更新する必要があるcqlステートメントを実行できません。これはCQLSHの3つのバージョンすべてで正常に機能するため、面倒です。

私が使用しているキースペースコンテキストは、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)
4

1 に答える 1

2

Astyanaxにはcql3に関するいくつかの問題がありますが、大きな進歩を遂げています。新しいキースペースを作成し、CQLv2を使用して(コンテキストで設定することにより)、"引用符なしで試してください。

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

注*このクエリでは、repファクターを2に更新しています。

于 2013-03-02T17:30:58.637 に答える