Home Up PDF Prof. Dr. Ingo Claßen
DynamoDB - ADBKT

DynamoDB Einordnung

  • Managed Service von AWS
  • NoSQL-Datenbank - unterstützt Key-Value und Dokumentendaten
  • Serverless: keine Serververwaltung notwendig
  • Automatische Skalierung und hohe Verfügbarkeit
  • Multi-Region-Replikation möglich (Global Tables)
  • SLA: 99,999 % Verfügbarkeit

Tabellen, Items, Attribute

Grundstruktur

  • Tabelle: Sammlung von Items (kein festes Schema)
  • Item: einzelner Datensatz, schemalos
  • Attribut: typisiertes Feld (String, Number, Binary, List, Map, …)
  • JSON-ähnliche Struktur
  • Maximale Item-Größe: 400 KB

Primärschlüssel: Partition Key

  • Einfacher Primärschlüssel aus einem einzigen Attribut
  • DynamoDB berechnet einen Hash-Wert → bestimmt physische Partition
  • Jedes Item muss einen eindeutigen Partition Key besitzen
{
  "UserId": "U-1001",   <-- PK
  "Name": "Alice",
  "Email": "alice@example.com"
}

Primärschlüssel: Composite Key

  • Partition Key + Sort Key
  • Mehrere Items mit gleichem Partition Key möglich
  • Sort Key ermöglicht Bereichsabfragen (begins_with, between, <, >, …)
{
  "UserId":  "U-1001",    <-- PK
  "OrderId": "O-2024-01", <-- SK
  "Total":   149.99
}

Local Secondary Index (LSI)

  • Gleicher Partition Key wie Basistabelle, aber anderer Sort Key
  • Alternative Sortierung und Filterung innerhalb einer Partition
  • Muss beim Erstellen der Tabelle definiert werden
  • Maximal 5 LSIs pro Tabelle
  • Starke Konsistenz möglich
  • Teilt Kapazität mit der Basistabelle

Global Secondary Index (GSI)

  • Eigener Partition Key und optionaler Sort Key
  • Abfragen nach beliebigen Attributen möglich
  • Kann jederzeit erstellt oder gelöscht werden
  • Eigene Lese- und Schreibkapazität
  • Nur Eventually Consistent Reads
  • Maximal 20 GSIs pro Tabelle (Standard-Limit)

Kapazitätsmodi

Provisioned

  • Feste Anzahl Read Capacity Units (RCU) und Write Capacity Units (WCU)
  • 1 RCU = 1 strongly consistent Read (4 KB) oder 2 eventually consistent Reads
  • 1 WCU = 1 Write bis 1 KB
  • Auto-Scaling möglich
  • Günstiger bei vorhersehbarer Last

On-Demand

  • Keine Kapazitätsplanung notwendig
  • Bezahlung pro Request (Pay-per-request)
  • Automatische Skalierung auf jede Last
  • Geeignet für unbekannte oder stark schwankende Last
  • Höhere Kosten pro Request als Provisioned

Lese- und Schreiboperationen

  • GetItem: einzelnes Item über Primary Key abrufen
  • PutItem: Item einfügen oder vollständig ersetzen
  • UpdateItem: einzelne Attribute eines Items ändern
  • DeleteItem: einzelnes Item löschen
  • Query: effiziente Abfrage über Partition Key (+ optionaler Sort Key Bedingung)
  • Scan: vollständiger Tabellen-Scan, alle Items werden gelesen (ineffizient)
  • BatchGetItem / BatchWriteItem: mehrere Items auf einmal lesen / schreiben

Konsistenz

  • Eventually Consistent Read (Standard): geringere Kosten (0,5× RCU), Daten ggf. kurz veraltet
  • Strongly Consistent Read: aktuellste Daten, 1× RCU, höhere Latenz
  • GSI-Lesezugriffe sind immer eventually consistent
  • Transaktionen möglich für ACID-Anforderungen

Transaktionen

  • TransactWriteItems: atomares Schreiben über mehrere Items / Tabellen
  • TransactGetItems: konsistentes Lesen mehrerer Items in einer Operation
  • ACID-Garantien: Atomarität, Konsistenz, Isolation, Dauerhaftigkeit
  • Bis zu 100 Items oder 4 MB pro Transaktion
  • Kosten: 2× WCU bzw. 2× RCU im Vergleich zu nicht-transaktionalen Operationen
  • Kein Cross-Region-Support (nur innerhalb einer Region)

DynamoDB Streams

  • Change Data Capture (CDC): Protokoll aller Änderungen
  • Ereignisse: INSERT, MODIFY, REMOVE
  • Aufbewahrungsdauer: 24 Stunden
  • Integration mit AWS Lambda
  • TTL (Time to Live): automatisches Löschen abgelaufener Items
  • Grundlage für Global Tables

Global Tables

  • Multi-Region-Replikation: Tabelle in mehreren AWS-Regionen aktiv
  • Active-Active: Lese- und Schreibzugriffe in jeder Region
  • Eventual Consistency zwischen Regionen (< 1 Sekunde)
  • Konfliktauflösung: Last-Write-Wins
  • Basiert auf DynamoDB Streams
  • Niedrige Latenz für globale Nutzer

Links zu AWS Videos

Präsentation Seiten im PDF Link PDF Link Video
DeBrie, Kumar 17-105 link link
Hunter 1-18 link link1, link2