从cassandra

时间:2015-07-15 19:24:04

标签: cassandra datastax datastax-enterprise nosql

我正在尝试将Cassandra中的提交日志反序列化以用于研究项目。 到目前为止,我已成功地从提交日志中的突变条目反序列化单元名称和单元格值。

然而,我正在努力反序列化突变的主键条目,因为根据设计,主键的单元格值为空。我能得到的最接近的是从列族元数据的列定义中检索分区键名。但我不知道如何获得主键的实际值?

由于

以下是我对变异进行反序列化的方法:

// function in CommitLog.java
public ReplayPosition add(Mutation mutation){

    Collection<ColumnFamily> myCollection  =   mutation.getColumnFamilies();

    for(ColumnFamily cf:myCollection) {

        CFMetaData cfm = cf.metadata();

        // Retrieve name of partition key   
        logger.info("partition key={}.", cfm.partitionKeyColumns().get(0).name.toString()); 

        for (Cell cell : cf){

            // Retrieve cell name
            String name = cfm.comparator.getString(cell.name());
            logger.info("name={}.", name);

            // Retrieve cell value
            String value = cfm.getValueValidator(cell.name()).getString(cell.value());
            logger.info("value={}.", value);    
        }
    }

}

0 个答案:

没有答案