DynamoDB ist ein schneller vollständig verwalteter NoSQL-Datenbankservice, mit dessen Hilfe beliebig große Datenmengen einfach und wirtschaftlich gespeichert und abgerufen sowie sämtliche Datenverkehrsanforderungen erfüllt werden können. Alle Datenelemente werden auf Solid State-Laufwerken (SSD) gespeichert und zwischen drei Availability Zones repliziert, um hohe Verfügbarkeit und Datenbeständigkeit zu gewährleisten.
Mit DynamoDB können Sie den administrativen Aufwand von Betrieb und Skalierung hoch verfügbarer verteilter Datenbank-Cluster auslagern und zahlen nur einen geringen Preis für die tatsächlich in Anspruch genommenen Ressourcen.
Führen Sie jeden Monat kostenlos bis zu 40 Mio. Vorgänge durch. Details anzeigen »
So können Sie Amazon DynamoDB nutzen:
Skalierbar – Amazon DynamoDB wurde für nahtlose Skalierung von Durchsatz und Speicher entwickelt.
Schnelle, planbare Leistung – Die durchschnittlichen Service-seitigen Latenzen für Amazon DynamoDB liegen normalerweise im einstelligen Millisekundenbereich. Der Service wird auf Solid State-Laufwerken (SSDs) ausgeführt und ist so konzipiert, dass er für jede Größenordnung konsistente, geringe Latenzen aufweist.
Einfache Verwaltung – Amazon DynamoDB ist ein vollständig verwalteter Service – Sie brauchen lediglich eine Datenbanktabelle zu erstellen und überlassen dem Service den Rest. Sie brauchen sich nicht um Bereitstellung, Setup und Konfiguration von Hardware oder Software, um Software-Patching, um den Betrieb eines zuverlässigen, verteilten Datenbank-Clusters oder um die Partitionierung der Daten über mehrere Instanzen während der Skalierung zu kümmern.
Integrierte Fehlertoleranz – Amazon DynamoDB verfügt über eine integrierte Fehlertoleranz. Durch automatische und synchrone Replikation Ihrer Daten über mehrere Availability Zones in einer Region wird hohe Verfügbarkeit und der Schutz Ihrer Daten vor Ausfällen einzelner Computer oder ganzer Standorte gewährleistet.
Flexibilität – Amazon DynamoDB verfügt über kein festes Schema. Jedes Datenelement kann über eine unterschiedliche Anzahl von Attributen verfügen. Unterschiedliche Datentypen (Zeichenfolgen, Zahlen, Binärdaten sowie Sätze) erweitern die Möglichkeiten des Datenmodells.
Starke Konsistenz, atomare Zähler – Im Gegensatz zu vielen nicht relationalen Datenbanken erleichtert Amazon DynamoDB die Entwicklung durch Verwendung von "Strongly Consistent"-Lesevorgängen, um sicherzustellen, dass immer die neuesten Werte gelesen werden. Amazon DynamoDB unterstützt zahlreiche systemeigene Datentypen (Zahlen, Zeichenfolgen, Binärdaten und mehrwertige Attribute). Der Service bietet auch systemeigene Unterstützung atomarer Zähler, wodurch es möglich ist, numerische Attribute mit einem einzigen API-Aufruf zu inkrementieren oder zu dekrementieren.
Kosteneffizienz – Amazon DynamoDB ist auf äußerste Kosteneffizienz für Datenaufkommen jeglicher Größenordnung ausgerichtet. Sie können mit einem kostenlosen Nutzungskontingent beginnen, das über 40 Millionen Datenbankoperationen pro Monat umfasst. Darüber hinaus verbrauchte Ressourcen werden zu niedrigen Stundensätze abgerechnet. Durch die einfache Verwaltung und die günstigen Anforderungspreise bietet DynamoDB, verglichen mit dem Betrieb einer relationalen oder nicht relationalen Datenbank im eigenen Unternehmen, wesentlich niedrigere Gesamtbetriebskosten (TCO) für Ihr Datenaufkommen.
Sicherheit – Amazon DynamoDB setzt bewährte Kryptografiemethoden für die Authentifizierung der Benutzer ein, um den unberechtigten Zugriff auf Daten zu verhindern. Amazon DynamoDB erlaubt zudem die Integration mit AWS Identity and Access Management (IAM), um eine fein abgestimmte Zugriffskontrolle für die Benutzer innerhalb Ihres Unternehmens zu definieren.
Integrierte Überwachung – Amazon DynamoDB zeigt wichtige Betriebskennzahlen für Ihre Tabelle in der AWS Management Console an. Der Service ermöglicht außerdem die Integration mit Amazon CloudWatch, sodass Sie Anforderungsdurchsatz und Latenz für jede Amazon DynamoDB-Tabelle anzeigen und Ihren Ressourcenverbrauch einfach überwachen können.
Elastic MapReduce-Integration – Amazon DynamoDB ermöglicht die Integration mit Amazon Elastic MapReduce (Amazon EMR). Amazon EMR ermöglicht Unternehmen die Durchführung komplexer Analysen großer Datasets unter Verwendung eines gehosteten leistungsbasierten Hadoop-Frameworks in AWS. Mit der Markteinführung von Amazon DynamoDB können Kunden in DynamoDB gespeicherte Datasets mühelos mit Amazon EMR analysieren und die Ergebnisse in Amazon Simple Storage Service (Amazon S3) archivieren. Die ursprünglichen Datasets in DynamoDB bleiben dabei unverändert erhalten. Mit Amazon EMR können Unternehmen auch auf Daten in mehreren Speichern zugreifen (d. h. Amazon DynamoDB, Amazon RDS und Amazon S3), komplexe Analysen über dieses kombinierte Dataset ausführen und die Ergebnisse dieser Arbeit in Amazon S3 speichern.
DynamoDB bietet eine reibungslose Skalierung von Durchsatz und Speicherung über die API und eine benutzerfreundliche Verwaltungskonsole, damit Sie Ihre Umgebung an Ihre Anforderungen anpassen können. Viele unserer Kunden haben per Mausklick DynamoDB-Bereitstellungen binnen Minuten erstellt, mit denen jährlich drei Billionen Datenbankanforderungen erfüllt werden können.
DynamoDB-Tabellen haben keine festen Schemas und jedes Element kann unterschiedlich viele Attribute aufweisen. Das Datenmodell unterstützt mehrere Datentypen. Durch lokale sekundäre Indizes können Sie Abfragen flexibler ausführen, ohne dass die Leistung beeinträchtigt wird.
Aufgrund der SSD-Speicherung und automatischen 3-Wege-Replikation sind Leistung, Zuverlässigkeit und Sicherheit vorprogrammiert. Amazon DynamoDB setzt bewährte Kryptografiemethoden für die Authentifizierung der Benutzer ein, um den unberechtigten Zugriff auf Daten zu verhindern.
Weitere Informationen zu den Funktionen und Vorteilen von DynamoDB »
Für DynamoDB fallen keine Vorauszahlungen an und Sie zahlen nur das, was Sie nutzen. Die Preisgestaltung ist einfach, denn Sie zahlen eine Stundenpauschale basierend auf der reservierten Kapazität. Beim Erstellen oder Aktualisieren Ihrer Amazon DynamoDB-Tabelle geben Sie an, wie viel Kapazität Sie für Lese- und Schreibvorgänge reservieren möchten. DynamoDB verteilt die Daten und den Datenverkehr für die Tabelle automatisch auf eine ausreichende Anzahl von Servern, um Ihre Anforderungen an den Durchsatz zu erfüllen, und sorgt zugleich für eine einheitliche, schnelle Leistung.
Mit unserem monatlichen kostenlosen Kontingent können Sie in DynamoDB einsteigen. DynamoDB-Kunden erhalten 100 MB kostenlosen Speicher, sowie bis zu 5 Schreibvorgänge pro Sekunde und 10 Lesevorgänge pro Sekunde laufende Durchsatzkapazität. Sie können diesen kostenlosen Speicher und Durchsatz für monatlich bis zu 40 Mio. kostenlose "Eventually Consistent"-Lesevorgänge bzw. 25 Mio. "Strictly Consistent"-Lesevorgänge nutzen.
Bei Amazon ist DynamoDB mittlerweile erste Wahl bei allen Verarbeitungslasten, die nicht die Flexibilität einer relationalen Datenbank wie Oracle oder MySQL erfordern. Kunden berichten uns, dass Sie diese Vorgehensweise übernehmen, insbesondere in den Bereichen digitale Werbung, Gaming in sozialen Netzwerken und vernetzte Geräteanwendungen, in denen eine hohe Verfügbarkeit, nahtlose Skalierbarkeit, zuverlässige Leistung und kurze Latenz entscheidend sind.
Wenn Sie Ihre Anwendungen für Amazon DynamoDB entwickeln, können Sie klein anfangen und Ihre Anforderungskapazität für eine Tabelle erweitern, sobald Ihr Bedarf steigt, und zwar, ohne dass es dabei zu Ausfallzeiten kommt und ohne dass Sie eine einzige Codezeile schreiben oder ändern müssen. Amazon DynamoDB bietet für jede Größenordnung eine vollständig verwaltete Umgebung.
Nach Durcharbeiten unseres Handbuchs "Erste Schritte können Sie den Betrieb mit DynamoDB binnen Minuten aufnehmen. DynamoDB ist direkt mit Amazon S3 und Amazon Redshift integriert. Mithilfe von AWS Data Pipeline können Sie Daten aus Amazon Elastic MapReduce, Amazon RDS und Ihren Amazon EC2-Datenbanken abrufen, sodass Sie über einige wenige einfache Schritte Daten aus mehreren Quellen kombinieren und analysieren können.
Die webbasierten Anwendungen von heute erstellen und verbrauchen große Datenmengen. Beispielsweise beginnt ein Online-Spiel nur mit wenigen tausend Benutzern und mit einer geringen Datenbankarbeitslast von nur 10 Schreib- und 50 Lesevorgängen pro Sekunde. Wenn das Spiel jedoch erfolgreicher wird, wächst seine Benutzeranzahl möglicherweise schnell auf mehrere Millionen an und erzeugt zehntausende (oder sogar hunderttausende) von Schreib- und Lesevorgängen pro Sekunde. Auch können pro Tag mehrere Terabyte an Daten erzeugt werden. Wenn Sie Ihre Anwendungen für Amazon DynamoDB entwickeln, können Sie klein anfangen und Ihre Anforderungskapazität für eine Tabelle erweitern, sobald Ihr Bedarf steigt, und zwar, ohne dass es dabei zu Ausfallzeiten kommt und ohne dass Sie eine einzige Codezeile schreiben oder ändern müssen. Amazon DynamoDB bietet für jede Größenordnung eine vollständig verwaltete Umgebung.
Amazon DynamoDB befasst sich mit den Kernproblemen von Datenbankskalierbarkeit, -verwaltung, -leistung und -zuverlässigkeit, ist aber keine relationale Datenbank und unterstützt keine komplexen relationalen Abfragen (z. B. "Joins") oder komplexe Transaktionen. Wenn Sie für Ihre Anwendung diese Funktionalität benötigen oder wenn Kompatibilität mit einer vorhandenen relationalen Engine erforderlich ist, wählen Sie Amazon Relational Database Service (RDS). Sie können auch Ihre eigene relationale Datenbank unter Amazon EC2 betreiben. Relationale Datenbank-Engines stellen zwar umfangreiche Features und Funktionen bereit, bei Datenaufkommen mit Skalierungsbedarf wird aber möglicherweise das Verwalten von Partitionierung und Neupartitionierungen Ihrer Daten über mehrere Instanzen hinweg erforderlich. Dies kann eine äußerst komplexe Aufgabe sein. Wenn Sie also für Ihre neue Anwendung mit größerem Skalierungsbedarf rechnen und keine relationalen Funktionen benötigen, ist Amazon DynamoDB wahrscheinlich besser für Sie geeignet.
Auf der Seite Betreiben von Datenbanken mit AWS finden Sie ausführlichere Informationen zu den verschiedenen Datenbankalternativen für Ihre Anwendungen.
In Amazon DynamoDB werden Daten in Tabellen mit Elementen organisiert und jedes Element verfügt über ein oder mehrere Attribute.
Ein Attribut ist ein Name/Wert-Paar. Der Name muss eine Zeichenfolge sein, aber der Wert kann eine Zeichenfolge, eine Zahl, eine Binärzahl, ein Zeichenfolgensatz, ein Zahlensatz oder ein Binärzahlensatz sein. Nachfolgend einige Beispiele für Attribute:
"ImageID" = 1
"Title" = "flower"
"Tags" = "flower", "jasmine", "white"
"Ratings" = 3, 4, 2
Eine Sammlung von Attributen bildet ein Element und das Element wird durch seinen Primärschlüssel identifiziert. Die Attribute eines Elements sind eine Sammlung von Name/Wert-Paaren, in beliebiger Reihenfolge. Ein Element kann über einzelne, mit den Attributen anderer Elemente in der Tabelle nicht in Beziehung stehende Attribute verfügen und die Attribute sind optional (mit Ausnahme des Primärschlüsselattributs). Im Gegensatz zu traditionellen Datenbanken verfügt die Tabelle über kein Schema außer ihrer Abhängigkeit von den Primärschlüsseln. Elemente werden in einer Tabelle gespeichert. Um Elemente in eine Tabelle zu übernehmen, müssen Sie mindestens eines der Attribute als Primärschlüssel festlegen. Jedes Element in einer DynamoDB-Tabelle wird durch den Primärschlüssel eindeutig identifiziert. Im folgenden Diagramm ist "ImageID" das als Primärschlüssel definierte Attribut:
Beachten Sie, dass die Tabelle über einen Namen ("myTable") verfügt, das Element jedoch nicht. Der Primärschlüssel definiert das Element; das Element mit dem Primärschlüssel "ImageID"=1.
Tabellen enthalten Elemente und organisieren Informationen in verschiedene Bereiche. Alle Elemente in der Tabelle verfügen über dasselbe Primärschlüsselschema. Beim Erstellen einer Tabelle weisen Sie den oder die für den Primärschlüssel zu verwendenden Attributnamen zu und jedes Element in der Tabelle muss über einen eindeutigen Primärschlüsselwert verfügen. Um Daten in DynamoDB zu schreiben, erstellen Sie zuerst eine Tabelle und weisen dieser einen Tabellennamen und einen Primärschlüssel zu. In der folgenden größeren Tabelle wird ebenfalls "ImageID" als Primärschlüssel zum Identifizieren von Elementen verwendet.
| Tabelle: Meine Bilder | |||||||
| Primärschlüssel | Weitere Attribute | ||||||
| ImageID = 1 | ImageLocation = https://s3.amazonaws.com/bucket/img_1.jpg | Date = 1260653179 | Title = flower | Tags = Flower, Jasmine | Width = 1024 | Depth = 768 | |
| ImageID = 2 | ImageLocation = https://s3.amazonaws.com/bucket/img_2.jpg | Date = 1252617979 | Rated = 3, 4, 2 | Tags = Work, Seattle, Office | Width = 1024 | Depth = 768 | |
| ImageID = 3 | ImageLocation = https://s3.amazonaws.com/bucket/img_3.jpg | Date = 1285277179 | Price = 10.25 | Tags = Seattle, Grocery, Store | Author = you | Camera = phone | |
| ImageID = 4 | ImageLocation = https://s3.amazonaws.com/bucket/img_4.jpg | Date = 1282598779 | Title = Hawaii | Author = Joe | Colors = orange, blue, yellow | Tags = beach, blanket, ball | |
In DynamoDB muss jede Tabelle über einen definierten Primärschlüssel verfügen, der für den Zugriff auf Daten verwendet wird. Der Primärschlüssel identifiziert jedes Element eindeutig (z. B. ID =1, ID = 2, ID = 3, etc.). Der Primärschlüssel ist der einzige indizierte Teil einer Tabelle und wird auch für die Hash-Partitionierung Ihrer Daten über mehrere Server hinweg verwendet. Sie legen den Primärschlüssel beim Erstellen einer Tabelle fest.
Mit anderen Worten, jedes Element ist eine Sammlung von Name/Wert-Paaren. Wenn Sie eine Tabelle mit Elementen erstellen, legen Sie ein Name/Wert-Paar als Primärschlüssel fest. Alle Elemente in der Tabelle verfügen über einen Wert für das Primärschlüsselattribut und Amazon DynamoDB stellt sicher, dass der Wert für jedes Element eindeutig ist. Basierend auf dem Primärschlüssel wird ein Index erstellt.
Mit einem zusammengesetzten Primärschlüssel können Sie zwei Attribute in einer Tabelle festlegen, die zusammen einen eindeutigen Primärindex bilden. Alle Elemente in der Tabelle müssen über beide Attribute verfügen. Ein Attribut dient als "Hash-Partitionsattribut", das andere als "Bereichsattribut". Angenommen, Sie verfügen über eine Tabelle "Status-Updates" mit einem zusammengesetzten Primärschlüssel aus den Attributen "UserID" (Hash-Attribut, verwendet zur Partitionierung der Arbeitslast über mehrere Server) und "Time" (Bereichsattribut). Sie können nun eine Abfrage ausführen, um Folgendes abzurufen: 1) ein bestimmtes Element, das durch die Kombination der "UserID"- und "Time"-Werte eindeutig identifiziert wird; 2) alle Elemente für einen bestimmten Hash-Bucket – in diesem Fall "UserID"; oder 3) alle Elemente für eine bestimmte UserID innerhalb einer bestimmten Zeitspanne. Bereichsabfragen für "Time" werden nur unterstützt, wenn der Hash-Bucket "UserID" angegeben wird.
Amazon DynamoDB ermöglicht die Integration mit Amazon Elastic MapReduce (Amazon EMR). Amazon EMR ermöglicht Unternehmen die Durchführung komplexer Analysen großer Datasets unter Verwendung eines gehosteten leistungsbasierten Hadoop-Frameworks in AWS. Nachfolgend finden Sie einige Beispiele, wie EMR mit DynamoDB verwendet werden kann:
Kunden können die in DynamoDB gespeicherten Daten mit EMR analysieren und die Ergebnisse der Analyse in S3 speichern, während die Originaldaten in DynamoDB erhalten bleiben.
Angenommen, Sie verwenden Amazon DynamoDB zum Speichern von Kundenbestellungen. Jetzt können Sie jeden Monat eine neue Tabelle "Bestellungen" anlegen und dann unter Verwendung der EMR-Funktion zur Abfrage mehrerer Tabellen verschiedene Tabellen in DynamoDB verknüpfen, um z. B. die Frage "Welche Bestellungen wurden von einem bestimmten Kunden in den letzten 3 Monaten aufgegeben?" zu beantworten. Anschließend können Sie mit EMR die Ergebnisse dieser Fragen in S3 speichern und später wieder abrufen, ohne die Daten in den Tabellen der monatlichen Kundenbestellungen in DynamoDB anzutasten.
Kunden können die Daten aus DynamoDB mit EMR nach S3 sichern.
Betrachten wir noch einmal das oben stehende Beispiel mit den Kundenbestellungen. Sobald nicht mehr aktiv in eine Tabelle mit monatlichen Bestellungen geschrieben wird, können Sie diese Tabelle nach S3 sichern und sie dann aus DynamoDB löschen, um von den niedrigeren Speicherkosten von S3 zu profitieren. Die in S3 gespeicherten Daten sind, wie unten beschrieben, weiterhin schnell für Analysen verfügbar.
Mit Amazon EMR können Kunden auch auf Daten in mehreren Speichern zugreifen (d. h. Amazon DynamoDB, Amazon RDS und Amazon S3), komplexe Analysen über dieses kombinierte Dataset ausführen und die Ergebnisse dieser Arbeit in Amazon S3 speichern.
Wenn Sie Amazon DynamoDB beispielsweise verwenden, um Kundenbestellungen zu speichern, können Sie jeden Monat eine neue Tabelle "Bestellungen" erstellen und jeweils am Ende des Monats die Bestellungen, die über 6 Monate alt sind, mit Amazon EMR in Amazon S3 archivieren. So können Sie Bestellungen, auf die selten zugegriffen wird, in Amazon S3 archivieren, um Kosten zu sparen, und nur die Bestellungen, auf die häufig zugegriffen wird, in DynamoDB verwalten. Sie können mit EMR für Ihre in DynamoDB gespeicherten aktuellen Bestellungen und Ihre in Amazon S3 archivierten Tabellen mit Bestellungen Analysen durchführen, um Abfragen zu beantworten, wie z. B. "Wie viele Bestellungen für Widget X hat Kunde Y in den letzten 48 Monaten aufgegeben?”
Die Nutzung dieses Service unterliegt der Kundenvereinbarung von Amazon Web Services.
"