cassandra如何读取sstables的反击列?

时间:2016-01-15 18:04:29

标签: cassandra cassandra-2.0

我正在尝试使用sstable2json实用程序将sstables转换为json。它工作正常,但对于计数器列,它提供了很长的字符串值。

我的create table语句: CREATE TABLE counters1   (价值柜台,   名称varchar,   姓氏varchar,   PRIMARY KEY(姓名,姓氏) );

示例数据:

sample data in cassandra

现在转换为json之后我得到的是:

[{“key”:“hari”, “cells”:[[“ram:value”,“0001800086d46a8fd6cb484e9257a02ddd14fe06000000000000000100000000000000000001”,1452867057744000,“c”, - 9223372036854775808]]}]

Q1)有没有办法从中获得有意义的价值? (0001800086d46a8fd6cb484e9257a02ddd14fe0600000000000000010000000000000001)

Q2) cassandra如何从同一个sstable读取并显示“1”

由于

1 个答案:

答案 0 :(得分:3)

计数器在2.1中发生了很大变化,见http://www.datastax.com/dev/blog/whats-new-in-cassandra-2-1-a-better-implementation-of-counters。这也对2.0之前的计数器有很好的解释(你在看什么)。 sstable中的上下文主要由计数器id(timeuuid),分片逻辑时钟和分片值组成。 (16字节id,两个长)。这是什么显示在sstable2json中。标题中有更多内容描述了一些本地/全局元素索引。查看https://github.com/apache/cassandra/blob/cassandra-2.0/src/java/org/apache/cassandra/db/context/CounterContext.java#L675了解更多详情。

但我建议使用2.1计数器来避免一些问题并且更简单一点。尽管如此,从sstables手动构建你的计数器值将是非常重要的。