Невозможно привести к форматированной дате - тип метки времени Кассандры - PullRequest
0 голосов
/ 27 октября 2018

У меня есть значения, сохраненные для тип отметки времени столбца в таблице Кассандры в формате 2018-10-27 11: 36: 37.950000 + 0000 (дата по Гринвичу).Я получаю Невозможно привести '2018-10-27 11: 36: 37.950000 + 0000' к форматированной дате (длинной) , когда я запускаю запрос ниже для получения данных.

select create_date from test_table where create_date='2018-10-27 11:36:37.950000+0000' allow filtering;

Как заставить запрос работать, если данные уже сохранены в таблице (в формате, 2018-10-27 11: 36: 37.950000 + 0000), а также выполнить операции диапазона (> = или <=) для <strong>create_date столбец?

Я тоже пытался с create_date='2018-10-27 11:36:37.95Z', create_date='2018-10-27 11:36:37.95' create_date='2018-10-27 11:36:37.95'.

Можно ли выполнять фильтрацию данных такого типа с отметкой времени?

PS Использование cqlsh для запуска запроса к таблице cassandra.

1 Ответ

0 голосов
/ 27 октября 2018

В первом случае проблема заключается в том, что вы указываете метку времени с микросекундами, а Cassandra работает с миллисекундами - попробуйте удалить три последние цифры - .950 вместо .950000 (см. Этот документ для подробности). Временные метки хранятся в Cassandra как 64-битное число, а затем форматируются при печати результатов, используя формат, заданный параметрами datetimeformat, равными cqlshrc (см. doc ). Для дат без явного часового пояса требуется, чтобы часовой пояс по умолчанию был указан в cqlshrc.

Что касается вашего вопроса о фильтрации данных - этот запрос будет работать только для небольших объемов данных, а при больших размерах данных, скорее всего, истечет время ожидания, так как ему потребуется сканировать все данные в кластере. Кроме того, данные не будут отсортированы правильно, потому что сортировка происходит только внутри одного раздела.

Если вы хотите выполнить такие запросы, то, возможно, Spark Cassandra Connector будет лучшим выбором, поскольку он может эффективно выбирать требуемые данные, а затем выполнять сортировку и т. Д. Хотя для этого потребуется гораздо больше ресурсов.

Я рекомендую пройти курс DS220 в Академии DataStax, чтобы понять, как моделировать данные для Cassandra.

...