Cassandra - Collezioni CQL
CQL offre la possibilità di utilizzare i tipi di dati Collection. Utilizzando questi tipi di raccolta, è possibile memorizzare più valori in una singola variabile. Questo capitolo spiega come utilizzare le raccolte in Cassandra.
Elenco
List viene utilizzato nei casi in cui
- l'ordine degli elementi deve essere mantenuto, e
- un valore deve essere memorizzato più volte.
È possibile ottenere i valori di un tipo di dati di elenco utilizzando l'indice degli elementi nell'elenco.
Creazione di una tabella con elenco
Di seguito è riportato un esempio per creare una tabella di esempio con due colonne, nome ed e-mail. Per memorizzare più email, utilizziamo list.
cqlsh:tutorialspoint> CREATE TABLE data(name text PRIMARY KEY, email list<text>);
Inserimento di dati in un elenco
Durante l'inserimento dei dati negli elementi di un elenco, immettere tutti i valori separati da virgola all'interno di parentesi quadre [] come mostrato di seguito.
cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',
['[email protected]','[email protected]'])
Aggiornamento di un elenco
Di seguito è riportato un esempio per aggiornare il tipo di dati dell'elenco in una tabella chiamata data. Qui stiamo aggiungendo un'altra email all'elenco.
cqlsh:tutorialspoint> UPDATE data
... SET email = email +['[email protected]']
... where name = 'ramu';
Verifica
Se verifichi la tabella utilizzando l'istruzione SELECT, otterrai il seguente risultato:
cqlsh:tutorialspoint> SELECT * FROM data;
name | email
------+--------------------------------------------------------------
ramu | ['[email protected]', '[email protected]', '[email protected]']
(1 rows)
IMPOSTATO
Set è un tipo di dati utilizzato per memorizzare un gruppo di elementi. Gli elementi di un set verranno restituiti in un ordine ordinato.
Creazione di una tabella con set
L'esempio seguente crea una tabella di esempio con due colonne, nome e telefono. Per memorizzare più numeri di telefono, utilizziamo set.
cqlsh:tutorialspoint> CREATE TABLE data2 (name text PRIMARY KEY, phone set<varint>);
Inserimento di dati in un set
Durante l'inserimento dei dati negli elementi di un set, immettere tutti i valori separati da virgola all'interno di parentesi graffe {} come mostrato di seguito.
cqlsh:tutorialspoint> INSERT INTO data2(name, phone)VALUES ('rahman', {9848022338,9848022339});
Aggiornamento di un set
Il codice seguente mostra come aggiornare un set in una tabella denominata data2. Qui stiamo aggiungendo un altro numero di telefono al set.
cqlsh:tutorialspoint> UPDATE data2
... SET phone = phone + {9848022330}
... where name = 'rahman';
Verifica
Se verifichi la tabella utilizzando l'istruzione SELECT, otterrai il seguente risultato:
cqlsh:tutorialspoint> SELECT * FROM data2;
name | phone
--------+--------------------------------------
rahman | {9848022330, 9848022338, 9848022339}
(1 rows)
CARTA GEOGRAFICA
La mappa è un tipo di dati utilizzato per memorizzare una coppia di elementi chiave-valore.
Creazione di una tabella con mappa
L'esempio seguente mostra come creare una tabella di esempio con due colonne, nome e indirizzo. Per memorizzare più valori di indirizzo, utilizziamo map.
cqlsh:tutorialspoint> CREATE TABLE data3 (name text PRIMARY KEY, address
map<timestamp, text>);
Inserimento di dati in una mappa
Durante l'inserimento dei dati negli elementi di una mappa, immettere tutti i file key : value coppie separate da virgola all'interno di parentesi graffe {} come mostrato di seguito.
cqlsh:tutorialspoint> INSERT INTO data3 (name, address)
VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );
Aggiornamento di un set
Il codice seguente mostra come aggiornare il tipo di dati della mappa in una tabella denominata data3. Qui stiamo cambiando il valore dell'ufficio chiave, cioè stiamo cambiando l'indirizzo dell'ufficio di una persona chiamata robin.
cqlsh:tutorialspoint> UPDATE data3
... SET address = address+{'office':'mumbai'}
... WHERE name = 'robin';
Verifica
Se verifichi la tabella utilizzando l'istruzione SELECT, otterrai il seguente risultato:
cqlsh:tutorialspoint> select * from data3;
name | address
-------+-------------------------------------------
robin | {'home': 'hyderabad', 'office': 'mumbai'}
(1 rows)