NoSQL-Datenbanken sollen den Ansprüchen moderner Anwendungen an Leistung, Skalierbarkeit und Flexibilität gerecht werden. In dieser Artikelreihe werfen wir einen Blick auf die Architektur und die verschiedenen Funktionalitäten von AWS DynamoDB.
Der exponentielle Anstieg der Datenmengen in den vergangenen Jahren ist nicht nur auf die schiere Größe der Daten zurückzuführen, sondern auch auf die zunehmende Vielfalt der Datenformate und -quellen. Traditionelle relationale Datenbanken stoßen aufgrund ihrer zeilenbasierten Architektur jedoch oft an ihre Grenzen, wenn es um die effiziente Verarbeitung großer und vielfältiger Datenmengen geht.
NoSQL-Datenbanken bieten eine flexible und skalierbare Alternative, die es Unternehmen ermöglicht, die wachsende Komplexität und Dynamik ihrer Daten zu bewältigen. In diesem Bereich ist Amazon Web Services (AWS) mit dem vollständig verwalteten Service DynamoDB einer der führenden Akteure. In dieser Serie untersuchen wir die Vorteile, Anwendungsfälle sowie Best Practices bei der Nutzung dieser Datenbank im Detail.
Was ist NoSQL?
NoSQL-Datenbanken, ein Sammelbegriff für „Not Only SQL“ oder „Not SQL“, umfassen eine vielfältige Gruppe von Datenbank-Management-Systemen, die sich von traditionellen relationalen Datenbanken unterscheiden. Diese Systeme wurden entwickelt, um den Anforderungen moderner Anwendungen gerecht zu werden, die große Mengen an unstrukturierten oder teilstrukturierten Daten verarbeiten müssen.
Die Vorteile von NoSQL-Datenbanken sind vielfältig. Beispielsweise bieten sie flexible Datenmodellierungsoptionen, die es Unternehmen ermöglichen, schnell auf sich ändernde Anforderungen und Datenstrukturen zu reagieren.
Durch ihre horizontale Skalierbarkeit können NoSQL-Datenbanken zudem effektiv mit wachsenden Datenmengen umgehen, indem sie verteilte Architekturen nutzen. Überdies bieten sie häufig eine verbesserte Leistung für spezifische Anwendungsfälle, wie Echtzeit-Analysen oder Echtzeit-Datenverarbeitung, da sie speziell dafür optimiert sind, schnellen Zugriff auf große Datenmengen zu ermöglichen.
DynamoDB
Seit ihrer Veröffentlichung im Jahr 2012 hat sich Amazon DynamoDB als eine der bekanntesten NoSQL-Datenbanken in der Cloud etabliert. Als Platform-as-a-Service- oder kurz PaaS-Angebot von AWS ist DynamoDB eine vollständig verwaltete Datenbanklösung, die Entwicklern die Aufgabe der Infrastruktur-Provisionierung abnimmt.
DynamoDB ist eine dokumentenorientierte Key-Value-Datenbank. Dies ermöglicht eine hohe Flexibilität bei der Erstellung und Anpassung des Datenbankschemas und bietet dank der Key-Value-Struktur außergewöhnlich schnelle Abfragegeschwindigkeiten mit standardmäßigen Antwortzeiten im einstelligen Millisekunden-Bereich.
Eine weitere Stärke liegt in der automatischen Datenreplikation über verschiedene Rechenzentren hinweg, was eine hohe Ausfallsicherheit gewährleistet. Die Funktion der „Global Tables“ ermöglicht es, Multi-Master-Setups über mehrere Regionen hinweg einzurichten. Zudem bietet DynamoDB die Möglichkeit, automatische Backups durchzuführen und Daten zu einem bestimmten Zeitpunkt wiederherzustellen.
DynamoDB kann als Datenbank für viele Anwendungen und Use Cases verwendet werden. Aus Gründen der Verständlichkeit der NoSQL-Datenbank sowie ihrer Konzepte und Einstellungen, wird in dieser Serie das Speichern von Spielerprofilen aus Computerspielen als Beispiel genutzt.
Use Case – Gaming-Profile
In einem Computerspiel-Szenario bietet AWS DynamoDB die notwendige Skalierbarkeit und Performance, um Millionen von Spielern effizient zu bedienen. Immerhin müssen Spieler in vielen modernen Spielen – insbesondere beim Online-Gaming – Profile erstellen, um mit den Inhalten zu interagieren.
Diese Spielerprofile enthalten in der Regel grundlegende Informationen wie den Benutzernamen, Spieldaten wie Gegenstände und Ausrüstungen, Spielaufzeichnungen wie Aufgaben und Aktivitäten sowie soziale Informationen wie Freundeslisten. Aufgrund der flexiblen Schlüsselstruktur von DynamoDB lassen sich unterschiedliche Datentypen effizient in einer einzigen Tabelle speichern und abfragen.
DynamoDB bietet durch seine hohe Skalierbarkeit und niedrige Latenzzeit eine optimale Lösung, um die komplexen und oft sehr frequentierten Lese- und Schreibvorgänge in einem Gaming-System zu bewältigen, wodurch eine nahtlose und reaktionsschnelle Spielerfahrung gewährleistet wird. In den folgenden Abschnitten wird der genaue Aufbau der DynamoDB erläutert, und es werden Beispiele anhand des Use Cases gegeben.
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.
Struktureller Aufbau DynamoDB
Die Struktur von Amazon DynamoDB folgt einer klaren Hierarchie, bei der Tabellen als die höchste Entität fungieren. Im Gegensatz zu relationalen Datenbanken, deren primäres Ziel oft eine umfassende Normalisierung ist, existieren in DynamoDB keine strikten Beziehungen zwischen Tabellen.
Fremdschlüsselbedingungen und Joins über mehrere Tabellen sind daher nicht möglich, weshalb die Informationen in denormalisierter Form gespeichert werden sollten. Jede Tabelle repräsentiert eine eigenständige und unabhängige Entität, was es ermöglicht, die Speicherung und Geschwindigkeit individuell auf Tabellenebene zu optimieren.
Die nächste Ebene der Struktur sind die sogenannten Items, die in relationalen Datenbanken den Zeilen entsprechen. In DynamoDB werden die Daten in Items in einem speziellen JSON-ähnlichen Format abgelegt. Jedes Item kann eine unbegrenzte Anzahl von Attributen enthalten, wobei das Limit von 400 KB pro Item eingehalten werden muss.
Ein Primärschlüssel pro Tabelle ist obligatorisch und kann aus einem oder zwei Attributen bestehen. Bei einem zusammengesetzten Primärschlüssel wird zwischen dem Partitionsschlüssel und dem Sortierschlüssel unterschieden.
Der Partitionsschlüssel fungiert als eindeutiger Identifier, der bestimmt, auf welcher Speicherpartition das Element abgelegt werden soll. Mehrere Datensätze können den gleichen Partitionsschlüssel besitzen und werden somit auf einer Partition abgelegt. Im Beispiel der Spielerdaten von Computerspielen wird als Partitionsschlüssel die Spieler-ID verwendet. Dadurch können unterschiedlichste Daten zu einem Spieler abgelegt werden, die alle den gleichen Schlüssel besitzen, was eine schnelle Ablage und Abfrage der Daten ermöglicht.
Da zu den einzelnen Spielern mehrere und unterschiedlichste Informationen wie Aufgaben, Equipment, Aktivitäten oder Metadaten vorhanden sind, ist es sinnvoll, die Informationen innerhalb einer Partition weiter zu organisieren. Hier kommt der Sortierschlüssel ins Spiel, der die Items innerhalb einer Partition weiter strukturiert. Der Sortierschlüssel ist optional und hilft, bei großen Datenmengen den korrekten Eintrag schnell zu finden.
Dank dieser Mechanismen ermöglicht DynamoDB die Verarbeitung und Bereitstellung von Daten mit einstelligen Millisekunden-Latenzen. Dabei wird ein Mix aus B-Tree und Hashing verwendet. Beim Schreiben der Items wird der Partitionsschlüssel, wie es bei Key-Value-Datenbanken üblich ist, in einen Hash umgewandelt. Dieser Hash wird in einem B-Tree-Index gespeichert. Der B-Tree-Index ermöglicht ein schnelles Traversieren des Baumes, während der Hash-Wert hilft, den korrekten Datensatz schnell zu identifizieren.
DynamoDB-Tabelle mit einem aus Partitions- und Sortierschlüssel zusammengesetzten Primärschlüssel .
(Bild: adesso SE)
In der vorangestellten Grafik wird die Struktur einer Tabelle anhand des Beispiels von Computerspieldaten ersichtlich. Hier setzt sich der Primärschlüssel aus einem Partitionsschlüssel (Spieler-ID) und einem Sortierschlüssel zusammen. Die einzelnen Attribute sind abhängig vom jeweiligen Typ des Sortierschlüssels. Für Metadaten des Spielers werden beispielsweise andere Informationen benötigt als für die Speicherung von Spielaktivitäten. Dadurch ist die Gestaltung der Tabellenstruktur sehr flexibel und kann dem jeweiligen Use Case entsprechend angepasst werden.
Nach der Einführung in die Grundlagen von NoSQL-Datenbanken und die Struktur von AWS DynamoDB liegt der Fokus nun auf den technischen Details. Im zweiten Teil werden wir die unterstützten Datentypen, sekundären Indizes und das Konsistenzmodell von DynamoDB im Detail untersucht, um ein umfassendes Verständnis der grundlegenden Funktionalitäten zu vermitteln.
* Ü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.