我正在使用Cassandra数据库。我创建了一个列系列,其中有10列。
现在我有兴趣只检索我需要的列。我不需要从Cassandra数据库中检索所有列值。
假设我的列系列users
中有以下列。
colA
colB
colC
colD
我需要从Cassandra数据库中获取colA and colB
个数据。那我该怎么办?我不想从Cassandra获取所有列数据,然后循环以获取所需的列。
像 -
SELECT colA, colB from table1;
我正在使用Pelops client
。
以下是我的代码。
public void readTest() {
// read back the data we just wrote
Selector selector = Pelops.createSelector(poolName);
List<Column> columns = selector.getColumnsFromRow(colFamilyName, rowKey, false, ConsistencyLevel.ONE);
System.out.println("Name: " + Selector.getColumnStringValue(columns, "name"));
System.out.println("Age: " + Selector.getColumnValue(columns, "age").toInt());
}
答案 0 :(得分:2)
您需要使用getColumnsFromRow调用,该调用采用“SlicePredicate”来指定列名称。 如:
getColumnsFromRow(String columnFamily, Bytes rowKey, SlicePredicate colPredicate, ConsistencyLevel cLevel)