2016-05-28 5 views
1

Если мы можем извлечь время из TimeUUID, имеет ли смысл использовать timestamp в качестве другого столбца в Cassandra?TimeUUID против timestamp в Кассандре?

Также как мы можем извлечь Time from TimeUUID и задать запросы диапазона (например, с января 2016 года по май 2016 года)?

ответ

0

Вам не нужно хранить метку времени в другом столбце, если вы выбрали использование timeuuid.

Вы ищете this.

Пожалуйста, обратите внимание на min и max. Биты LSB определяют уникальность. i.e последние 8 бит могут варьироваться от 00000000 до ffffffff.

Таким образом, пожалуйста, подготовьте соответствующий запрос диапазона.

Надеюсь, это поможет!

0

Timeuuid функции

Теперь

Ныне функция не принимает никаких аргументов и генерирует, на узле координатора, новый уникальный timeuuid (в то время, когда оператор с помощью его выполнения). Обратите внимание: этот метод полезен для вставки, но в предложениях WHERE в значительной степени нечувствителен. Например, запрос формы

SELECT * FROM myTable WHERE t = now() никогда не будет возвращать никакого результата по дизайну, так как значение, возвращаемое now(), будет гарантировано уникальным.

minTimeuuid и maxTimeuuid

minTimeuuid (соотв. MaxTimeuuid) функция принимает значение временной метки т (который может быть либо временной метки или строкой дата) и вернуть поддельные timeuuid, соответствующий наименьшей (соотв. Самая большая) возможный timeuuid для отметки времени t. Так, например:

SELECT * FROM myTable WHERE t > maxTimeuuid('2013-01-01 00:05+0000') AND t < minTimeuuid('2013-02-02 10:00+0000') будут выбраны все строки, где timeuuid столбец т является строго старше 2013-01-01 00:05+0000 но строго моложе 2013-02-02 10:00+0000. Обратите внимание, что t >= maxTimeuuid('2013-01-01 00:05+0000') все равно не выберет timeuuid, сгенерированный ровно на 2013-01-01 00:05+0000 и по существу эквивалентен t > maxTimeuuid('2013-01-01 00:05+0000').

Functions table

Внимание: Мы назвали значение, генерируемое minTimeuuid и maxTimeuuid поддельных UUID, потому что они не делают никакого уважения процесса UUID поколения на основе времени, указанный в RFC 4122. В частности, значение, возвращаемом этими 2 методов не будет уникальным. Это означает, что вы должны использовать эти методы для запросов (как в примере выше). Вставка результата этих методов - почти наверняка плохая идея.

функция преобразования время

ряда функций, предоставляемые «преобразование» в timeuuid, отметку времени или даты в другой родной тип.

0

У меня была эта проблема и преобразован во время запроса.

SELECT toTimestamp(uuid_timestamp) FROM table 

Это не проблема, потому что я вставлял в базу данных panda для анализа.

 Смежные вопросы

  • Нет связанных вопросов^_^