1
create table:caassandra: condition multiple sur la même colonne
CREATE TABLE notifications (
id uuid PRIMARY KEY,
user_id bigint,
received_datetime timestamp,
);
cqlsh:
select count(*)
from notifications
where received_datetime >='2016-10-11 00:00:00'
and received_datetime >='2016-10-18 00:00:00'
ALLOW FILTERING;
erreur a: -
InvalidRequest: Error from server: code=2200 [Invalid query] message="More than one restriction was found for the start bound on received_datetime"
I Missed ce point grâce. –
La requête que vous faites ci-dessus avec le ALLOW FILTERING est un anti-pattern dans Cassandra. Cela entraînera une opération de collecte de dispersion sur l'ensemble du cluster qui sera horriblement lente et expirera très probablement avec une quantité raisonnablement importante de données. Vous devez modifier la structure de votre table pour satisfaire la requête que vous lui demandez. Cela signifie que vous devez configurer une partition et une clé primaire différentes pour répondre à cette requête, sauf si vous connaissez l'identifiant. Dans ce cas, vous pouvez simplement ajouter received_datetime comme colonne de cluster et y effectuer une requête de plage. – bechbd