Данные временных рядов Cassandra
Вопрос
Мы рассчитываем на использование Cassandra для хранения потока информации, поступающей из различных источников.
Одна из проблем, с которой мы сталкиваемся, - это лучший способ запроса между двумя датами.
Например, нам нужно будет получить объект между DateTime DT1 и Datetime DT2.
В настоящее время мы рассматриваем созданную временную метку UNIX в качестве ключа, указывающего на фактический объект, а затем используя get_key_range для запроса для извлечения?
Очевидно, что это не сработает, если два пункта имеют одинаковую метку времени.
Это лучший способ сделать DateTime в магазинах NOSQL в целом?
Решение
Ряды Cassandra могут быть очень большими, поэтому рассмотрите возможность моделировать его как столбцы подряд, а не ряды в CF; Затем вы можете использовать операции среза столбца, которые быстрее, чем срезы строк. Если с этим не связаны «естественные» ключи, то вы можете использовать ежедневные или почасовые клавиши, такие как «2010/02/08 13:00».
В противном случае, да, использование запросов диапазона (get_key_range устарел в 0,5; использование get_range_slice) является вашим лучшим вариантом.