Выберите и оцените строку cassandra на основе столбца без ключа раздела
Я знаю, что этот вопрос мне уже задавали миллион раз, но я все еще не могу найти альтернативный подход, чтобы сделать это с моей собственной моделью.
У меня есть эта модель стола
CREATE TABLE signature_count_per_year(
sensor_id text,
signature text,
hit_count int,
year int,
PRIMARY KEY ((sensor_id), signature, year)
)WITH CLUSTERING KEY (signature ASC, year DESC)
Я помещаю данные в эту таблицу, используя функцию спарк-окна ( 1-летнее окно) в качестве потокового процесса, где данные, которые вставляются с этим запросом (для каждого пакета)
INSERT INTO signature_count_per_year (sensor_id, signature, hit_count, year) VALUES ('sssj901', 'h80skooa', 91231442, 2018)
INSERT INTO signature_count_per_year (sensor_id, signature, hit_count, year) VALUES ('sssj901', 'suua09dd', 284421, 2018)
INSERT INTO signature_count_per_year (sensor_id, signature, hit_count, year) VALUES ('sssj901', '88wsiiaa', 9022345, 2018)
INSERT INTO signature_count_per_year (sensor_id, signature, hit_count, year) VALUES ('sssj901', 'asgg9910', 81112331, 2018)
Содержание таблицы будет таким
Sensor_id signature hit_count year
sssj901 h80skooa 891231 2018
sssj901 suua09dd 284421 2018
sssj901 88wsiiaa 9022345 2018
sssj901 asgg9910 81112331 2018
... ... ... ...
Мне нужно запросить только 10 самых высоких хитов этой таблицы, но я не могу сделать это, используя ORDER BY, потому что hit_count не является первичным ключом.
Что я хотел запрос будет:
select * from signature_count_per_year order by hit_count DESC LIMIT 10
До сих пор я уже пытался выбрать все строки и отсортировать их по hit_count от клиента.
Вторая альтернатива, которую я еще не пробовал, - это запросить ее в веб-сервисе, прежде чем распространять ее клиенту. Я знал, что это сильно повредит серверу
Но проблема в том, что подпись - это не только 10- или 100-разрядная категория, она может вырасти до миллиона подписной категории. Поэтому я не могу больше использовать этот подход.
Есть ли альтернатива для моей проблемы? Любая помощь приветствуется