Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Übersicht über DynamoDB
Amazon DynamoDB ist eine NoSQL-Schlüsselwert- und Dokumentdatenbank, die schnelle und planbare Leistung nahtlos skalierbar bereitstellt. Es ist eine vollständig verwaltete, regionenübergreifende, multiaktive und langlebige Datenbank. (Die globale Tabellenfunktion in DynamoDB synchronisiert Änderungen, die in einerAWS Region vorgenommen wurden, automatisch mit allen anderen ausgewählten Regionen, um multiaktive Unterstützung zu bieten.) DynamoDB verfügt über integrierte Sicherheitsfunktionen, Sicherungs- und Wiederherstellungsoptionen sowie In-Memory-Caching für internetfähige Anwendungen.
Die schemalose Natur von NoSQL-Datenbanken trägt dazu bei, die Zeit und den Prozess zu reduzieren, die erforderlich sind, um eine Datenbankänderung (Leseschema) in die Produktion zu bringen, und ermöglicht so eine schnelle Anwendungsentwicklung (RAD). NoSQL-Datenbanken wie DynamoDB sind für leistungsstarke Lese-/Schreibvorgänge konzipiert.
Funktionen und Vorteile
DynamoDB bietet die folgenden Funktionen und Vorteile:
-
Keine zu verwaltenden Server — DynamoDB ist ein vollständig verwalteter NoSQL-Datenbankdienst, was bedeutet, dass kein Serverwartungsaufwand anfällt.
-
Schemaless — DynamoDB unterstützt die schnelle Entwicklung und Bereitstellung von Anwendungen.
-
Skalierbare Leistung — DynamoDB bietet schnelle und vorhersehbare Leistung mit nahtloser Skalierbarkeit.
-
ACID-Unterstützung — DynamoDB unterstützt Atomicity, Konsistenz, Isolation und Durability (Atomicity, Isolation, Isolation, Isolation, Consistency, Isolation, Isolation, Isolation, Isolation, Durability, Atomicity, Isolation
-
Hohe Verfügbarkeit und Beständigkeit — Ihre Daten werden auf Solid State Disks (SSDs) gespeichert und automatisch über mehrere Availability Zones in einerAWS -Region repliziert, um integrierte Hochverfügbarkeit und Datenhaltbarkeit bereitzustellen.
-
Automatische Skalierung — DynamoDB verwendet denAWS Application Auto Scaling Service, um die bereitgestellte Durchsatzkapazität als Reaktion auf Datenverkehrsmuster dynamisch anzupassen.
-
Flexible Preisoptionen — DynamoDB bietet zwei Kapazitätsmodi mit spezifischen Abrechnungsoptionen: den Modus der On-Demand-Kapazität und den Modus bereitgestellter Kapazität.
-
oint-in-time P-Wiederherstellung — Sie können kontinuierliche Backups mithilfe von point-in-time Recovery aktivieren, um Ihre Tabellen vor versehentlichen Schreib- oder Löschvorgängen zu schützen und Ihre Tabellen zu einem beliebigen Zeitpunkt der letzten 35 Tage wiederherzustellen.
-
Time to Live (TTL) — Sie können Elemente nach einer bestimmten Dauer automatisch aus einer DynamoDB-Tabelle löschen.
-
Globale Tabellen — Sie können mehrere Replikate regionsübergreifendAWS bereitstellen, ohne Ihre eigene Replikationslösung erstellen zu müssen.
-
Globale sekundäre Indizes — Sie können Ihre DynamoDB-Tabelle abfragen, indem Sie Partitions- und Sortierschlüssel verwenden, die sich von den eigenen Partitions- und Sortierschlüsseln der Tabelle unterscheiden.
-
DAX — Der Caching-Dienst DynamoDB Accelerator (DAX) bietet Reaktionszeiten unter einer Millisekunde für Leseoperationen.
-
DynamoDB Streams — Diese Funktion stellt eine zeitlich geordnete Abfolge von Änderungen auf Elementebene in einem Protokoll bereit, um die Nachverfolgung und Benachrichtigung über Änderungen in DynamoDB-Tabellen in Echtzeit zu unterstützen.
Weitere Informationen zu diesen Vorteilen finden Sie auf derAWS Website unter Amazon DynamoDB DynamoDB-Funktionen
Partitionsschlüssel
DynamoDB ist schemallos, daher müssen nicht alle Attribute für eine Tabelle definiert werden. Das Partitionsschlüsselattribut ist erforderlich und der Sortierschlüssel optional. Die restlichen Attribute sind beliebig und können je nach Artikel variieren. Wir empfehlen, einen Partitionsschlüssel mit hoher Kardinalität zu wählen, damit sich häufig aufgerufene Elemente nicht auf derselben Partition befinden. Diese Vorgehensweise hilft Ihnen, Ungleichgewichte beim Datenzugriff und heiße Partitionen zu vermeiden. Weitere Informationen finden Sie unter Bewährte Methoden für das Entwerfen und die effektive Verwendung von Partitionsschlüsseln in der DynamoDB-Dokumentation.
Indizes
Indexe ermöglichen Ihnen den Zugriff auf alternative Abfragemuster und können Abfragen beschleunigen. Sie sollten Indizes sorgfältig erstellen, unabhängig davon, ob Sie eine relationale Datenbank oder DynamoDB verwenden. Bei jedem Schreibvorgang in einer Tabelle müssen alle Indexe für diese Tabelle aktualisiert werden.
Ein globaler sekundärer Index enthält eine Auswahl von Attributen aus der Basistabelle. Diese sind jedoch nach einem Primärschlüssel organisiert, der sich vom Primärschlüssel der Tabelle unterscheidet. In DynamoDB sind globale sekundäre Indizes standardmäßig spärlich. Das heißt, der Sortierschlüssel ist optional und erscheint nicht in jedem Tabellenelement. Um diese Funktion zu nutzen, können Sie globale sekundäre Indizes erstellen, die nur die erforderlichen Attribute speichern und projizieren. Sie können bis zu 20 globale sekundäre Indexe in einer DynamoDB-Tabelle speichern. Weitere Informationen zu diesem Feature finden Sie unter Verwenden von globalen sekundären Indexen in DynamoDB in der DynamoDB-Dokumentation.
Zeit zum Leben
Sie können eine Time to Live (TTL) -Eigenschaft für eine DynamoDB-Tabelle festlegen, um einen Zeitstempel pro Element (Datensatz) zu definieren, um anzugeben, wann ein Element nicht mehr benötigt wird. Kurz nach dem angegebenen Zeitstempel löscht DynamoDB das Element aus der Tabelle, ohne zusätzliche Kapazitätseinheiten zu verbrauchen. Weitere Informationen zu dieser Funktion finden Sie unter Expiring items by using DynamoDB Time to Live in der DynamoDB-Dokumentation.
Preismodelle
DynamoDB bietet zwei Preismodelle zur Auswahl: bereitgestellte Kapazität und On-Demand-Kapazität. Ihre Wahl des Preismodells hängt von Ihren prognostizierten Workloads ab.
Preismodell | Art der Arbeitslast | Kosten | Lese-/Schreibdurchsatz |
---|---|---|---|
Bereitgestellte Kapazität | Vorhersagbar | Niedriger | Sie geben die Anzahl der Lese-/Schreibvorgänge pro Sekunde als Lesekapazitätseinheiten (RCUs) und als Schreibkapazitätseinheiten (WCUs) an. Beispiel:
Sie können die automatische Skalierung aktivieren, um die Kapazität an Verkehrsänderungen anzupassen. |
Kapazität auf Abruf | Dynamisch | Höher | Sie geben keine Durchsatzanforderungen an. DynamoDB passt sich Ihren Workloads automatisch an. Ihnen werden die Lese- und Schreibvorgänge, die Ihre Anwendung in Ihren Tabellen durchführt, als Leseanforderungseinheiten und als Schreibanforderungseinheiten in Rechnung gestellt. Beispiel:
|
Weitere Informationen zu diesen beiden Modellen finden Sie unter Lese-/Schreibkapazitätsmodus in der DynamoDB-Dokumentation.
Transaktionen
DynamoDB unterstützt ACID (Atomicity, Consistency, Isolation, Isolation, Isolation, Isolation, Isolation, Isolation, Consistency, Isolation, Isolation, Isolation, Isolation, Isolation,AWS Isolation, IsolationAWS, Isolation
Um Änderungen an mehreren Elementen innerhalb und zwischen Tabellen zu verwalten, können Sie die TransaktionsTransactWriteItems
- undTransactGetItems
APIs von DynamoDB verwenden.
-
TransactWriteItems
ist eine Batch-Operation, die einen Schreibsatz mit einer oder mehrerenPutItem
UpdateItem
, undDeleteItem
Aktionen enthält.TransactWriteItems
kann optional überprüfen, ob die Voraussetzungen erfüllt sein müssen, bevor Aktualisierungen vorgenommen werden. Diese Bedingungen können dieselben Elemente wie die im Schreibsatz oder verschiedene Elemente beinhalten. Wenn eine Bedingung nicht erfüllt ist, wird die Transaktion abgelehnt. -
TransactGetItems
ist eine Batch-Operation, die einen Lesesatz mit einer oder mehrerenGetItem
Aktionen enthält. Wenn Sie eineTransactGetItems
Anfrage für ein Element stellen, das Teil einer aktiven Schreibtransaktion ist, wird die Lesetransaktion storniert. Um den zuvor festgelegten Wert abzurufen, können Sie einen Standard-Lesevorgang verwenden.
Weitere Informationen zu diesen APIs finden Sie in der DynamoDB-Dokumentation unter Amazon DynamoDB-Transaktionen: So funktioniert es.
Einschränkungen
Für transaktionale DynamoDB-API-Operationen gelten die folgenden Einschränkungen:
-
Eine Transaktion kann nicht mehr als 100 eindeutige Elemente aktualisieren.
-
Eine Transaktion darf nicht mehr als 4 MB Daten enthalten.
-
Zwei Aktionen gleichzeitig dürfen nicht auf dasselbe Element in der derselben Tabelle einwirken. Beispielsweise können Sie in einer Transaktion nicht
ConditionCheck
sowohlUpdate
AND-Aktionen für denselben Artikel ausführen. -
Eine Transaktion kann nicht auf Tabellen in mehr als einem AWS-Konto oder mehr als einer -Region einwirken.
-
Transaktionsoperationen bieten ACID-Garantien nur innerhalb derAWS Region, in der der Schreibvorgang ursprünglich stattfindet. Regionsübergreifende Transaktionen werden in globalen Tabellen nicht unterstützt.
-
Das Objektpersistenzmodell unterstützt keine Transaktionen. Um die Transaktionsfunktion verwenden zu können, müssen Sie mithilfe der DynamoDB-Low-Level-API auf die Datenbank und die Tabellen zugreifen.
Große Komponenten
DynamoDB hat eine Größenbeschränkung von 400 KB für jedes Element. Dieses Limit umfasst sowohl den Attributnamen (binäre Länge mit UTF-8-Codierung) als auch den Attributwert (ebenfalls binäre Länge). Der Attributname wird bei der Größenbeschränkung berücksichtigt. Stellen Sie sich beispielsweise ein Element mit zwei Attributen vor: ein Attribut mit dem Namen „Country-Code“ mit dem Wert „IN“ und ein weiteres Attribut namenscountry-phone-prefix "" mit dem Wert „91". Die Gesamtgröße dieses Elements beträgt 36 Byte.
Problemumgehung
Wenn ein Element mit vielen Attributen und Eigenschaften oder einer großen Datenmenge verknüpft ist, kann seine Größe 400 KB überschreiten. In diesem Fall können Sie das serialisierte Element in Amazon Simple Storage Service (Amazon S3) im JSON-Format speichern und die Amazon S3-Position als Attribut (S3Location
) in dem Element speichern. Lese- und Schreibvorgänge für dieses Element rufen das S3-Objekt ab und aktualisieren die JSON-Zeichenfolge. Der Primärschlüssel, der Sortierschlüssel und alle Attribute, die von lokalen Indizes und globalen Sekundärindizes verwendet werden, sollten zusammen mit demS3Location
Attribut in der Tabelle gespeichert werden. Dies erfordert zusätzliche Logik in der Anwendung (Datenzugriffsebene), um nach demS3Location
Attribut zu suchen und die vollständigen Artikeldaten von Amazon S3 abzurufen.
Backup und Backup
Die Unterstützung von Backup- und Wiederherstellungsfunktionen wird in jeder Datenbank häufig erwartet. DynamoDB unterstützt von Haus aus Sicherungs- und Wiederherstellungsvorgänge innerhalb desselben Kontos, Sie können jedoch mithilfe anderer Optionen oder Prozesse Tabellen für mehrere Konten kopieren. Diese Prozesse verbrauchen keine Lese-/Schreibkapazitätseinheiten. Weitere Informationen finden Sie im Leitfaden Kontoübergreifende Optionen zum Kopieren vollständiger Tabellen für Amazon DynamoDB auf derAWS Prescriptive Guidance-Website.
Einschränkungen
DynamoDB unterstützt derzeit die kontoübergreifende Sicherung und Wiederherstellung mithilfe AWS Backup, das Konto muss jedoch Teil derselben Organisation sein. Sie können diese Einschränkung beheben, indem Sie eine der folgenden Lösungen anwenden:
-
Benutzerdefinierte Implementierung in einer Programmiersprache Ihrer Wahl (z. B. .NET, Java oder Python) mithilfe eines AWSSDK. Sie können Elemente aus der Quelltabelle in Konto A scannen und items (
BatchWrite
) in eine Tabelle in Konto B schreiben. Sie können diesen Code auf dem Server, auf einem lokalen Computer oder inAWS Lambda (wenn die Datenbank klein ist und die Ausführung des Skripts weniger als 15 Minuten dauert) ausführen. Weitere Informationen finden Sie auf der WebsiteAWS Prescriptive Guidance unter dem Muster Amazon DynamoDB-Tabellen kontenübergreifend mit einer benutzerdefinierten Implementierung kopieren. -
Verwenden von AWS Data Pipeline Sie können aus der Quelltabelle exportieren (scannen) und in die Zieltabelle importieren (schreiben). Weitere Informationen finden SieAWS Data Pipeline in der DynamoDB-Dokumentation unter Exportieren und Importieren von DynamoDB-Daten mithilfe.
-
Verwenden von AWS Glue Informationen zu dieser Option finden Sie im Leitfaden Kontoübergreifende Optionen zum Kopieren vollständiger Tabellen für Amazon DynamoDB auf derAWS Prescriptive Guidance-Website.
Sprach- und SDK-Unterstützung
Die AWSSDKs bieten eine vereinfachte Programmierschnittstelle fürAWS Dienste und Unterstützung für .NET, Java JavaScript, Node.js, Python, PHP und Ruby.
Sie können aus drei Mustern wählen, um mithilfe einesAWS SDK auf DynamoDB-Tabellen zuzugreifen: Objektpersistenzmodell (High-Level-Schnittstelle), Dokumentschnittstellen und Low-Level-Schnittstellen. Weitere Informationen finden Sie unter Zugriffsmuster weiter unten in diesem Leitfaden.