У меня есть таблица вроде этого:Диапазона запросов - Моделирование данных временных рядов в CQL Кассандра
CREATE теста TABLE (PartitionKey текста, RowKey текста, дата метки времени, policyid текст, policyname текста, первичного ключа (partitionkey, rowkey));
с некоторыми данными:
PartitionKey | rowkey | Политика | Полицейская | Дата
p1 | r1 | pl1 | plicy1 | 2007-01-02 00:00:00+0000 p1 | r2 | pl2 | plicy2 | 2007-01-03 00:00:00+0000 p2 | r3 | pl3 | plicy3 | 2008-01-03 00:00:00+0000
Я хочу, чтобы иметь возможность найти:
1/ data from a particular partition key
2/ data from a particular partition key & rowkey
3/ Range query on date given a partitionkey
1/и 2/тривиальны:
выберите * из теста, где PartitionKey = 'p1';
разделkey | rowkey | Политика | Полицейская | Диапазон
p1 | r1 | pl1 | plicy1 | 2007-01-02 00:00:00+0000 p1 | r2 | pl2 | plicy2 | 2007-01-03 00:00:00+0000
а как насчет 3 /? Даже с индексом он не работает:
создать индекс i1 в тесте (дата);
выберите * из теста, где partitionkey = 'p1' и дата = '2007-01-02';
разделkey | rowkey | Политика | Полицейская | Дата
p1 | r1 | pl1 plicy1 | 2007-01-02 00:00:00+0000
но
выберите * из теста, где PartitionKey = 'p1' и дата> '2007-01-02';
Bad Request: Нет индексированные столбцы присутствуют в по-столбцами пункта с Равным оператора
Любая идея? спасибо, Matt
Правильно это работает, если запрос имеет условие разрешить фильтрацию (сообщение _Bad Request: не может выполнить этот запрос, поскольку он может включать фильтрацию данных и, следовательно, может иметь непредсказуемую производительность. Если вы хотите выполнить этот запрос, несмотря на непредсказуемость производительности, используйте ALLOW FILTERING_). Почему это и как это влияет на производительность? –
Я думаю, что вы видите это предупреждение, потому что ваш 'rowkey' не указан в этом запросе. В примере, на котором я ссылался, использовался только ключ раздела и дата в качестве первичного ключа ... Я полагаю, вы могли бы попытаться определить свою строку в качестве части ключа раздела «первичный ключ» ((раздел, строка), дата) и посмотреть, что помогает. – Aaron
Конечно, но тогда мне нужно добавить предложение для «rowkey», которое у меня никогда не было. Я думаю, я буду жить с первым решением, спасибо. –