Die Amazon DynamoDB bietet mehrere Interaktionsmöglichkeiten wie die Management-Konsole und die Befehlszeilen-Schnittstelle. Doch erst mit den AWS SDKs, sprich Software Development Kits, lässt sich das volle Potenzial von DynamoDB ausschöpfen.
Über einen Stream erhält DynamoDB die Informationen über jede Änderung an den Datenelementen der Tabelle.
(Bild: Drilling / AWS Germany GmbH)
Über die AWS Management Console ist es möglich, grundlegende Operationen durchzuführen. Dies umfasst einen Überblick sowie detaillierte Informationen zu den provisionierten Tabellen und der bereitgestellten Kapazität. Darüber hinaus können Einstellungen zum Monitoring, zur Verschlüsselung und zu Backups vorgenommen werden. Zudem lassen sich hier neue Tabellen, Items und sekundäre Indizes erstellen, anpassen und löschen.
Ähnliche Funktionalitäten bietet das AWS Command Line Interface (CLI). Das AWS CLI ermöglicht es, Amazon-Services einschließlich DynamoDB über die Kommandozeile und automatisierte Skripte zu steuern. Das CLI eignet sich gut für Ad-hoc-Operationen wie das Erstellen von Tabellen.
Sowohl Management Console als auch Befehlszeilen-Schnittstelle ermöglichen eine interaktive Nutzung von DynamoDB. Um jedoch das volle Potenzial dieser NoSQL-Datenbank auszuschöpfen und Abfragen in eigenen Applikationen auszuführen, empfiehlt sich die Nutzung der AWS SDKs. Diese bieten umfassende Unterstützung für DynamoDB in Sprachen wie Java, JavaScript, .NET, Node.js, PHP, Python, Ruby, C++, Go, Android und iOS.
Die Abfragestruktur unterscheidet sich dabei erheblich von der in typischen relationalen Datenbanken. Während bei relationalen Datenbanken üblicherweise eine persistente Verbindung aufgebaut und SQL-Befehle verwendet werden, nutzt DynamoDB HTTP-Anfragen mit spezialisierten API-Operationen. Dadurch ist keine dauerhafte Datenbankverbindung erforderlich, was eine hohe Skalierbarkeit sowie schnelle und gleichzeitige Anfragebearbeitung ermöglicht.
API-Abfragen
Im Folgenden erläutert der Autor einige der wichtigsten API-Operationen zum Arbeiten mit DynamoDB und zeigt ein praktisches Beispiel für die Programmiersprache Python. Aber Achtung: Die Implementierung der Anfragen variiert stark zwischen den einzelnen unterstützten Sprachen. Für detailliertere Informationen sollte die AWS-Dokumentation konsultiert werden.
Erstellen von Daten
PutItem – Schreibt ein einzelnes Item in eine Tabelle, wobei der Primärschlüssel angegeben werden muss.
BatchWriteItem – Schreibt bis zu 25 Items in eine Tabelle. Batch-Operationen sind effizienter als mehrmaliges Aufrufen des Put-Aufrufs.
Lesen von Daten
GetItem – Ruft ein einzelnes Item basierend auf seinem Primärschlüssels aus einer Tabelle ab.
BatchGetItem – Ruft bis zu 100 Items aus einer oder mehreren Tabellen ab.
Query – Ruft alle Items ab, die einen bestimmten Partitionsschlüssel haben. Optional kann eine Bedingung für die Sortierschlüsselwerte festgelegt werden, sodass nur eine Teilmenge der Daten abgerufen wird, die denselben Partitionsschlüssel haben.
Scan – Ruft alle Items in der angegebenen Tabelle oder im Index ab. Hierbei können Filter Bedingungen angewendet werden, um die Teilmenge einzuschränken.
Aktualisieren von Daten
UpdateItem – Ändert ein oder mehrere Attribute in einem Item, wobei der Primärschlüssel des zu ändernden Items angegeben werden muss.
Löschen von Daten
DeleteItem – Löscht ein einzelnes Item aus einer Tabelle.
BatchWriteItem – Löscht bis zu 25 Elemente aus einer oder mehreren Tabellen.
Der Beispielcode im folgenden Abschnitt zeigt, wie man mithilfe von Python und der AWS SDK (boto3) ein Item aus einer DynamoDB-Tabelle abfragt.
# Beispiel-Python-Code, um vom DynamoDB-Client ein Objekt (Metadaten eines Spielers) zu erhaltenimport boto3# Initialisierung des DynamoDB-Clients dynamodb_client = boto3.client('dynamodb', region_name='eu-central-1')# Anfrage an die DynamoDB antwort = dynamodb_client.get_item( TableName="SPIELER_DATEN", Key={ 'Partitionsschlüssel': {'S': 'spieler001'}, 'Sortierungsschlüssel': {'S': 'METADATEN#spieler001'} } )# Ausgabe der Antwort if 'Item' in antwort: print(antwort['Item'])else: print("Kein Eintrag gefunden.")
TTL
Die Time-to-Live- oder TTL-Funktion von AWS DynamoDB ermöglicht die automatische Ablaufverwaltung von Datensätzen in einer Tabelle basierend auf einem festgelegten Ablaufdatum. Diese Funktion ist besonders nützlich für Anwendungen, die temporäre oder „verderbliche“ Daten verarbeiten, wie beispielsweise Sitzungsinformationen, temporäre Caches oder Ereignisprotokolle. Darüber hinaus hilft sie, Speicherplatz in der Tabelle zu sparen und die Datenintegrität zu gewährleisten, indem veraltete oder nicht mehr benötigte Datensätze automatisch entfernt werden.
Die Funktionsweise der TTL ist recht einfach: Jeder Datensatz in der DynamoDB-Tabelle kann ein optionales Ablaufdatum enthalten. Sobald die TTL für einen Datensatz abgelaufen ist, wird der Datensatz automatisch aus der Tabelle entfernt. Dieser Prozess wird von DynamoDB intern verwaltet, sodass Entwickler sich nicht um die manuelle Löschung abgelaufener Datensätze kümmern müssen.
Um die TTL-Funktion zu nutzen, muss lediglich ein TTL-Attribut (Zeitstempel) in der Tabelle definiert werden, dass das Ablaufdatum für jeden Datensatz speichert. Wird ein Datensatz unter Angabe eines Ablaufdatums eingefügt oder aktualisiert, überwacht DynamoDB dieses Datum automatisch und entfernt den Datensatz, sobald die TTL abgelaufen ist.
Streams
DynamoDB Streams ist eine Funktion von AWS DynamoDB, die Echtzeit-Änderungsdaten von einer Tabelle erfasst und in einem Stream speichert. Diese Streams ermöglichen es Entwicklern und Entwicklerinnen, Änderungen an den Daten in Echtzeit zu erfassen und darauf zu reagieren, ohne die Hauptdatenbank zu beeinträchtigen.
DynamoDB Streams erlauben es, Anwendungen zu erstellen, die reaktionsfähig auf Datenänderungen sind – zum Beispiel für die Durchführung von Echtzeit-Analysen, die Aktualisierung von Cache-Systemen oder die Auslösung von Benachrichtigungen und Workflow-Automatisierungen. Die Streams bieten eine zuverlässige und skalierbare Möglichkeit, um auf Datenänderungen in DynamoDB-Tabellen zu reagieren und damit eine nahtlose Integration in verschiedene Anwendungsszenarien zu ermöglichen.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Global Tables
Global Tables in DynamoDB ist eine Funktion, die es ermöglicht, Daten über mehrere AWS-Regionen hinweg zu replizieren und somit globale Verfügbarkeit und Redundanz für Anwendungen zu gewährleisten. Mit Global Tables können Entwickler ihre Daten in DynamoDB in verschiedenen geografischen Regionen replizieren lassen, um höhere Ausfallsicherheit und bessere Leistung für Endbenutzer weltweit zu erreichen.
Dabei werden die Daten in Echtzeit synchronisiert, sodass Änderungen in einer Region sofort in alle anderen Regionen repliziert werden. Dies ermöglicht eine nahtlose Skalierung und verbessert die Zugriffszeiten für Benutzer in verschiedenen geografischen Standorten. Global Tables bieten eine einfache Möglichkeit, globale Anwendungen zu entwickeln und dabei die hohe Verfügbarkeit und Skalierbarkeit von DynamoDB optimal zu nutzen.
Nach der detaillierten Erörterung der Nutzungsmöglichkeiten von AWS DynamoDB durch Entwickler, einschließlich der API-Schnittstellen und speziellen Funktionalitäten, erfolgt im letzten Teil der Serie eine Betrachtung der Best Practices. Darüber hinaus wird die Funktionsweise des DynamoDB Accelerator (DAX) beschrieben sowie die wichtigsten Erkenntnisse aus dieser Artikelreihe zusammengefasst.
* Über den Autor Yannik Rust arbeitet als Consultant bei adesso SE, wo er in diversen Cloud-Migrationsprojekten umfangreiche Erfahrungen mit verschiedenen SQL- und NoSQL-Datenbanken gesammelt hat. Als Experte auf dem Gebiet der Datenbank-Technologien berät Yannik Kunden aus unterschiedlichen Wirtschaftssektoren und unterstützt aktuell ein groß angelegtes Datenmigrationsprojekt in die AWS-Cloud unter Einbeziehung verschiedener NoSQL-Datenbanken und Cloud-Services. Yannik hält einen Abschluss in Wirtschaftsinformatik und ist zertifizierter AWS-Datenbankingenieur. Sein Fachwissen und seine praktische Erfahrung machen ihn zu einem gefragten Ansprechpartner für komplexe Datenbank-Architekturen und Cloud-Infrastrukturen.