Dynamodb-Multi-Statement-Transaktionen

Dynamodb-Multi-Statement-Transaktionen
DynamoDB-Multi-Statement-Transaktionen ist eine Funktion in AWS 'DynamoDB, mit der Datenmanager mehrere Schreibvorgänge in einer oder mehreren Elementen in einer DynamoDB-Tabelle unter Verwendung einer einzigen Transaktion ausführen können. Somit wird alle versuchten Schreibvorgänge als Gruppe erfolgreich sein oder scheitern.

Dies hilft bei der Aufrechterhaltung der Konsistenz Ihrer Daten, da Ihre Daten auch dann konsistent bleiben, wenn einer der Operationen in der Transaktion fehlschlägt. Außerdem helfen Multi-Statements.

In diesem Artikel wird erläutert, welche Dynamodb-Multi-Statement-Transaktionen sind und wann sie verwendet werden sollen. Dieses Schreiben bietet auch ein Schritt-für-Schritt.

So verwenden Sie Multi-Statement-Transaktionen in DynamoDB

Sie können DynamoDB-Multi-Statement-Transaktionen verwenden, wenn Sie sicherstellen müssen, dass mehrere Vorgänge in Ihrer DynamoDB-Tabelle als Atomeinheit zusammengestellt werden.

Beispielsweise hilft es dabei, mehrere Datensätze in einer Tabelle gleichzeitig zu aktualisieren oder Daten zwischen zwei Tabellen konsistenter und zuverlässig zu übertragen. Stellen Sie dabei jedoch sicher, dass sich Ihre Tabelle im Transaktionsmodus befindet.

Darüber hinaus müssen die Vorgänge mit dem ausgeführt werden TransactwriteItems oder Transactgetitems Apis. Die Transaktion wird verpflichtet, wenn alle Operationen erfolgreich sind und zurückgerollt sind, wenn einer der Operationen ausfällt.

Darüber hinaus haben DynamoDB-Multi-Statement-Transaktionen eine Grenze von 25 Operationen pro Transaktion und maximal 4 MB Daten pro Transaktion.

Um Multi-Statement-Transaktionen in DynamoDB zu aktivieren, müssen Sie die Transaktions-ID und die Operationen angeben, die ausgeführt werden müssen. DynamoDB stellt dann sicher, dass die Prozesse in der richtigen Reihenfolge durchgeführt werden.

Befolgen Sie die folgenden Schritte, um Multi-Statement-Transaktionen in DynamoDB zu verwenden:

  1. Aktivieren Sie die Multi-Statement-Transaktionsfunktion von DynamoDB, indem Sie die festlegen EnableMultistatementTransactionsupport Flagge an WAHR im AWS.Dynamode.DocumentClient Beispiel.
  2. Starten Sie eine Transaktion, indem Sie die aufrufen TransakteWrite oder Transaktget Methode auf der AWS.Dynamode.DocumentClient Instanz, in die gewünschten Operationen als Array weitergegeben. Alternativ können Sie das anrufen "Starttransaktion" Befehl auf Ihrem DynamoDB -Client.
  3. Geben Sie für jede Operation im Array die gewünschte Aktion an (e.G., setzen, aktualisieren, löschen, erhalten, usw.) und die entsprechenden Parameter (e.G., Tabellenname, Partitionschlüssel, Sortierenschlüssel, Attributwerte usw.).
  4. Führen Sie die Transaktion aus, indem Sie die aufrufen versprechen Methode auf dem zurückgegebenen Transaktionsobjekt. Sie können auch die verwenden, um die zu verwenden begehen Methode.
  5. Überwachen Sie den Fortschritt der Transaktion mit dem An Methode auf dem Transaktionsobjekt, das in das gewünschte Ereignis eingeht (e.G., Erfolg, Fehler, usw.) und eine Rückruffunktion, um das Ereignis zu verarbeiten.
  6. Eine Multi-Statement-Transaktion ändert Ihre Daten gemäß den angegebenen Vorgängen, wenn die Transaktion erfolgreich ist. Wenn die Transaktion fehlschlägt, wird die Daten nicht geändert. Stattdessen wird ein Fehler zurückgegeben.
  7. Um die Datenkonsistenz zu gewährleisten und Konflikte zu vermeiden.

Beispiele für Dynamodb-Multi-Statement-Transaktionen

Beispiel 1:

Um eine Multi-Statement-Transaktion in DynamoDB zu erstellen, können wir die folgende Syntax verwenden:

// Transaktion beginnen
var params = transactitems: [
// Anweisung 1 - Element aktualisieren

Aktualisieren:
TableName: "mytable",
Taste:
"Id": n: "1",,
UpdateExpression: "Set #name =: Name",
ExpressionAttributenamen:
"#Name Name"
,
ExpressionAttributeValues:
": name": s: "ken brian"
,
ReturnValues: "All_New"

,
// Anweisung 2 - Element löschen

Löschen:
TableName: "mytable",
Taste:
"Id": n: "2",
, Rückkehrwerte: "All_old"


]

Dynamode.transactwriteItems (Params, Funktion (err, data)
if (err) Konsole.log (ähm, ähm.Stapel);
sonst Konsole.Logdaten);
);

Die obige Multi-Statement-Transaktion beginnt mit dem Parameter „Transactitems“ und enthält ein Array von Anweisungen. Die erste Anweisung ist eine Aktualisierungsoperation. Es aktualisiert ein Element mit einer bestimmten ID in der Tabelle „Mytable“ (Sie müssen den Tabellennamen angeben).

Die zweite Anweisung verfügt über einen Löschvorgang. Ziel ist es, ein Element mit einer bestimmten ID in derselben Tabelle zu löschen. Die Transaktion wird ausgeführt, indem die Methode „TransactwriteEMs“ aufgerufen wird, die die Transaktionsparameter als Eingabe nimmt und eine Antwort mit den Transaktionsergebnissen zurückgibt.

Beispiel 2:

Unser zweites Beispiel ist wie folgt:

var params =
Transactitems: [

Setzen:
TableName: "Benutzer",
Artikel:
BenutzerID: 'xxx123abcd',
FirstName: 'Ken',
Lastname: 'Brian',
E -Mail: 'Kencbrian@Google Mail.com ',
Telefon: 'xxxxxxxxx' '


,

Setzen:
TableName: 'Bestellungen',
Artikel:
orderId: 'dfa445d,
BenutzerID: 'xxx123abcd',
OrderDate: '2022-11-08' ',
Artikel: [

ProductID: '989v3',
Menge: 7

]


,

Setzen:
TableName: 'Produkte',
Artikel:
ProductID: '989v3',
Name: 'Produktname',
Preis: 210.49



]
;
Dynamode.Transactwrite (Params, Funktion (err, data)
if (err) Konsole.log (err);
sonst Konsole.Logdaten);
);

In diesem Beispiel haben wir mehrere Transaktionen erstellt, die darauf abzielen, einen neuen Benutzer, eine neue Reihenfolge und einen neuen Produkt in ihre jeweiligen Dynamodb -Tabellen zu stecken. Wenn ein Betrieb fehlschlägt, wird die gesamte Transaktion zurückgerollt, und das System fügt den Tabellen keine der Daten hinzu.

Abschluss

Dies ist zwar vielen für viele unbekannt, dynamodb-Multi-Statement-Transaktionen sind einfach zu bedienen und hilft Ihnen bei der effizienten Aufrechterhaltung der Konsistenz Ihrer Daten beibehalten. Beachten Sie, dass Sie keine Mehrfachbeamten-Transaktionen für globale Indizes verwenden können. Dies wird jedoch keinen der Vorteile dieser AWS -DynamoDB -Funktion entfernt.