Восстановление даты от cassandra sstable2json

Я пытаюсь восстановить метку времени из дампа sstable2json таблицы cassandra для пакетной обработки. Схема таблицы выглядит примерно так:

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, и дополнительных столбцов не существует.


person Pradeep    schedule 06.09.2013    source источник
comment
Есть ли у вашего столбца ts вторичный индекс, как вы вставляете метки времени и какую точную версию cassandra вы используете?   -  person Lyuben Todorov    schedule 08.09.2013


Ответы (1)


Отвечая на мой собственный вопрос:

Проблема связана с форматом JdbcDate (формат iso). Кажется, ни один из доступных форматов не предоставляет ms. Исправление состояло в том, чтобы добавить новый формат даты с ms (добавить .SSS по умолчанию), а также сделать обновленный формат по умолчанию - это позволило восстановить файл ms.

person Pradeep    schedule 20.09.2013