Apache Cassandra Batch

Apache Cassandra Batch

Die Stapelverarbeitung ist eine sehr wichtige Funktion bei der Arbeit mit Datenbanken. Sie bieten den Entwicklern nicht nur eine Möglichkeit, eine Reihe von Anweisungen aus einem einzigen Skript auszuführen, sondern auch Atomizität auf dem Zielcluster bereitstellen.

In diesem Beitrag werden wir die Grundlagen der Arbeit mit der Stapelverarbeitung in Apache Cassandra abdecken. Auf diese Weise können Sie eine Reihe von Abfragen in einem einzigen Ausführungskontext kombinieren.

Lassen Sie uns eintauchen.

Cassandra Batch Processing -Syntax

Das Folgende zeigt die Syntax der Batch -Anweisung in Cassandra:

Beginnen Sie [(ungelöst | Zähler)] Stapel
[Mit Timestamp [epoch_microsekunden]]]]
DML_Statement [mit Timestamp [epoch_microseconds]];
[DML_Statement [mit Timestamp [EPOCH_MICROSECONDS]] [;…]]
Batch auftragen;

Sie können Anweisungen in einer Stapelklausel einfügen, aktualisieren oder löschen.

Die ungeleitete Anweisung definiert, ob die Charge protokolliert ist oder nicht. Eine protokollierte Charge sorgt für die maximale Atomizität, indem sichergestellt wird, dass alle Aussagen in der Charge erfolgreich ausgeführt werden. Wenn eine der Aussagen in einer angemeldeten Stapel fehlschlägt, kann die gesamte Charge nicht ausgeführt werden.

Die Verwendung von Zeitstempelanweisungen werden verwendet, um die Schreibzeit für die Transaktionen festzulegen, die durch die Anweisungen in der Stapel durchgeführt werden. Sie können dem Cluster zulassen, dass alle von der Stapel durchgeführten Transaktionen einen einzelnen Zeitstempel zuweisen, oder Sie können die Anweisungen angeben, auf die Sie den Zeitstempel anwenden möchten.

Ein Beispiel ist wie gezeigt:

Batch mit Timestamp [epoch_microseconds] beginnen
Anweisung_1;

Anweisung_N;
Batch auftragen;

Im vorherigen Beispiel erstellt Cassandra einen Zeitstempel für alle Transaktionen, die durch die angegebenen Aussagen in der Stapel durchgeführt wurden.

Ein weiteres Beispiel ist wie gezeigt:

Batch beginnen
Anweisung_1;
Anweisung_2 mit Timestamp [epoch_microseconds];
Anweisung_N;
Batch auftragen;

In diesem Fall wendet Cassandra nur die Zeitstempel für die Transaktionen der Anweisung_2 an.

Beispiel:

Das folgende Beispiel zeigt, wie eine Batch -Anweisung mithilfe einer Einfügen von DML -Anweisung verwendet wird:

cassandra@cqlsh: testing> table user erstellen (
… Id int,
… Benutzername Text,
… Primärschlüssel (ID));

Sobald wir das Tisch -Setup haben, können wir wie folgt einen Stapeleinsatz ausführen:

Cassandra@CQLSH: Testing> Stapel mit TIMESTAMP 1664050149 in Benutzer (ID, Benutzername) Werte (1, 'Benutzername1') einfügen; Einfügen in Benutzer (ID, Benutzername) Werte (2, 'username2'); Batch auftragen;

Die Abfrage sollte einen Stapeleinsatz in die angegebene Tabelle ausführen. Da wir den Zeitstempel auf alle Aussagen festlegen, sollte die Abfrage sicherstellen, dass alle Datensätze einen ähnlichen Zeitstempel teilen.

Abschluss

In diesem Artikel haben wir die Grundlagen der Arbeit mit dem Batch -Modus in Apache Cassandra behandelt. Es ist gut zu bedenken, dass es sich um ein grundlegendes Tutorial handelt. Bei der Arbeit mit der Stapelverarbeitung sind noch viel mehr zu berücksichtigen. Wir empfehlen, die Dokumentation nach detaillierten Informationen zu überprüfen.