AWS Cloud
AWS Cloud
Erste Schritte mit Amazon DynamoDB

NoSQL-Datenbanken sind nicht relationale Datenbanken, die für skalierbare Leistung und schemalose Datenmodelle optimiert wurden. NoSQL-Datenbanken sind zudem für ihre einfache Entwicklung, geringe Latenz und Ausfallsicherheit umfassend bekannt. Sie nutzen eine Vielzahl von Datenmodellen, einschließlich spaltenbasierten, Dokument-, Graph- und Hauptspeicher-basierte Key-Value-Stores. Auf dieser Seite finden Sie einige Ressourcen, die Ihnen den Einstieg in die Verwendung von NoSQL-Datenbanken erleichtern.

PurposeBuilt-reInvent
58:35
Neuerungen für zweckgerichtete nicht relationale AWS-Datenbanken

NoSQL-Datenbanksysteme verwenden eine Vielzahl von Modellen zur Datenverwaltung, wie bei Hauptspeicher-basierte Key-Value Stores, Graph-Datenmodellen und Dokumentdatenbanken. Diese Typen von Datenbanken sind für Anwendungen optimiert, die große Datenmengen, geringe Latenz sowie flexible Datenmodelle erfordern. Dies erreicht man durch die Lockerung der Beschränkungen zur Datendurchgängigkeit von herkömmlichen relationalen Datenbanken.

NoSQL-Datenbanken eignen sich hervorragend für viele Big Data-Anwendungen, mobile Anwendungen und Webanwendungen, die eine größere Skalierung und eine schnellere Reaktionsfähigkeit als herkömmliche relationale Datenbanken erfordern. Aufgrund von einfacheren Datenstrukturen und horizontaler Skalierung, haben NoSQL-Datenbanken üblicherweise schnellere Reaktionszeiten und lassen sich einfacher skalieren als relationale Datenbanken.

Relationale Datenbankverwaltungssysteme (RDBMSs) und nicht relationale (NoSQL-) Datenbanken haben unterschiedliche Stärken und Schwächen. In RDBMSs können Daten flexibel abgerufen werden, aber Abfragen sind relativ teuer und lassen sich bei hohem Datenverkehr nicht gut skalieren. In einer NoSQL-Datenbank können Daten effizient mithilfe einer begrenzten Anzahl von Möglichkeiten abgerufen werden. Andernfalls können Abfragen aber teuer und langsam sein.

  Relationale Datenbanken NoSQL-Datenbanken
Datenmodell Beim relationalen Modell werden Daten in Tabellen normalisiert, die aus Zeilen und Spalten bestehen. Tabellen, Zeilen, Indizes, Beziehungen zwischen Tabellen und sonstige Datenbankelemente werden in einem Schema streng definiert. Bei NoSQL-Datenbanken wird in der Regel kein Schema erzwungen. Im Allgemeinen wird zum Abrufen von Werten, Spaltensätzen und semistrukturierten JSON-, XML- und sonstigen Dokumenten mit verwandten Elementattributen ein Partitionsschlüssel verwendet.
ACID-Eigenschaften Herkömmliche RDBMSs unterstützen die ACID-Eigenschaften einer relationalen Datenbank: Atomizität, Konsistenz, Isolation und Dauerhaftigkeit. Atomizität steht für das Prinzip "alles oder nichts": Eine Transaktion wird entweder vollständig ausgeführt oder gar nicht. Konsistenz bedeutet, dass die Daten nach dem Commit einer Transaktion mit dem Datenbankschema konform sein müssen. Isolation verlangt, dass parallel erfolgende Transaktionen getrennt voneinander ausgeführt werden müssen. Dauerhaftigkeit bezeichnet die Fähigkeit, bei einem unerwarteten System- oder Stromausfall den letzten bekannten Zustand wiederherstellen zu können. NoSQL-Datenbanken stellen häufig einen Kompromiss aus einem Teil der ACID-Eigenschaften herkömmlicher relationaler Datenbankverwaltungssysteme (RDBMS) und einer höheren Flexibilität des Datenmodells dar, das eine horizontale Skalierung ermöglicht. Aufgrund dieser Merkmale sind NoSQL-Datenbanken in solchen Situationen besonders geeignet, in denen sich bei herkömmlichen RDBMS die Beschränkungen der Architektur zeigen und Probleme mit Leistungsengpässen, Skalierbarkeit, Komplexität im Betrieb und einer Zunahme des Verwaltungs- und Support-Aufwands überwunden werden müssen.
Performance Die Leistung ist in der Regel vom Datenträger-Subsystem abhängig. Um die Spitzenleistung zu erzielen, ist eine Optimierung von Abfragen, Indizes und der Tabellenstruktur erforderlich. Die Leistung wird grundsätzlich durch die Größe des zugrunde liegenden Hardware-Clusters, die Netzwerklatenz und die aufrufende Anwendung bestimmt.
Skalierbarkeit Einfache vertikale Skalierung durch Einsatz schnellerer Hardware. Damit sich relationale Tabellen über ein verteiltes System erstrecken können, sind zusätzliche Investitionen erforderlich. Für eine horizontale Skalierung mit verteilten Clustern aus kostengünstiger Hardware entwickelt, um den Durchsatz ohne Erhöhung der Latenz zu steigern.
APIs Anforderungen zum Speichern und Abrufen von Daten werden mithilfe von Abfragen übermittelt, die in einer strukturierten Abfragesprache (Structured Query Language, SQL) verfasst sind. Diese Abfragen werden von RDBMSs analysiert und ausgeführt. Mit objektbasierten APIs können Anwendungsentwickler In-Memory-Datenstrukturen ganz einfach speichern und abrufen. Anwendungen können Schlüssel-Wert-Paare, Spaltensätze und semistrukturierte Dokumente mit serialisierten Anwendungsobjekten und -attributen mithilfe von Partitionsschlüsseln abfragen.
Tools SQL-Datenbanken verfügen in der Regel über eine umfassende Auswahl an Tools, die eine Entwicklung datenbankgestützter Anwendungen erleichtern. NoSQL-Datenbanken bieten im Allgemeinen Tools für die Verwaltung von Clustern und Skalierung. Anwendungen bilden die primäre Schnittstelle für die zugrunde liegenden Daten.
15

Es gibt vier beliebte Arten von NoSQL-Datenbanken: spaltenbasierte, Dokument-, Graph- und Hauptspeicher-basierte Key-Value-Datenbanken. Diese Datenbanken unterscheiden sich im Grunde darin, wie die Daten gespeichert werden, wie darauf zugegriffen wird und wie sie strukturiert sind. Außerdem sind sie für unterschiedliche Anwendungsfälle und Anwendungen optimiert. 

  1. Spaltenbasierte Datenbanken wurden zum Lesen und Schreiben von Datenspalten (anstatt Datenzeilen) optimiert. Spaltenorientierter Speicher für Datenbanktabellen ist bei der analytischen Abfrage ein wichtiger Faktor, da sich die E/A-Anforderungen von Festplatten dadurch insgesamt drastisch reduzieren. Auch die von der Festplatte zu ladende Datenmenge verringert sich.
  2. Dokumentdatenbanken wurden entwickelt, um teilweise strukturierte Daten als Dokumente zu speichern, in der Regel im JSON- oder XML-Format. Im Gegensatz zu konventionellen relationalen Datenbanken kann das Schema jedes NoSQL-Dokuments variieren. Dies ermöglicht Ihnen eine flexiblere Organisation und Speicherung von Anwendungsdaten. Zudem reduziert sich der für optionale Werte erforderliche Speicher.
  3. Graphdatenbanken speichern Scheitelpunkte und gerichtete Verbindungen, die als Kanten bezeichnet werden. Graph-Datenbanken können sowohl auf SQL- als auch auf NoSQL-Datenbanken basieren. Eckpunkte und Kanten können jeweils Eigenschaften zugeordnet werden. 
  4. Hauptspeicher-basierte Key-Value Stores sind NoSQL-Datenbanken, die für leselastige Anwendungsarbeitslasten (z. B. soziale Netzwerke, Spiele, Medienfreigaben und Q&A-Portale) oder rechenintensive Arbeitslasten (z. B. eine Empfehlungs-Engine) optimiert wurden. Das In-Memory-Caching verbessert die Anwendungsleistung, da wichtige Daten im Arbeitsspeicher abgelegt und mit geringer Latenz abgerufen werden können.
SQL
MongoDB (NoSQL) DynamoDB (NoSQL) Cassandra (NoSQL) Couchbase (NoSQL)
Tabelle Sammlung Tabelle Tabelle Daten-Bucket
Zeile Dokument
Element Zeile Dokument
Spalte
Feld Attribut Spalte Feld
Primärschlüssel
Objekt-ID
Primärschlüssel Primärschlüssel Dokument-ID
Index Index Sekundärer Index Index
Index
Anzeigen Anzeigen Globaler sekundärer Index Materialisierte Ansicht Anzeigen
Verschachtelte(s) Tabelle oder Objekt
Eingebettetes Dokument Map Map Map
Array
Array Liste Liste Liste

Der Einstieg in Amazon DynamoDB ist ganz einfach. Erstellen Sie mithilfe unseres Handbuchs Erste Schritte in nur wenigen Klicks Ihre erste DynamoDB-Tabelle.

Sie können auch das Whitepaper Bewährte Methoden bei der Migration – von RDBMS zu Amazon DynamoDB herunterladen, um bewährte Methoden für die Migration der Verarbeitungslasten von einem RDBMS zu DynamoDB kennenzulernen.

Erste Schritte mit Amazon DynamoDB