Я работаю с Cassandra, и я использую клиент Hector для чтения и обновления данных в базе данных Cassandra. Я пытаюсь получить данные из базы данных Cassandra с помощью hector client, и я могу это сделать, если попытаюсь извлечь только один столбец.Извлечение нескольких столбцов из Cassandra с помощью клиента Hector
Теперь я пытаюсь получить данные для rowKey as 1011
, но с именами столбцов в виде коллекции строки. Ниже мой API, который будет извлекать данные из базы данных Cassandra с помощью Гектору на пациент
public Map<String, String> getAttributes(String rowKey, Collection<String> attributeNames, String columnFamily) {
final Cluster cluster = CassandraHectorConnection.getInstance().getCluster();
final Keyspace keyspace = CassandraHectorConnection.getInstance().getKeyspace();
try {
ColumnQuery<String, String, String> columnQuery = HFactory
.createStringColumnQuery(keyspace)
.setColumnFamily(columnFamily).setKey(rowKey)
.setName("c1");
QueryResult<HColumn<String, String>> result = columnQuery.execute();
System.out.println("Column Name from cassandra: " + result.get().getName() + "Column value from cassandra: " + result.get().getValue());
} catch (HectorException e) {
LOG.error("Exception in CassandraHectorClient::getAttributes " +e+ ", RowKey = " +rowKey+ ", Attribute Names = " +attributeNames);
} finally {
cluster.getConnectionManager().shutdown();
}
return null;
}
Если вы видите мой вышеупомянутый метод, я пытаюсь получить данные из базы данных Cassandra для конкретного rowKey
и column c1
. Теперь я пытаюсь получить данные из базы данных Cassandra для сбора столбцов для определенного rowKey.
Значение что-то вроде this-
Я хочу, чтобы получить данные для нескольких столбцов, но и для того же RowKey. Как это сделать с помощью клиента Hector? И я не хочу извлекать данные для всех столбцов, а затем итерации, чтобы узнать данные отдельных столбцов, которые я ищу.