Amazon – DynamoDB - AWS SDK für Mobilgeräte

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.

Amazon – DynamoDB

Was ist Amazon DynamoDB?

Amazon DynamoDB ist ein schneller, hochgradig skalierbarer Service für nicht relationale Datenbanken. DynamoDBMit werden Einschränkungen der Datenspeicherungsskalierbarkeit eliminiert, die Latenz niedrig gehalten und die Leistung ist vorhersehbar.

Die wichtigsten Konzepte

Die DynamoDB Datenmodellkonzepte umfassen Tabellen, Elemente und Attribute.

Tables

In Amazon ist DynamoDBeine Datenbank eine Sammlung von Tabellen. Eine Tabelle ist eine Sammlung von Elementen und jedes Element wiederum eine Sammlung von Attributen.

In einer relationalen Datenbank hat eine Tabelle ein vordefiniertes Schema, z. B. Tabellenname, Primärschlüssel, Liste der Spaltennamen sowie Datentypen der Spalten. Alle Datensätze in der Tabelle müssen über dieselben Spalten verfügen. Im Gegensatz dazu erfordert DynamoDB nur, dass eine Tabelle über einen Primärschlüssel verfügt, aber nicht alle Attributnamen und Datentypen im Voraus definieren muss.

Weitere Informationen zum Arbeiten mit Tabellen finden Sie unter Arbeiten mit Tabellen in DynamoDB .

Elemente und Attribute

Einzelne Elemente in einer DynamoDB Tabelle können eine beliebige Anzahl von Attributen haben, obwohl die Elementgröße auf 400 KB beschränkt ist. Die Elementgröße wird gebildet aus der Länge der Attributnamen und -werte (Binär- und UTF-8-Längen).

Jedes Attribut in einem Element ist ein Name-Wert-Paar. Ein Attribut kann einen Wert oder mehrere Werten aufweisen. So kann ein Buchelement beispielsweise Attribute für Titel und Autor aufweisen. Jedes Buch hat einen Titel, kann jedoch mehrere Autoren haben. Das Attribut für mehrere Werte ist eine Gruppe, Duplikatwerte sind nicht zulässig.

Nehmen wir als Beispiel, einen Katalog von Produkten in zu DynamoDBspeichern. Sie können eine Tabelle erstellen, ProductCatalog, mit dem ID-Attribut als Primärschlüssel. Der Primärschlüssel identifiziert jedes Element eindeutig, es können also nicht zwei Produkte in der Tabelle dieselbe ID aufweisen.

Weitere Informationen zum Arbeiten mit Elementen finden Sie unter Arbeiten mit Elementen im DynamoDB .

Datentypen

Amazon DynamoDB unterstützt die folgenden Datentypen:

  • Skalare Typen: Number, String, Binary, Boolean und Null.

  • Typen für mehrere Werte: String Set, Number Set und Binary Set.

  • Dokumenttypen: List und Map.

Weitere Informationen zu skalaren Datentypen, Datentypen mit mehreren Werten und Dokumentdatentypen finden Sie unter DynamoDB -Datentypen.

Primärschlüssel

Wenn Sie eine Tabelle erstellen, müssen Sie außer dem Tabellennamen auch den Primärschlüssel der Tabelle angeben. Der Primärschlüssel identifiziert jedes Element in der Tabelle eindeutig, es gibt also nicht zwei Elemente mit identischem Schlüsselwert. DynamoDB unterstützt die folgenden zwei Typen von Primärschlüsseln:

  • Hash-Schlüssel: Der Primärschlüssel besteht aus einem Attribut, einem Hash-Attribut. DynamoDB erstellt einen ungeordneten Hash-Index für dieses Primärschlüsselattribut. Jedes Element in der Tabelle wird eindeutig anhand seines Hash-Schlüsselwerts identifiziert.

  • Hash- und Bereichsschlüssel: Der Primärschlüssel besteht aus zwei Attributen. Das erste Attribut ist das Hash-Attribut, das zweite das Bereichsattribut. DynamoDB erstellt einen ungeordneten Hash-Index auf dem Hash-Primärschlüsselattribut und einen sortierten Bereichsindex auf dem Bereichs-Primärschlüsselattribut. Jedes Element in der Tabelle wird durch die Kombination der Hash- und Bereichsschlüsselwerte eindeutig identifiziert. Zwei Elemente können denselben Hash-Schlüsselwert, müssen aber unterschiedliche Bereichsschlüsselwerte aufweisen.

Sekundäre Indizes

Wenn Sie eine Tabelle mit einem Hash- und Bereichsschlüssel erstellen, können Sie optional einzelne oder mehrere Sekundärindizes für die betreffende Tabelle definieren. Ein Sekundärindex ermöglicht – ergänzend zu Abfragen über den Primärschlüssel – das Abfragen der Daten in der Tabelle über einen alternativen Schlüssel.

DynamoDB unterstützt zwei Arten von sekundären Indizes: lokale sekundäre Indizes und globale sekundäre Indizes.

  • Lokaler Sekundärindex: Ein Index mit demselben Hash-Schlüssel wie die Tabelle, jedoch einem anderen Bereichsschlüssel.

  • Globaler Sekundärindex: Ein Index mit einem Hash- und Bereichsschlüssel, der sich von den Schlüsseln der Tabelle unterscheiden kann.

Sie können bis zu 5 globale Sekundärindizes und 5 lokale Sekundärindizes pro Tabelle definieren. Weitere Informationen finden Sie unter Verbessern des Datenzugriffs mit sekundären Indizes in DynamoDB im -DynamoDBEntwicklerhandbuch.

Query und Scan

Zusätzlich zur Verwendung von Primärschlüsseln für den Zugriff auf Elemente bietet Amazon DynamoDB auch zwei APIs für die Datensuche: Query und Scan. Wir empfehlen, dass Sie Richtlinien für Abfragen und Scans im DynamoDB -Entwicklerhandbuch lesen, um sich mit einigen bewährten Methoden vertraut zu machen.

Query

Eine Query-Operation sucht Elemente ausschließlich unter Verwendung von Primärschlüssel-Attributwerten in einer Tabelle oder einem Sekundärindex. Sie müssen einen Hash-Schlüsselattributnamen und einen Wert angeben, der gesucht werden soll. Sie können optional den Namen und den Wert eines Bereichsschlüsselattributs angeben und einen Vergleichsoperator verwenden, um die Suchergebnisse zu verfeinern.

Beispielabfragen finden Sie unter:

Weitere Informationen zu Query finden Sie unter Query im -DynamoDBEntwicklerhandbuch.

Scan

Eine Scan-Operation liest jedes Element in einer Tabelle oder einem Sekundärindex. Standardmäßig gibt eine Scan-Operation für jedes Element in der Tabelle oder im Index alle Datenattribute zurück. Sie können den ProjectionExpression Parameter verwenden, sodass Scan nur einige der Attribute und nicht alle zurückgibt.

Beispielscans finden Sie unter:

Weitere Informationen zu Scan finden Sie unter Scan im -DynamoDBEntwicklerhandbuch.

Projekteinrichtung

Prerequisites

Um DynamoDB in Ihrer Anwendung zu verwenden, müssen Sie das SDK zu Ihrem Projekt hinzufügen. Befolgen Sie zu diesem Zweck die Anweisungen unter Einrichten von AWS Mobile SDK for .NET and Xamarin.

Erstellen einer DynamoDB Tabelle

Gehen Sie zum Erstellen einer Tabelle zur -DynamoDBKonsole und führen Sie die folgenden Schritte aus:

  1. Klicken Sie auf Create Table.

  2. Geben Sie den Namen der Tabelle ein.

  3. Wählen Sie Hash als Primärschlüsseltyp aus.

  4. Wählen Sie einen Typ und geben Sie einen Wert für den Hash-Attributnamen ein. Klicken Sie auf Weiter.

  5. Wenn Sie auf der Seite Add Indexes globale sekundäre Indizes verwenden möchten, legen Sie Index Type auf „Global Secondary Index“ fest und geben Sie unter Index Hash Key einen Wert für den sekundären Index ein. So können Sie Primärindex und Sekundärindex abfragen und scannen. Klicken Sie auf Add Index To Table (Index zur Tabelle hinzufügen) und dann auf Continue (Weiter). Klicken Sie auf Continue (Weiter)., wenn Sie keine globalen Sekundärindizes verwenden wollen.

  6. Stellen Sie für Lese- und Schreibkapazität die gewünschten Größen ein. Weitere Informationen zum Konfigurieren der Kapazität finden Sie unter Bereitgestellter Durchsatz in Amazon DynamoDB . Klicken Sie auf Continue (Weiter).

  7. Geben Sie im nächsten Bildschirm eine Benachrichtigungs-E-Mail ein, um ggf. Durchsatzalarme zu erstellen. Klicken Sie auf Weiter.

  8. Klicken Sie auf der Übersichtsseite auf Create (Erstellen). DynamoDB erstellt Ihre Datenbank.

Festlegen von -Berechtigungen für DynamoDB

Um DynamoDB in einer Anwendung zu verwenden, müssen Sie die richtigen Berechtigungen festlegen. Mit der folgenden IAM-Richtlinie kann der Benutzer Elemente in einer bestimmten DynamoDB Tabelle, die durch den ARN identifiziert wird, löschen, abrufen, ablegen, abfragen, scannen und aktualisieren:

{ "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/MyTable" } ] }

Sie können Richtlinien in der IAM-Konsole. modifizieren. Sie sollten zulässige Aktionen basierend auf den Anforderungen der App hinzufügen oder entfernen.

Weitere Informationen zu IAM-Richtlinien erhalten Sie unter Using IAM.

Weitere Informationen zu DynamoDB-spezifischen Richtlinien finden Sie unter Using IAM to Control Access to DynamoDB Resources im -DynamoDBEntwicklerhandbuch.

Integrieren von DynamoDB in Ihre Anwendung

Das AWS Mobile SDK for .NET and Xamarin bietet eine allgemeine Bibliothek für die Arbeit mit DynamoDB. Sie können auch Anforderungen direkt an die DynamoDB Low-Level-API stellen, aber für die meisten Anwendungsfälle wird die High-Level-Bibliothek empfohlen. Der AmazonDynamoDBClient ist ein besonders nützlicher Teil der High-Level-Bibliothek. Mit dieser Klasse können Sie verschiedene CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) sowie Abfragen ausführen.

Das AWS Mobile SDK for .NET and Xamarin ermöglicht es Ihnen, Aufrufe mit APIs über das AWS SDK for .NET zu tätigen, um mit zu DynamoDBarbeiten. Alle -APIsDateien sind in der Datei AWSSDK.dll verfügbar. Weitere Informationen zum Herunterladen von AWS SDK for .NET erhalten Sie unter AWS SDK for .NET.

Es gibt drei Möglichkeiten, mit DynamoDB in Ihrer Xamarin-Anwendung zu interagieren:

  • Dokumentmodell: Diese API stellt Wrapper-Klassen für die DyanmoDB Low-Level-API bereit, um Ihre Programmieraufgaben weiter zu vereinfachen. Die wichtigsten Wrapper-Klassen sind Table und Document. Sie können das Dokumentmodell für Datenoperationen wie das Erstellen, Abrufen, Aktualisieren und Löschen von Elementen verwenden. Die API ist im Namespace Amazon.DynamoDB.DocumentModel verfügbar.

  • Object Persistence-Modell: Mit der Object Persistence-API können Sie den DynamoDB -Tabellen clientseitige Klassen zuordnen. Die einzelnen Objekt-Instances werden anschließend einem Element in den entsprechenden Tabellen zugeordnet. Die DynamoDBContext -Klasse in dieser API bietet Methoden, mit denen Sie clientseitige Objekte in einer Tabelle speichern, Elemente als -Objekte abrufen und Abfragen und Scans durchführen können. Sie können das Object Persistence-Modell für Datenoperationen wie das Erstellen, Abrufen, Aktualisieren und Löschen von Elementen verwenden. Sie müssen zunächst die Tabellen mit der Service-Client-API erstellen und dann das Objektpersistenzmodell verwenden, um die Klassen den Tabellen zuzuordnen. Die API ist im Namespace Amazon.DynamoDB.DataModel verfügbar.

  • Service-Client-API: Dies ist die API auf Protokollebene, die der DynamoDB API eng zugeordnet ist. Sie können diese Low-Level-API für alle Tabellen- und Elementoperationen wie das Erstellen, Aktualisieren und Löschen von Tabellen und Elementen verwenden. Sie können Tabellen außerdem abfragen und scannen. Diese API ist im Namespace Amazon.DynamoDB namespace verfügbar.

Diese drei Modelle werden in den folgenden Themen ausführlich behandelt:

Themen