0

我正在尝试从 cassandra 表的 sstable2json 转储中恢复时间戳以进行批处理。表架构如下所示:

CREATE TABLE actions  (
userid text,
action text,
ts timestamp,
PRIMARY KEY (userid, ts)
) WITH CLUSTERING ORDER BY (ts DESC);

特定用户的 sstable2json 转储如下所示:

{"key": "HEX_VALUE_OF_USERID","columns": [["2013-07-10 19\\:25\\:44+0000:","",1373484344552000], ["2013-07-10 19\\:44\\:11+0000:action","blog",1373484344552000]]},

当我在数据库中查找相同的用户详细信息时,从转储中恢复了日期时间(“2013-07-10 19:25:44+0000”),我没有找到匹配的记录。但是,我可以通过使用恢复日期时间(+/-1 秒)的范围查询来找到匹配的记录。是否有可能以某种方式恢复实际的 ts (我猜是毫秒)?附加到该行的其他时间戳不一致(可能与 ts 相差几毫秒)。我正在使用 cassandra 1.2.6 并且不存在辅助列。

4

1 回答 1

2

回答我自己的问题:

问题在于 JdbcDate 格式(iso 格式)。似乎没有可用的格式提供 ms。修复方法是使用 ms 添加新的日期格式(将 .SSS 添加到默认值),并将更新的格式设置为默认值 - 这启用了 ms 的恢复。

于 2013-09-20T05:01:48.400 回答