1

我正在使用 Cassandra 数据库。我创建了一个列族,其中有 10 列。

现在我有兴趣只检索我需要的列。我不需要从 Cassandra 数据库中检索所有列值。

假设我的列族中有以下列users

colA
colB
colC
colD

我只需colA and colB要从 Cassandra 数据库中获取数据。那我该怎么办?我不想从 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());

    }
4

1 回答 1

2

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

getColumnsFromRow(String columnFamily, Bytes rowKey, SlicePredicate colPredicate, ConsistencyLevel cLevel)
于 2013-04-09T22:35:11.350 回答