DynamoDB Streams en Global Tables
Verwerk wijzigingen op itemniveau in realtime met Streams en repliceer gegevens tussen Regions met Global Tables voor wereldwijd snelle reads.
DynamoDB Streams en Global Tables is een gratis Cloud & IT Cert Prep-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cloud & IT Cert Prep. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.
DynamoDB Streams: vastleggen van gegevenswijzigingen
DynamoDB Streams legt een chronologische reeks wijzigingen op itemniveau in een DynamoDB-tabel vast. Telkens wanneer een item wordt aangemaakt, bijgewerkt of verwijderd, schrijft DynamoDB een streamrecord waarin de wijziging wordt beschreven. Streamrecords zijn 24 uur beschikbaar nadat ze zijn geschreven.
Streams vormen de basis van gebeurtenisgestuurde architecturen met DynamoDB. Veelgebruikte toepassingen zijn onder andere het activeren van Lambda-functies voor realtimeverwerking, het bijhouden van een auditlogboek, het repliceren van gegevens naar een andere opslaglocatie of het ongeldig maken van een cache wanneer gegevens veranderen.
# Enable a DynamoDB Stream on an existing table
aws dynamodb update-table \
--table-name Orders \
--stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGESTypen streamweergaven
Bij het inschakelen van een stream kiest u een StreamViewType die bepaalt welke gegevens elk streamrecord bevat:
- KEYS_ONLY: alleen de primaire-sleutelattributen van het gewijzigde item
- NEW_IMAGE: het volledige item zoals het er na de wijziging uitziet
- OLD_IMAGE: het volledige item zoals het er vóór de wijziging uitzag
- NEW_AND_OLD_IMAGES: zowel de toestand van het item vóór als na de wijziging
Kies NEW_AND_OLD_IMAGES voor auditing (om te zien wat er is gewijzigd), NEW_IMAGE voor replicatie of cache-updates en KEYS_ONLY wanneer u alleen hoeft te weten welk item is gewijzigd en de huidige toestand afzonderlijk ophaalt.
Streams verwerken met Lambda
De meest gebruikelijke manier om een DynamoDB Stream te consumeren is met AWS Lambda. Lambda leest de stream uit en roept uw functie aan met een batch streamrecords. Lambda handelt het uitlezen, het opslaan van controlepunten en automatisch opnieuw proberen af.
Belangrijke configuratieparameters zijn: batchgrootte (het aantal records per aanroep, maximaal 10.000), splitsen bij fout (een mislukte batch opsplitsen om het problematische record te isoleren) en bestemming bij mislukking (SQS of SNS voor records die niet kunnen worden verwerkt). Lambda leest elke shard parallel uit, dus de mate van parallellisme is gelijk aan het aantal shards in de stream.
# Add Lambda as a stream trigger via CLI
aws lambda create-event-source-mapping \
--function-name process-orders-stream \
--event-source-arn arn:aws:dynamodb:us-east-1:123456789:table/Orders/stream/2026-06-20T00:00:00.000 \
--starting-position LATEST \
--batch-size 100 \
--bisect-batch-on-function-errorToepassingen van streams
Praktische toepassingen van DynamoDB Streams voor het SAA-C03-examen:
- Replicatie tussen regio's: Lambda leest de stream en schrijft wijzigingen naar een tabel in een andere regio (voordat Global Tables bestonden, was dit het standaardpatroon)
- ElastiCache ongeldig maken: wanneer een DynamoDB-item verandert, maakt Lambda de bijbehorende cachesleutel ongeldig of werkt deze bij
- Synchronisatie van zoekindexen: stuur itemwijzigingen naar OpenSearch Service om zoeken in volledige tekst op DynamoDB-gegevens mogelijk te maken
- Auditlogging: schrijf elke wijziging naar S3 of een opslaglocatie voor naleving van regelgeving
- Gebeurtenisgestuurde microservices: activeer achterliggende services wanneer specifieke items veranderen
DynamoDB Global Tables: wat en waarom
DynamoDB Global Tables bieden volledig beheerde replicatie over meerdere regio's met meerdere actieve regio's. Elke regio krijgt een volledige kopie van de tabel en alle kopieën kunnen gelijktijdig worden beschreven. Schrijfacties in elke regio worden asynchroon binnen ongeveer 1 seconde naar alle andere regio's gerepliceerd.
Global Tables maken twee belangrijke scenario's mogelijk: lezen en schrijven met lage latentie voor wereldwijd verspreide gebruikers (elke gebruiker schrijft naar en leest uit de dichtstbijzijnde regio) en actief-actief noodherstel in meerdere regio's (de applicatie blijft actief in elke overgebleven regio, zonder gegevensverlies sinds de laatste replicatie).
Global Tables aanmaken
Om een Global Table aan te maken, maakt u eerst een tabel met ingeschakelde DynamoDB Streams (NEW_AND_OLD_IMAGES is intern vereist voor Global Tables). Vervolgens voegt u replicaregio's toe. AWS maakt in elke toegevoegde regio een replicatabel aan en begint gegevens in beide richtingen te synchroniseren.
Global Tables (Version 2019.11.21) zijn de huidige standaard en ondersteunen On-Demand- of Provisioned-capaciteit met Auto Scaling. Elke replicatabel in een regio moet dezelfde tabelnaam hebben. U kunt op elk moment regio's aan een Global Table toevoegen of eruit verwijderen.
# Create a global table replica in eu-west-1
aws dynamodb create-global-table \
--global-table-name GlobalOrders \
--replication-group RegionName=us-east-1 RegionName=eu-west-1Conflictoplossing in Global Tables
Omdat Global Tables schrijven in meerdere regio's tegelijk toestaan, kunnen er schrijfconflicten ontstaan wanneer twee regio's vrijwel op hetzelfde moment hetzelfde item bijwerken. DynamoDB lost conflicten op met een aanpak waarbij de laatste schrijver wint, op basis van tijdstempels in de streamrecords.
In de praktijk betekent dit dat twee vrijwel gelijktijdige conflicterende updates ertoe leiden dat één update wint en de andere wordt overschreven. Applicaties moeten zo worden ontworpen dat gelijktijdige schrijfacties naar hetzelfde item vanuit verschillende regio's worden voorkomen. Overweeg voor toepassingen waarin conflicten vaak voorkomen om alle schrijfacties voor een specifieke gebruiker of entiteit naar één thuisregio te routeren.
Global Tables en capaciteitsoverwegingen
Met Global Tables worden schrijfacties in één regio automatisch naar alle andere regio's gerepliceerd. Elke gerepliceerde schrijfactie verbruikt WCU's in de doelregio's—bij 3 regio's kost één schrijfactie dus ongeveer 3× de WCU's over alle regio's. Plan de capaciteit dienovereenkomstig.
Lezingen in elke regio verbruiken de RCU's van de lokale replica. Eventual-consistente lezingen (de standaard) gebruiken lokale gegevens, terwijl sterk consistente lezingen niet tussen regio's worden ondersteund. Voor de meeste wereldwijde applicaties is eventual consistency binnen ongeveer 1 seconde tussen regio's acceptabel.
Global Tables versus leesreplica's tussen regio's (RDS)
Een belangrijk onderscheid voor het SAA-C03-examen: DynamoDB Global Tables zijn multi-actief (alle regio's accepteren lees- EN schrijfacties), terwijl RDS-leesreplica's tussen regio's alleen-lezen zijn (u kunt een replica alleen promoveren om deze schrijfbaar te maken, waarbij de replicatie wordt verbroken).
Gebruik DynamoDB Global Tables wanneer u het volgende nodig hebt: actief-actieve schrijfacties in meerdere regio's, wereldwijde toegang met een latentie van minder dan 100 ms of noodherstel in meerdere regio's met een RPO van nul voor NoSQL-gegevens. Gebruik RDS-replica's tussen regio's wanneer u het volgende nodig hebt: wereldwijde schaalbaarheid voor lezen in een relationele database of een warme stand-by voor noodherstel die u bij een failover kunt promoveren.
Architectuurpatronen met Streams en Lambda
Veelvoorkomende architectuurpatronen waarin Streams en Lambda worden gecombineerd:
- Fan-out: Lambda leest de stream en publiceert naar SNS, dat de berichten verdeelt over meerdere SQS-wachtrijen voor onafhankelijke consumenten
- Aggregatie: Lambda verzamelt wijzigingen en werkt geaggregeerde totalen bij in een afzonderlijke DynamoDB-tabel (bijvoorbeeld het dagelijkse aantal bestellingen)
- Write-behind-cache: bij elke streamgebeurtenis werkt Lambda ElastiCache bij, zodat lezingen vanuit de cache kunnen worden afgehandeld
- Meldingen: de stream activeert Lambda, die een SES-e-mail of SNS-pushmelding verstuurt wanneer een specifieke voorwaarde verandert
Integratie van DynamoDB Kinesis Data Streams
Als alternatief voor DynamoDB Streams kun je wijzigingen op itemniveau doorsturen naar een Amazon Kinesis Data Stream. Dit is handig wanneer je een langere bewaartermijn nodig hebt (maximaal 1 jaar tegenover 24 uur voor native DynamoDB Streams), meer consumers wilt gebruiken of wilt integreren met services die gegevens uit Kinesis lezen.
Integratie met Kinesis Data Streams wordt per tabel ingeschakeld en vervangt DynamoDB Streams niet: je kunt beide tegelijkertijd inschakelen. Dit is een nieuwere functie (uit 2021) die de pipeline voor wijzigingsgebeurtenissen van DynamoDB uitbreidt zonder dat je aangepaste replicatielogica nodig hebt.
# Enable Kinesis Data Streams for a DynamoDB table
aws dynamodb enable-kinesis-streaming-destination \
--table-name Orders \
--stream-arn arn:aws:kinesis:us-east-1:123456789:stream/ddb-changesKorte controle
Test je begrip van de concepten uit AWS Solutions Architect (SAA-C03) die in deze les aan bod kwamen.
Samenvatting van de les
In deze les heb je geleerd dat DynamoDB Streams wijzigingen op itemniveau 24 uur lang vastleggen en integreren met Lambda voor gebeurtenisgestuurde verwerking, dat Global Tables replicatie over meerdere actieve regio's bieden met conflictoplossing volgens het principe dat de laatste schrijver wint, en dat integratie met Kinesis Data Streams de bewaartermijn verlengt tot voorbij het venster van 24 uur van de stream. Hierna bekijken we gehoste zones van Route 53 en typen DNS-records.
Leer Cloud & IT Cert Prep met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 150
- Lessen
- 600
Veelgestelde vragen
Is de les “DynamoDB Streams en Global Tables” gratis?
Ja — de volledige tekst van “DynamoDB Streams en Global Tables” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cloud & IT Cert Prep wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.
Wat leer ik in “DynamoDB Streams en Global Tables”?
Verwerk wijzigingen op itemniveau in realtime met Streams en repliceer gegevens tussen Regions met Global Tables voor wereldwijd snelle reads. Je oefent met Cloud & IT Cert Prep door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Cloud & IT Cert Prep te beginnen?
Ervaring vooraf is niet nodig. Cloud & IT Cert Prep op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “DynamoDB Streams en Global Tables”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Cloud & IT Cert Prep?
Ja. Elke les over Cloud & IT Cert Prep bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Tabellen, items en primary keys
- Provisioned versus On-Demand-capaciteit
- Global Secondary Indexes en Local Secondary Indexes
- DynamoDB Streams en Global Tables