从cassandra sstable2json恢复日期
我试图从cassandra表的sstable2json转储中恢复时间戳以进行批处理。表架构如下所示:从cassandra sstable2json恢复日期,cassandra,unix-timestamp,cql,cql3,Cassandra,Unix Timestamp,Cql,Cql3,我试图从cassandra表的sstable2json转储中恢复时间戳以进行批处理。表架构如下所示: CREATE TABLE actions ( userid text, action text, ts timestamp, PRIMARY KEY (userid, ts) ) WITH CLUSTERING ORDER BY (ts DESC); {"key": "HEX_VALUE_OF_USERID","columns": [["2013-07-10 19\\:25\\:44+000
CREATE TABLE actions (
userid text,
action text,
ts timestamp,
PRIMARY KEY (userid, ts)
) WITH CLUSTERING ORDER BY (ts DESC);
{"key": "HEX_VALUE_OF_USERID","columns": [["2013-07-10 19\\:25\\:44+0000:","",1373484344552000], ["2013-07-10 19\\:44\\:11+0000:action","blog",1373484344552000]]},
特定用户的sstable2json转储如下所示:
CREATE TABLE actions (
userid text,
action text,
ts timestamp,
PRIMARY KEY (userid, ts)
) WITH CLUSTERING ORDER BY (ts DESC);
{"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,没有第二列。回答我自己的问题:
问题在于JdbcDate格式(iso格式)。所有可用的格式似乎都没有提供ms。解决方案是为date with ms添加一种新格式(将.SSS添加到默认值),并将更新后的格式作为默认值-这启用了ms的恢复。您的ts列是否有二级索引,您如何插入时间戳以及您使用的cassandra的确切版本?