Запрос диапазона Кассандры о ключе кластеризации - PullRequest
1 голос
/ 30 сентября 2019

Допустим, у меня есть эта таблица: Table1(PartKey, Cluster_Time DESC) со следующими кортежами:

(p1   ,   6.0)
(p1   ,   5.3)
(p1   ,   4.1)
(p1   ,   3.3)
(p1   ,   2.3)
(p1   ,   1.2)
(p1   ,   0.1)

Теперь предположим, что я делаю этот запрос:

SELECT *
FROM Table1
WHERE PartKey = "p1" AND Cluster_Time >= 2.0 AND Cluter_time <=4.0;

Что я хотел бы понять, так этоследующий.

Кассандра:

1) начинает сканировать раздел p1 с начала и останавливается после достижения кортежа (p1,2)

ИЛИ

2)у него есть механизм для запуска сканирования непосредственно в течение времени 4.1?

Если такой механизм недоступен, будет ли индекс подходящим для этого запроса диапазона?

Спасибо за любую подсказку!

1 Ответ

3 голосов
/ 30 сентября 2019

Если ваш ключ PRIMARY KEY (PartKey, Cluster_Time). Предоставление вашей фактической схемы поможет.

Раздел p1 на диске будет иметь все строки для него в порядке кластеризации. Чтение будет использовать компонент индекса sstable, который имеет маркер каждые 64 КБ (по умолчанию) ключей кластеризации, чтобы максимально приблизиться к Cluster_Time = 2.0, пропустить строки до его достижения, затем просто продолжить чтение и возвращать строки до Cluster_Time <= 4.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...