Я пытаюсь делать запросы в моей cassandra db. Я хочу получить данные в одном столбце, который находится в суперколонне, которая находится в суперколонне ... немного сложнее, но мне нужно ее для моделирования моего db.Cassandra Hector API Объект результата
Я использовал документацию Hector: http://www.datastax.com/sites/default/files/hector-v2-client-doc.pdf
, но, когда я пытаюсь читать один столбец, этот документ цель использовать этот метод:
<code>ColumnQuery<String, String, String> columnQuery =
HFactory.createStringColumnQuery(keyspace);
columnQuery.setColumnFamily("Standard1").setKey("jsmith").setName("first");
Result<HColumn<String, String>> result = columnQuery.execute(); </code>
, но что такое «Результат»? Я ищу в google, я обнаружил, что результатом является объект Result, но у меня есть все библиотеки, и никто не знает этого объекта.
заменяет Результат по QueryResult, но, когда я запускаю мой класс главным, я получил эту ошибку:
me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException (почему: параметр суперстолбцев не опционально для супер CF Super2) в me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate (ExceptionsTranslatorImpl.java:45) в me.prettyprint.cassandra.service.KeyspaceServiceImpl $ 23.execute (KeyspaceServiceImpl.java:851) у меня .prettyprint.cassandra.service.KeyspaceServiceImpl $ 23.execute (KeyspaceServiceImpl.java:1) at me.prettyprint.cassandra.servic e.Operation.executeAndSetResult (Operation.java:103) на me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover (HConnectionManager.java:258) на me.prettyprint.cassandra.service.KeyspaceServiceImpl.operateWithFailover (KeyspaceServiceImpl.java: 131) на me.prettyprint.cassandra.service.KeyspaceServiceImpl.getColumn (KeyspaceServiceImpl.java:857) в me.prettyprint.cassandra.model.thrift.ThriftColumnQuery $ 1.doInKeyspace (ThriftColumnQuery.java:57) в me.prettyprint .cassandra.model.thrift.ThriftColumnQuery $ 1.doInKeyspace (ThriftColumnQuery.java:1) в me.prettyprint.cassandra.model.KeyspaceOperationCallback.doInKeyspaceAndMeasure (KeyspaceOperationCallback.java:20) в me.prettyprint.cassandra.model.ExecutingKeyspace. doExecute (ExecutingKeyspace.java:85) на me.prettyprint.cassandra.model.thrift.ThriftColumnQuery.execute (ThriftColumnQuery.java:52) в com.riptano.cassandra.hector.example.InsertSuperColumn.main (InsertSuperColumn.java:74) Вызванный: InvalidRequestException (почему: параметр суперколонки не является обязательным для супер CF Super2) на org.apache.cassandra.thrift.Cassandra $ get_result.read (Cassandra.java:5930) at org.apache.thrift.TServiceClient.receiveBase (TServiceClient.java: 78) на org.apache.cassandra.thrift.Cassandra $ Client.recv_get (Cassandra.java:505) на org.apache.cassandra.thrift.Cassandra $ Client.get (Cassandra.java:490) у меня. prettyprint.cassandra.service.KeyspaceServiceImpl $ 23.execute (KeyspaceServiceImpl.java:846) ... 11 еще
, когда я сосредотачиваюсь на линии, которая вызывает эту ошибку его строку:
**QueryResult<HColumn<String, String>> result5 = result3.execute();**
где я заменить Результат по QueryResult.
Как я могу решить это, пожалуйста?
Похоже, вы используете стандартный запрос CF для супер CF. Ваш код показывает, что вы выполняете запрос с «Standard1», но исключение - для запроса против «Super2». Вы уверены, что этот код создает это исключение? –
Я уверен, что у меня есть некоторые проблемы с моим кодом. Конфигурация Cassandra настолько странная:/ – superstarz
Я бы предложил просить об этом в канале IRC Кассандры, так как это, вероятно, лучше подходит для такого типа вопросов. –