Cassandra CQL-Tabelle: Beispiel zum Erstellen, Ändern und Kürzen
⚡ Intelligente Zusammenfassung
Cassandra Tabellenoperationen umfassen Erstellen, Ändern und Löschen.pingund das Kürzen von Spaltenfamilien mit CQL. Diese Seite erläutert jeden Befehl, die drei Primärschlüsselformen, die die Datenverteilung bestimmen, und die Unterschiede zwischen dem Entfernen von Zeilen und dem Entfernen einer Tabelle.

Die Syntax von Cassandra Die Abfragesprache (CQL) ähnelt SQL Sprache.
So erstellen Sie eine Tabelle in Cassandra
Spaltenfamilie in Cassandra ähnelt der RDBMS-Tabelle. Die Spaltenfamilie wird zum Speichern von Daten verwendet.
Der Befehl „Tabelle erstellen“ wird zum Erstellen einer Spaltenfamilie verwendet Cassandra.
Syntax
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. Primärschlüssel: Es gibt zwei Arten von Primärschlüssel.
- Einzelner Primärschlüssel: Ein einzelner Primärschlüssel wird durch die folgende Syntax angegeben.
Syntax
PRIMARY KEY (ColumnName)
Im einzelnen Primärschlüssel gibt es nur eine einzige Spalte. Diese Spalte wird auch Partitionierungsschlüssel genannt. Die Daten werden auf Grundlage dieser Spalte partitioniert. Die Daten werden anhand des Partitionsschlüssels auf verschiedene Knoten verteilt.
2. Zusammengesetzter Primärschlüssel: Der zusammengesetzte Primärschlüssel wird durch die folgende Syntax angegeben.
Syntax
PRIMARY KEY (ColumnName1, ColumnName2, ...)
In der obigen Syntax ist ColumnName1 der Partitionierungsschlüssel und ColumnName2 der Clustering-Schlüssel. Daten werden auf der Grundlage von ColumnName1 partitioniert und Daten werden auf der Grundlage von ColumnName2 gruppiert. Clustering ist der Prozess, der Daten in der Partition sortiert.
3. Zusammengesetzter Partitionierungsschlüssel: Der zusammengesetzte Partitionierungsschlüssel wird durch die folgende Syntax angegeben.
Syntax
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
In der obigen Syntax sind ColumnName1 und ColumnName2 der zusammengesetzte Partitionsschlüssel. Die Daten werden anhand der Spalten ColumnName1 und ColumnName2 partitioniert und anhand von ColumnName3 gruppiert. Bei einer großen Datenmenge in einer einzelnen Partition wird ein zusammengesetzter Partitionsschlüssel verwendet. Dieser dient dazu, mehrere Partitionen für die Daten zu erstellen.
- Mit Klausel
„With-Klausel“ wird verwendet, um eine beliebige Eigenschaft und ihren Wert für die definierte Tabelle anzugeben. Zum Beispiel, wenn Sie komprimieren möchten Cassandra Tabellendaten. Sie können die Komprimierungseigenschaften festlegen, indem Sie den Wert der Eigenschaft „Komprimierungsalgorithmus“ in der „With“-Klausel angeben. Dieselbe Klausel legt auch „CLUSTERING ORDER BY“ fest, um die Sortierrichtung einer Clusterspalte umzukehren, und „default_time_to_live“, um den Wert für jede Zeile automatisch ablaufen zu lassen.
Beispiel
Hier ist die Ausführung des Befehls „Tabelle erstellen“, der den Tabellennamen „Student“ im Schlüsselraum „Universität“ erstellt.
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
Nach erfolgreicher Ausführung des Befehls „Tabelle erstellen“ wird die Tabelle „Student“ im Keyspace „University“ mit den Spalten „RollNo“, „Name“ und „dept.“ erstellt. „RollNo“ ist der Primärschlüssel und gleichzeitig Partitionsschlüssel, sodass jeder Student eine separate Partition mit einer einzigen Zeile belegt.
Cassandra Tabelle ändern
Der Befehl „Tabelle ändern“ wird verwendet, um eine Spalte zu löschen, eine neue Spalte hinzuzufügen, den Spaltennamen zu ändern, den Spaltentyp zu ändern und die Eigenschaften der Tabelle zu ändern.
Syntax
Nachfolgend sehen Sie die Syntax des Befehls „Alter Table“.
ALTER TABLE KeyspaceName.TableName ADD ColumnName ColumnDataType; ALTER TABLE KeyspaceName.TableName DROP ColumnName; ALTER TABLE KeyspaceName.TableName RENAME ColumnName TO NewColumnName; ALTER TABLE KeyspaceName.TableName WITH PropertyName = PropertyValue;
Jedes Formular wird als separate Erklärung ausgestellt. Aktuell gelten zwei Einschränkungen. Cassandra Releases: Der Datentyp einer bestehenden Spalte kann nicht mehr geändert werden, und RENAME funktioniert nur noch bei einer Clusterspalte des Primärschlüssels.
Beispiel
Hier ist der Schnappschuss des Befehls „Alter Table“, der eine neue Spalte in der Tabelle „Student“ hinzufügt.
ALTER TABLE University.Student ADD Semester int;
Nach erfolgreicher Ausführung des Befehls „Alter Table“ wird der Tabelle Student eine neue Spalte „Semester“ mit dem Datentyp „int“ hinzugefügt.
Hier ist der Screenshot, der die aktualisierte Student-Tabelle zeigt.
Cassandra Tisch fallen lassen
Der Befehl „DROP TABLE“ löscht die angegebene Tabelle einschließlich aller Daten aus dem Keyspace. Vor dem Löschenping der Tisch, Cassandra Erstellt als Backup einen Snapshot der Daten und nicht des Schemas.
Syntax
DROP TABLE IF EXISTS KeyspaceName.TableName;
Beispiel
Hier ist der Schnappschuss des ausgeführten Befehls „Drop Table“, der die Tabelle „Student“ aus dem Schlüsselraum „University“ löscht.
DROP TABLE University.Student;
Nach erfolgreicher Ausführung des Befehls „Drop Table“ wird die Tabelle Student aus dem Keyspace University gelöscht.
Hier ist der Schnappschuss, der den von zurückgegebenen Fehler zeigt Cassandra beim Versuch, auf die nicht vorhandene Student-Tabelle zuzugreifen.
Cassandra Tabelle abschneiden
Der Befehl „Tabelle abschneiden“ entfernt alle Daten aus der angegebenen Tabelle. Bevor Sie die Daten kürzen, Cassandra erstellt den Snapshot der Daten als Backup.
Syntax
TRUNCATE KeyspaceName.TableName;
Beispiel
Es gibt drei Datensätze in der Tabelle Student. Dies sind die Datensätze in der Tabelle.
Hier ist der Schnappschuss des ausgeführten Befehls „Truncate table“, der alle Daten aus der Tabelle „Student“ entfernt.
Nach erfolgreicher Ausführung des Befehls „Truncate Table“ werden alle Daten aus der Tabelle Student entfernt.
Hier ist die Momentaufnahme des Datenbankstatus, in der in der Tabelle „Student“ keine Datensätze vorhanden sind.
Die Anweisung „Truncate“ erfordert, dass jeder Knoten erreichbar ist, da sie gleichzeitig im gesamten Cluster ausgeführt wird. Wenn ein Knoten ausfällt, schlägt die Anweisung fehl. Dies ist eine bewusste Sicherheitsmaßnahme, um zu verhindern, dass unvollständige Daten verloren gehen.
Drop vs Truncate vs Delete in Cassandra
Drei Befehle entfernen Daten, und die Wahl des falschen Befehls zerstört entweder ein Schema oder hinterlässt ein Leistungsproblem.
| Befehl | Was es entfernt | Schema beibehalten | Kosten |
|---|---|---|---|
| TROPFENTABELLE | Alle Zeilen und die Tabellendefinition | Nein | Preiswert. SSTables werden als Snapshots gespeichert und anschließend verworfen. |
| KÜRZEN | Alle Zeilen | Ja | Günstig, aber alle Knotenpunkte müssen aktiviert sein. Es werden keine Grabsteine erstellt. |
| LÖSCHEN | Ausgewählte Zeilen oder Spalten | Ja | Bei großem Umfang teuer. Jeder Entnahmevorgang hinterlässt einen Eintrag mit der Aufschrift: „Muss bis zur Verdichtung übersprungen werden.“ |
Grundsätzlich sollte man beim Löschen einer gesamten Tabelle TRUNCATE einem Massenlöschvorgang (DELETE) vorziehen, da Tausende von Tombstones jeden nachfolgenden Lesevorgang dieser Partition verlangsamen würden. Das Löschen auf Zeilenebene wird im Abschnitt [Referenz einfügen] behandelt. CQL-Anweisungen zum Einfügen, Aktualisieren und Löschen Tutorial.








