DynamoDB Multi-Tatement Transactions

DynamoDB Multi-Tatement Transactions
DynamoDB Multi-Tatement Transactions er en funksjon i AWS 'DynamoDB som lar datadministratorer utføre flere skriveoperasjoner på en eller flere elementer i en DynamoDB-tabell ved hjelp av en enkelt transaksjon. Dermed vil alle skriveoperasjoner som forsøkes å lykkes eller mislykkes som en gruppe.

Dette hjelper til med å opprettholde konsistensen av dataene dine, da det sikrer at dataene dine forblir konsistente selv om noen av operasjonene i transaksjonen mislykkes. Dessuten hjelper flerstatningstransaksjoner i DynamoDB til å unngå problemer som delvise oppdateringer eller datakorrupsjon.

Denne artikkelen forklarer hva DynamoDB-transaksjoner er og når du skal bruke dem. Denne oppskrivningen gir også en trinn-for-trinns tutorial om bruk av DynamoDB-transaksjoner og noen få eksempler.

Hvordan bruke flerstatningstransaksjoner i DynamoDB

Du kan bruke DynamoDB-transaksjoner med flere tilstander når du trenger å sikre at flere operasjoner på DynamoDB-tabellen din blir utført sammen som en atomenhet.

For eksempel hjelper det med å oppdatere flere poster i en tabell samtidig eller for å overføre data mellom to tabeller mer konsekvent og pålitelig. Men mens du er i det, må du sørge for at tabellen din er i transaksjonsmodus.

Dessuten må operasjonene utføres ved hjelp av TransactWriteItems eller TransactgetItems API -er. Transaksjonen vil bli begått hvis alle operasjoner er vellykket og rullet tilbake hvis noen av operasjonene mislykkes.

I tillegg har dynamoDB-transaksjoner med flere opplysninger en grense på 25 operasjoner per transaksjon og maksimalt 4 MB data per transaksjon.

For å aktivere flerstatningstransaksjoner i DynamoDB, må du spesifisere transaksjons-ID og operasjonene som må utføres. DynamoDB vil da sikre at prosessene utføres i riktig rekkefølge.

Følg disse trinnene for å bruke flerstatningstransaksjoner i DynamoDB:

  1. Aktiver DynamoDBs transaksjonsevne med flere opplysninger ved å stille inn EnablemultistatementTransactionsupport flagg til ekte i Aws.Dynamodb.Dokumentklient forekomst.
  2. Start en transaksjon ved å ringe TransactWrite eller Transactget metode på Aws.Dynamodb.Dokumentklient forekomst, og passerer i ønsket operasjon som en matrise. Alternativt kan du ringe “Starttransaksjon” Kommando på din dynamoDB -klient.
  3. For hver operasjon i matrisen, spesifiser ønsket handling (e.g., sette, Oppdater, slett, , etc.) og de tilsvarende parametrene (e.g., Tabellnavn, partisjonstast, sortertast, attributtverdier osv.).
  4. Utfør transaksjonen ved å ringe love Metode på det returnerte transaksjonsobjektet. Du kan også velge å bruke begå metode.
  5. Overvåk transaksjonens fremgang ved hjelp av metode på transaksjonsobjektet, som passerer i ønsket hendelse (e.g., suksess, feil, etc.) og en tilbakeringingsfunksjon for å håndtere arrangementet.
  6. En transaksjon med flere opplysninger vil endre dataene dine i henhold til de spesifiserte operasjonene hvis transaksjonen er vellykket. Hvis transaksjonen mislykkes, vil den ikke endre dataene. I stedet vil en feil bli returnert.
  7. For å sikre datakonsistens og forhindre konflikter, anbefales det å bruke betingede uttrykk i operasjonsarrayen for å se etter eksisterende verdier og gi ønsket tilstand før du endrer data.

DynamoDB Multi-Tatement Transactions Eksempler

Eksempel 1:

For å opprette en transaksjon med flere utførte av DynamoDB, kan vi bruke følgende syntaks:

// Begynn transaksjonen
var params = transactItems: [
// uttalelse 1 - Oppdateringselement

Oppdater:
Tablename: "Mytable",
Nøkkel:
"Id": n: "1",,
UpdateExpression: "Set #Name =: Name",
ExpressionAttributeNames:
"#Name": "Navn"
,
ExpressionAttributeValues:
": navn": s: "Ken Brian"
,
ReturnValues: "All_new"

,
// uttalelse 2 - Slett elementet

Slett:
Tablename: "Mytable",
Nøkkel:
"Id": n: "2",
, Returnerer: "all_old"


]

Dynamodb.TransactWriteItems (params, funksjon (feil, data)
hvis (feil) konsoll.Logg (feil, feil.stable);
annet konsoll.logg (data);
);

Multi-statustransaksjonen ovenfor begynner med parameteren "TransactItems" og inneholder en rekke uttalelser. Den første uttalelsen er en oppdateringsoperasjon. Den oppdaterer et element med en spesifikk ID i "Mytable" -tabellen (du må spesifisere tabellnavnet).

Den andre uttalelsen har en slettoperasjon. Den tar sikte på å slette et element med en bestemt ID i samme tabell. Transaksjonen utføres ved å kalle metoden “TransactWriteItems”, som tar transaksjonsparametrene som input og returnerer et svar med transaksjonsresultatene.

Eksempel 2:

Det andre eksemplet vårt er som følger:

var params =
TransactItems: [

Sette:
Tablename: 'Brukere',
Vare:
userid: 'xxx123abcd',
FirstName: 'Ken',
LastName: 'Brian',
E -post: '[email protected] ',
Telefon: 'xxxxxxxxx'


,

Sette:
Tablename: 'Bestillinger',
Vare:
OrderId: 'DFA445D,
userid: 'xxx123abcd',
Orderdate: '2022-11-08',
Elementer: [

ProductID: '989V3',
Mengde: 7

]


,

Sette:
Tablename: 'Produkter',
Vare:
ProductID: '989V3',
Navn: 'Produktnavn',
Pris: 210.49



]
;
Dynamodb.transactWrite (params, funksjon (feil, data)
hvis (feil) konsoll.logg (feil);
annet konsoll.logg (data);
);

I dette eksemplet opprettet vi flere transaksjoner som tar sikte på å sette en ny bruker, bestilling og produkt i deres respektive DynamoDB -tabeller. Hvis noen operasjoner mislykkes, vil hele transaksjonen bli rullet tilbake, og systemet vil ikke legge til noen av dataene i tabellene.

Konklusjon

Selv om dette kan være ukjent for mange, er dynamoDB-transaksjoner med flere uttalelser enkle å bruke og vil effektivt hjelpe deg med å opprettholde dataens konsistens. Merk at du ikke kan bruke flerstatningstransaksjoner på globale indekser. Dette fjerner imidlertid ingen av fordelene med denne AWS DynamoDB -funksjonen.