J'ai une table d'alertes. Je veux interroger dessus en utilisant l'opérateur IN sur 2 colonnes et en utilisant l'opérateur plus grand que sur une colonne. J'ai essayé les choses ci-dessous sans aucune chance. Quelqu'un peut-il me dire s'il vous plaît le design DB pour faire fonctionner la requête? Mes détails d'environnement: [cqlsh 5.0.1 | Cassandra 2.1.2 | Spécification CQL 3.2.0 | protocole natif v3]Utilisation de l'opérateur IN dans CQL sur la clé de partition et (clé de clustering ou colonne indexée)
Avec 'type' dans la clé de partition:
CREATE TABLE alerts (
serialNumber text,
time bigint,
type text,
time2 int,
status text,
parentId int,
PRIMARY KEY ((serialNumber,type), time)
) WITH CLUSTERING ORDER BY (time DESC);
cqlsh:testdb> select * from alerts WHERE serialNumber IN ('1','2') AND type IN ('1','2','3') AND time > 1;
code=2200 [Invalid query] message="Partition KEY part serialNumber cannot be restricted by IN relation (only the last part of the partition key can)"
Avec 'type' dans la clé de clustering:
CREATE TABLE alerts (
serialNumber text,
time bigint,
type text,
time2 int,
status text,
parentId int,
PRIMARY KEY (serialNumber, type, time)
) WITH CLUSTERING ORDER BY (type ASC,time DESC);
cqlsh:testdb> select * from alerts WHERE serialnumber IN ('1','2') AND type IN ('a','b') and time > 1;
code=2200 [Invalid query] message="Clustering column "type" cannot be restricted by an IN relation"
Avec index du type:
CREATE TABLE alerts (
serialNumber text,
time bigint,
type text,
time2 int,
status text,
parentId int,
PRIMARY KEY (serialNumber, time)
) WITH CLUSTERING ORDER BY (time DESC);
CREATE INDEX alertsTypeIndex ON alerts(type);
select * from alerts WHERE serialnumber IN ('1','2') and time > 1 AND type IN ('a','b');
code=2200 [Invalid query] message="IN predicates on non-primary-key columns (type) is not yet supported"
select * from alerts WHERE serialnumber IN ('1','2') and time > 1 AND type = 'a';
code=2200 [Invalid query] message="Select on indexed columns and with IN clause for the PRIMARY KEY are not supported"
Merci @Aaron. J'utilise 2.1.2. Serez-vous possible de proposer un nouveau modèle pour mes alertes? –