Можно ли запросить базу данных Cassandra, чтобы получить записи для определенного диапазона?
У меня есть такое определение таблицы
CREATE TABLE domain(
domain_name text,
status int,
last_scanned_date long
PRIMARY KEY(text,last_scanned_date)
)
Мое требование - получить все домены, которые не сканируются за последние 24 часа. Я написал следующий запрос, но этот запрос неэффективен, так как Кассандра пытается получить весь набор данных из-за ALLOW FILTERING
SELECT * FROM domain where last_scanned_date<=<last24hourstimeinmillis> ALLOW FILTERING;
Тогда я решил сделать это в двух запросах
1-й запрос:
SELECT DISTINCT name from domain;
2-й запрос:
Используйте оператор IN для запроса доменов, которые не сканируются последние 24 часа
SELECT * FROM domain where
domain_name IN('domain1','domain2')
AND
last_scanned_date<=<last24hourstimeinmillis>
Мой второй подход работает, но идет с дополнительными накладными расходами, запрашивая сначала разные значения.
Есть ли лучший подход, чем этот?