从Cassandra数据库获取指定的列数据而不是所有列数据

时间:2013-04-09 22:07:46

标签: java cassandra pelops

我正在使用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());

    }

1 个答案:

答案 0 :(得分:2)

您需要使用getColumnsFromRow调用,该调用采用“SlicePredicate”来指定列名称。 如:

getColumnsFromRow(String columnFamily, Bytes rowKey, SlicePredicate colPredicate, ConsistencyLevel cLevel)