我正在使用 Cassandra,并且正在使用 Hector 客户端读取和更新 Cassandra 数据库中的数据。我正在尝试使用 hector 客户端从 Cassandra 数据库中检索数据,如果我只想检索一列,我就可以做到这一点。
现在我正在尝试检索数据,rowKey as 1011
但使用 columnNames 作为字符串的集合。下面是我的 API,它将使用 Hector 客户端从 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 的列。
意思是这样的——
我想检索多列的数据,但要检索相同的 rowKey。如何使用 Hector 客户端执行此操作?而且我不想检索所有列的数据,然后迭代以找出我正在寻找的各个列数据。