Я хочу запросить фильтрацию данных с помощью составных клавиш, отличных от Row Key, на CQL3. Это мои запросы:Запрос с использованием составных клавиш, кроме Row Key в Cassandra
CREATE TABLE grades (id int,
date timestamp,
subject text,
status text,
PRIMARY KEY (id, subject, status, date)
);
Когда я пытаюсь получить доступ к данным,
SELECT * FROM grades where id = 1098; //works fine
SELECT * FROM grades where subject = 'English' ALLOW FILTERING; //works fine
SELECT * FROM grades where status = 'Active' ALLOW FILTERING; //gives an error
Bad Request: статус PRIMARY KEY часть не может быть ограничено (предшествующая часть подлежат либо не ограничен или на не-EQ отношения)
Просто экспериментировать, я Шуфом бежали ключи вокруг, сохраняя 'id' всегда в качестве основного ключа. Я всегда могу запросить использование ключа Primary Row или второго ключа, рассмотрев вышеприведенный пример, если я заменю объекты и статус в списке первичных ключей, я могу запросить статус, но я получаю подобную ошибку, если попытаюсь сделать субъекта или по времени.
Я что-то не так? Могу ли я не запрашивать данные с использованием любого другого составного ключа на CQL3? Я использую Cassandra 1.2.6 и CQL3.
приятное объяснение! –
Получил! Спасибо, теперь мне гораздо больше смысла. Думаю, я буду повторять итерацию по своим запросам и посмотреть, как я хочу их структурировать, поскольку мне не всегда нужно ограничивать возможность получения статуса. – user988544
Помог мне много! Спасибо – kn0x