Предположим, у меня есть таблица следующего состава.Первичный ключ изменения CQL3
CREATE TABLE rollup (
hashname text,
key text,
day timestamp,
counter_value counter,
PRIMARY KEY (hashname, key, day)
) WITH
...
Я хочу, чтобы выполнить запрос, который выглядит как
SELECT * FROM rollup WHERE hashname='some_namespaced_hash' AND day>='2013-07-15' AND day<='2013-07-25';
Однако, это не работает, потому что (я думаю) следующее также имеет отношение к >
, <
и т.д.
Композитные клавиши означают, что теперь для CQL имеет смысл отображать синтаксис ORDER BY в запросах SELECT, но он по-прежнему не такой гибкий, как вы могли бы использовать, делая специальные запросы в SQL. Предложения ORDER BY могут выбирать только один столбец, и этот столбец должен быть вторым столбцом в составном PRIMARY KEY. Это выполняется даже для таблиц с более чем двумя компонентами столбцов в первичном ключе
и здесь day
является третьим столбцом в ключе основного столбца. Единственный способ, которым я могу это сделать, - изменить основной составной ключ на PRIMARY KEY (hashname, day, key)
. Я не могу найти документацию, которая подскажет мне, как это сделать. Является ли это возможным?
В качестве альтернативы, я пропущу «правильный» способ решить эту проблему/я неправильно истолковал проблему?