Kassandra abschneiden

Kassandra Abschneiden



In diesem Artikel erfahren Sie, wie Sie den Apache Cassandra TRUNCATE-Befehl verwenden. Mit diesem Befehl können Sie alle Daten aus einer Tabelle entfernen, ohne die Tabelle oder ihr Schema zu löschen.

Einfach ausgedrückt ermöglicht Ihnen der TRUNCATE-Befehl das Zurücksetzen der in einer Tabelle gespeicherten Daten, sodass Sie neue Daten wiederherstellen oder einfügen können.







Cassandra Truncate-Befehlssyntax

Die TRUNCATE-Befehlssyntax sieht wie folgt aus:



TRUNCATE [TABLE] [keyspace.table_name]

Sie können das Schlüsselwort TABLE in der obigen Syntax weglassen. Der Befehl führt eine ähnliche Aktion aus.



Beachten Sie, dass der TRUNCATE-Befehl den JMX-Befehl an alle Knoten im Cluster sendet, die die Daten des Ziels enthalten. Dadurch können sich die Knoten synchronisieren und über die letzten Datenänderungen auf dem Laufenden bleiben. Wenn einer der Knoten im Cluster ausgefallen ist, schlägt der Befehl fehl und gibt einen Fehler zurück.





Beispieltabelle und Daten erstellen

Zur Veranschaulichung erstellen wir einen Beispielschlüsselraum und eine Beispieltabelle. Die Befehle sind wie in den folgenden Snippets gezeigt:

cqlsh> Keyspace erstellen height_info
... mit Replikation = {
... 'class': 'SimpleStrategy',
... 'replikationsfaktor': 1};
cqlsh> USE height_info;
cqlsh:height_info> CREATE TABLE-Empfänger (
... deine Hand,
... Text des Benutzernamens,
... Höhe int,
... PRIMARY KEY(id, Höhe));

Wir können dann Beispieldaten einfügen, wie in den folgenden Befehlen gezeigt:



cqlsh:height_info> INSERT INTO Empfänger (ID, Benutzername, Höhe) Werte (0, 'Benutzer1', 210);
cqlsh:height_info> INSERT INTO Empfänger (ID, Benutzername, Höhe) Werte (1, 'user2', 115);
cqlsh:height_info> INSERT INTO Empfänger (ID, Benutzername, Höhe) Werte (2, 'user3', 202);
cqlsh:height_info> INSERT INTO Empfänger (ID, Benutzername, Höhe) Werte (3, 'user4', 212);
cqlsh:height_info> INSERT INTO Empfänger (ID, Benutzername, Höhe) Werte (4, 'user5', 216);

Beispiel einer Trunkierungsoperation

Die in der Tabelle vor dem Abschneiden gespeicherten Daten lauten wie folgt:

SELECT * FROM-Empfänger;

Wir können die Tabelle wie gezeigt abschneiden:

cqlsh:height_info> TRUNCATE TABLE height_info.recipients;

Schließlich können wir bestätigen, dass die Daten wie folgt aus der Tabelle entfernt wurden:

cqlsh:height_info> SELECT * FROM Empfänger;

Sie werden feststellen, dass die Tabelle mit allen Schemadefinitionen noch vorhanden ist. Die Daten aus der Tabelle wurden jedoch entfernt, wobei eine leere Tabelle zurückblieb.

Beachten Sie, dass die TRUNCATE-Operation irreversibel ist. Seien Sie bei der Verwendung und dem möglichen Datenverlust vorsichtig.

Fazit

In diesem Beitrag haben Sie gelernt, wie Sie mit dem CQL-TRUNCATE-Befehl alle Daten aus einer Tabelle entfernen und dabei das Tabellenschema beibehalten.