Cassandra - Elimina dati
Eliminazione di dati da una tabella
È possibile eliminare i dati da una tabella utilizzando il comando DELETE. La sua sintassi è la seguente:
DELETE FROM <identifier> WHERE <condition>;
Esempio
Supponiamo che ci sia un tavolo in Cassandra chiamato emp con i seguenti dati:
emp_id | emp_name | emp_city | emp_phone | emp_sal |
---|---|---|---|---|
1 | ariete | Hyderabad | 9848022338 | 50000 |
2 | pettirosso | Hyderabad | 9848022339 | 40000 |
3 | rahman | Chennai | 9848022330 | 45000 |
La seguente istruzione cancella la colonna emp_sal dell'ultima riga -
cqlsh:tutorialspoint> DELETE emp_sal FROM emp WHERE emp_id=3;
Verifica
Utilizzare l'istruzione SELECT per verificare se i dati sono stati eliminati o meno. Se verifichi la tabella emp usando SELECT, produrrà il seguente output:
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+-----------+----------+------------+---------
1 | Hyderabad | ram | 9848022338 | 50000
2 | Delhi | robin | 9848022339 | 50000
3 | Chennai | rahman | 9848022330 | null
(3 rows)
Poiché abbiamo cancellato lo stipendio di Rahman, osserverai un valore nullo al posto dello stipendio.
Eliminazione di un'intera riga
Il comando seguente elimina un'intera riga da una tabella.
cqlsh:tutorialspoint> DELETE FROM emp WHERE emp_id=3;
Verifica
Utilizzare l'istruzione SELECT per verificare se i dati sono stati eliminati o meno. Se verifichi la tabella emp usando SELECT, produrrà il seguente output:
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+-----------+----------+------------+---------
1 | Hyderabad | ram | 9848022338 | 50000
2 | Delhi | robin | 9848022339 | 50000
(2 rows)
Poiché abbiamo eliminato l'ultima riga, nella tabella sono rimaste solo due righe.
Eliminazione dei dati utilizzando l'API Java
È possibile eliminare i dati in una tabella utilizzando il metodo execute () della classe Session. Seguire i passaggi indicati di seguito per eliminare i dati da una tabella utilizzando l'API Java.
Passaggio 1: creare un oggetto cluster
Crea un'istanza di Cluster.builder classe di com.datastax.driver.core pacchetto come mostrato di seguito.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Aggiungi un punto di contatto (indirizzo IP del nodo) utilizzando il file addContactPoint() metodo di Cluster.Builderoggetto. Questo metodo restituisceCluster.Builder.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Utilizzando il nuovo oggetto builder, creare un oggetto cluster. Per fare ciò, hai un metodo chiamatobuild() nel Cluster.Builderclasse. Usa il codice seguente per creare un oggetto cluster.
//Building a cluster
Cluster cluster = builder.build();
È possibile creare l'oggetto cluster utilizzando una singola riga di codice come mostrato di seguito.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Passaggio 2: creare un oggetto sessione
Crea un'istanza dell'oggetto Session utilizzando il metodo connect () della classe Cluster come mostrato di seguito.
Session session = cluster.connect();
Questo metodo crea una nuova sessione e la inizializza. Se si dispone già di uno spazio chiavi, è possibile impostarlo su quello esistente passando il nome KeySpace in formato stringa a questo metodo come mostrato di seguito.
Session session = cluster.connect(“ Your keyspace name ”);
Qui stiamo usando il KeySpace chiamato tp. Pertanto, creare l'oggetto sessione come mostrato di seguito.
Session session = cluster.connect(“tp”);
Passaggio 3: eseguire la query
È possibile eseguire query CQL utilizzando il metodo execute () della classe Session. Passa la query in formato stringa o come oggetto della classe Statement al metodo execute (). Qualunque cosa passi a questo metodo in formato stringa verrà eseguita nel filecqlsh.
Nell'esempio seguente, stiamo eliminando i dati da una tabella denominata emp. Devi memorizzare la query in una variabile stringa e passarla al file execute() metodo come mostrato di seguito.
String query1 = ”DELETE FROM emp WHERE emp_id=3; ”;
session.execute(query);
Di seguito è riportato il programma completo per eliminare i dati da una tabella in Cassandra utilizzando l'API Java.
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Delete_Data {
public static void main(String args[]){
//query
String query = "DELETE FROM emp WHERE emp_id=3;";
//Creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect("tp");
//Executing the query
session.execute(query);
System.out.println("Data deleted");
}
}
Salva il programma sopra con il nome della classe seguito da .java, vai alla posizione in cui è stato salvato. Compilare ed eseguire il programma come mostrato di seguito.
$javac Delete_Data.java
$java Delete_Data
In condizioni normali, dovrebbe produrre il seguente output:
Data deleted