Cassandra - CQL-Sammlungen
CQL bietet die Möglichkeit, Sammlungsdatentypen zu verwenden. Mit diesen Sammlungstypen können Sie mehrere Werte in einer einzigen Variablen speichern. In diesem Kapitel wird die Verwendung von Sammlungen in Cassandra erläutert.
Liste
Liste wird in den Fällen verwendet, in denen
- die Reihenfolge der Elemente ist beizubehalten, und
- Ein Wert ist mehrfach zu speichern.
Sie können die Werte eines Listendatentyps anhand des Index der Elemente in der Liste abrufen.
Erstellen einer Tabelle mit Liste
Im Folgenden finden Sie ein Beispiel zum Erstellen einer Beispieltabelle mit zwei Spalten, Name und E-Mail. Um mehrere E-Mails zu speichern, verwenden wir list.
cqlsh:tutorialspoint> CREATE TABLE data(name text PRIMARY KEY, email list<text>);
Einfügen von Daten in eine Liste
Geben Sie beim Einfügen von Daten in die Elemente in einer Liste alle durch Komma getrennten Werte in eckige Klammern [] ein, wie unten gezeigt.
cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',
['[email protected]','[email protected]'])
Aktualisieren einer Liste
Im Folgenden finden Sie ein Beispiel zum Aktualisieren des Listendatentyps in einer aufgerufenen Tabelle data. Hier fügen wir der Liste eine weitere E-Mail hinzu.
cqlsh:tutorialspoint> UPDATE data
... SET email = email +['[email protected]']
... where name = 'ramu';
Überprüfung
Wenn Sie die Tabelle mit der Anweisung SELECT überprüfen, erhalten Sie das folgende Ergebnis:
cqlsh:tutorialspoint> SELECT * FROM data;
name | email
------+--------------------------------------------------------------
ramu | ['[email protected]', '[email protected]', '[email protected]']
(1 rows)
EINSTELLEN
Set ist ein Datentyp, der zum Speichern einer Gruppe von Elementen verwendet wird. Die Elemente eines Satzes werden in sortierter Reihenfolge zurückgegeben.
Erstellen einer Tabelle mit Set
Im folgenden Beispiel wird eine Beispieltabelle mit zwei Spalten erstellt: Name und Telefon. Zum Speichern mehrerer Telefonnummern verwenden wir set.
cqlsh:tutorialspoint> CREATE TABLE data2 (name text PRIMARY KEY, phone set<varint>);
Einfügen von Daten in einen Satz
Geben Sie beim Einfügen von Daten in die Elemente einer Menge alle durch Komma getrennten Werte in geschweiften Klammern {} ein, wie unten gezeigt.
cqlsh:tutorialspoint> INSERT INTO data2(name, phone)VALUES ('rahman', {9848022338,9848022339});
Ein Set aktualisieren
Der folgende Code zeigt, wie ein Satz in einer Tabelle mit dem Namen data2 aktualisiert wird. Hier fügen wir dem Set eine weitere Telefonnummer hinzu.
cqlsh:tutorialspoint> UPDATE data2
... SET phone = phone + {9848022330}
... where name = 'rahman';
Überprüfung
Wenn Sie die Tabelle mit der Anweisung SELECT überprüfen, erhalten Sie das folgende Ergebnis:
cqlsh:tutorialspoint> SELECT * FROM data2;
name | phone
--------+--------------------------------------
rahman | {9848022330, 9848022338, 9848022339}
(1 rows)
KARTE
Map ist ein Datentyp, der zum Speichern eines Schlüssel-Wert-Elementpaars verwendet wird.
Erstellen einer Tabelle mit Map
Das folgende Beispiel zeigt, wie eine Beispieltabelle mit zwei Spalten, Name und Adresse, erstellt wird. Zum Speichern mehrerer Adresswerte verwenden wir map.
cqlsh:tutorialspoint> CREATE TABLE data3 (name text PRIMARY KEY, address
map<timestamp, text>);
Einfügen von Daten in eine Karte
Geben Sie beim Einfügen von Daten in die Elemente einer Karte alle ein key : value Paare durch Komma in geschweiften Klammern {} getrennt, wie unten gezeigt.
cqlsh:tutorialspoint> INSERT INTO data3 (name, address)
VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );
Ein Set aktualisieren
Der folgende Code zeigt, wie der Kartendatentyp in einer Tabelle mit dem Namen data3 aktualisiert wird. Hier ändern wir den Wert des Schlüsselbüros, dh wir ändern die Büroadresse einer Person namens Robin.
cqlsh:tutorialspoint> UPDATE data3
... SET address = address+{'office':'mumbai'}
... WHERE name = 'robin';
Überprüfung
Wenn Sie die Tabelle mit der Anweisung SELECT überprüfen, erhalten Sie das folgende Ergebnis:
cqlsh:tutorialspoint> select * from data3;
name | address
-------+-------------------------------------------
robin | {'home': 'hyderabad', 'office': 'mumbai'}
(1 rows)