versiones tutorial data cassandra cql

tutorial - Supresión en la tabla cassandra cql usando el operador IN



install cassandra (1)

Esto se debe a que el operador IN solo funciona en la última parte de la clave principal o en la última parte de la clave de clúster. Pensé antes que la "notación de tuplas" funcionaría, pero de acuerdo con este documento , solo funciona en columnas de clústeres. Dicho eso, usar IN combinado con = debería funcionar en cualquiera de las columnas clave:

aploetz@cqlsh:stackoverflow> SELECT * FROM temp_date_time_wise WHERE date = ''2014-11-17 00:00:00.0'' AND timeuid IN (964966d0-6e1c-11e4-8362-5c260a5fc28f); date | timeuid | temperature -----------------------+--------------------------------------+------------- 2014-11-17 00:00:00.0 | 964966d0-6e1c-11e4-8362-5c260a5fc28f | 34C (1 rows)

o

aploetz@cqlsh:stackoverflow> SELECT * FROM temp_date_time_wise WHERE date IN (''2014-11-17 00:00:00.0'') AND timeuid = 964966d0-6e1c-11e4-8362-5c260a5fc28f; date | timeuid | temperature -----------------------+--------------------------------------+------------- 2014-11-17 00:00:00.0 | 964966d0-6e1c-11e4-8362-5c260a5fc28f | 34C (1 rows)

Debo advertirle, sin embargo, que incluso si funciona, esa afirmación probablemente no vaya a funcionar bien. Debe leer este documento de DataStax, particularmente la parte titulada When Not To Use IN :

Las recomendaciones sobre cuándo no usar un índice se aplican al uso de IN en la cláusula WHERE. En la mayoría de las condiciones, no se recomienda usar IN en la cláusula WHERE. El uso de IN puede degradar el rendimiento porque generalmente se deben consultar muchos nodos.

Además, considere usar diferentes nombres de columna. Las palabras reservadas como palabras temporales y no específicas como "fecha" pueden generar problemas y confusión (especialmente cuando "fecha" realmente no es uno de los tipos de fecha).

Tengo una tabla cql con el siguiente esquema

CREATE TABLE temp_date_time_wise ( date text, timeuid timeuuid, temperature text PRIMARY KEY (date, timeuid) )

Entendí la viabilidad de usar el operador IN siguiendo el siguiente enlace http://mechanics.flite.com/blog/2014/01/08/the-in-operator-in-cassandra-cql/ Ahora cuando intento realizar un borrado operación utilizando el operador IN para la clave de agrupamiento como el siguiente

delete from temp_date_time_wise where date in (''2014-11-17 00:00:00.0'') and timeuid in (964966d0-6e1c-11e4-8362-5c260a5fc28f);

Obtuve el siguiente error

Bad Request: Invalid operator IN for PRIMARY KEY part timeuid

¿Puede alguien decirme el motivo detrás del error al ejecutar la consulta?