【问题标题】:Get specified columns data from Cassandra database not all the columns data从 Cassandra 数据库获取指定的列数据,而不是所有列数据
【发布时间】:2013-04-01 13:31:14
【问题描述】:

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

    }

【问题讨论】:

    标签: java cassandra pelops


    【解决方案1】:

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

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

    【讨论】:

    • 感谢赞森的建议。但是在您的上述语法中,我找不到应该在哪里指定要检索的列名?你能提供一个简单的例子吗?感谢您的帮助。
    • 在 colPredicate 中。例如 SlicePredicate myPredicate = Selector.newColumnsPredicate("mycol1", "mycol2");
    猜你喜欢
    • 1970-01-01
    • 2017-11-13
    • 2020-11-23
    • 1970-01-01
    • 2023-03-24
    • 2016-06-07
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    相关资源
    最近更新 更多