Pomaga to zachować spójność danych, ponieważ zapewnia, że Twoje dane pozostają spójne, nawet jeśli którekolwiek z operacji w transakcji się nie powiedzie. Poza tym transakcje wieloczęściowe w DynamoDB pomagają uniknąć problemów, takich jak częściowe aktualizacje lub uszkodzenie danych.
W tym artykule wyjaśniono, czym są transakcje DynamoDB wielopiętrowej i kiedy z nich korzystać. Ten zapis zawiera również samouczek krok po kroku na temat korzystania z transakcji DynamoDB wielokrotnie i kilku przykładów.
Jak używać transakcji wieloczęściowych w DynamoDB
Możesz użyć transakcji DynamODB wielopiętrowej w dowolnym momencie, aby upewnić się, że wiele operacji w tabeli DynamoDB jest wykonywanych razem jako jednostka atomowa.
Na przykład pomaga aktualizować wiele rekordów w tabeli jednocześnie lub w celu przesyłania danych między dwoma tabelami bardziej konsekwentnie i niezawodnie. Ale podczas tego upewnij się, że stół jest w trybie transakcyjnym.
Ponadto operacje muszą być wykonywane za pomocą TransactWriteItems Lub TransactgetItems Pszczoła. Transakcja zostanie popełniona, jeśli wszystkie operacje odniosą sukces i cofnie się, jeśli jakakolwiek operacja się nie powiedzie.
Dodatkowo transakcje DynamODB wielokrotnie zawierają limit 25 operacji na transakcję i maksymalnie 4 MB danych na transakcję.
Aby włączyć transakcje wieloczęściowe w DynamoDB, musisz określić identyfikator transakcji i operacje, które należy wykonać. DynamODB zapewni następnie, że procesy są wykonywane we właściwej kolejności.
Aby użyć transakcji wieloczęściowych w DynamoDB, wykonaj następujące kroki:
Przykłady transakcji DynamoDB wieloczęściowych
Przykład 1:
Aby utworzyć transakcję wielopiętrową w DynamoDB, możemy użyć następującej składni:
// Rozpocznij transakcjęPowyższa transakcja wieloczęściowa rozpoczyna się od parametru „Transactitems” i zawiera szereg stwierdzeń. Pierwsza instrukcja to operacja aktualizacji. Aktualizuje element o określonym identyfikatorze w tabeli „MyTable” (musisz określić nazwę tabeli).
Druga instrukcja zawiera operację Usuń. Ma na celu usunięcie elementu z określonym identyfikatorem w tej samej tabeli. Transakcja jest wykonywana przez wywołanie metody „TransactWriteItems”, która przyjmuje parametry transakcji jako dane wejściowe i zwraca odpowiedź z wynikami transakcji.
Przykład 2:
Nasz drugi przykład jest następujący:
var params =
Transactites: [
Umieścić:
TableName: „Użytkownicy”,
Przedmiot:
userID: „xxx123abcd”,
FirstName: „Ken”,
LastName: „Brian”,
E -mail: „[email protected] ',
Telefon: „xxxxxxxxx”
,
Umieścić:
TableName: „Zamówienia”,
Przedmiot:
OrderId: 'dfa445d,
userID: „xxx123abcd”,
OrderDate: „2022-11-08”,
rzeczy: [
ProductID: „989v3”,
Ilość: 7
]
,
Umieścić:
TableName: „Produkty”,
Przedmiot:
ProductID: „989v3”,
Nazwa: „Nazwa produktu”,
Cena: 210.49
]
;
Dynamodb.TransactWrite (params, funkcja (err, data)
if (er) konsola.log (err);
inaczej konsola.log (dane);
);
W tym przykładzie stworzyliśmy wiele transakcji, które mają na celu umieszczenie nowego użytkownika, zamówienia i produktu w odpowiednich tabelach DynamoDB. Jeśli jakakolwiek operacja się nie powiedzie, cała transakcja zostanie cofnięta, a system nie doda żadnych danych do tabel.
Wniosek
Chociaż może to być nieznane, transakcje DynamODB wieloczęściowe są łatwe w użyciu i skutecznie pomogą utrzymać spójność danych. Zauważ, że nie można używać transakcji wieloczęściowych w indeksach globalnych. Nie usuwa to jednak żadnej korzyści z tej funkcji AWS DynamoDB.