Я работаю над созданием службы планировщика, для которой требуется структура таблицы Cassandra, как показано ниже.
CREATE TABLE IF NOT EXISTS spc_cmd_scheduler (
id timeuuid,
router_id text,
account_id text,
mode text,
triggered_by text,
retry_count smallint,
PRIMARY KEY ((triggered_by,retry_count),id)
)WITH CLUSTERING ORDER BY (id ASC);
Когда я делаю запрос с помощью PK, я получаю ошибку ниже. Могу ли я узнать причину?
select count(*) from spc_cmd_scheduler where triggered_by = 'ROUTER_ONBOARD' and retry_count < 3;
InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING"
Я понимаю, что «РАЗРЕШЕНИЕ ФИЛЬТРАЦИИ» решит мою проблему, но хотел узнать, что не так со структурой таблицы. Каков оптимальный способ создать эту таблицу, которая соответствует моим требованиям.
Просто чтобы дать представление о моем требовании, мне нужно запустить планировщик для сканирования этой таблицы и выполнить команду и удалить запись после ее успешного выполнения. Если команда не работает, мне нужно повторить попытку 3 раза. Таким образом, для этой таблицы требуются операции SELECT, UPDATE и DELETE.