Das AWS Mobile SDK für Xamarin ist jetzt in der enthalten. AWS SDK für .NET Dieses Handbuch bezieht sich auf die archivierte Version des Mobile SDK für Xamarin.
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
Die wichtigsten Konzepte
Die DynamoDB-Datenmodellkonzepte umfassen Tabellen, Elemente und Attribute.
Tabellen
In Amazon DynamoDB ist eine 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 Unterschied dazu setzt DynamoDB nur voraus, dass eine Tabelle einen Primärschlüssel aufweist. Sie müssen nicht alle Attributnamen und Datentypen bereits im Voraus definieren.
Weitere Informationen über das Arbeiten mit Tabellen erhalten Sie unter Arbeiten mit Tabellen in DynamoDB.
Elemente und Attribute
Individuelle Elemente in einer DynamoDB-Tabelle können eine beliebige Zahl von Attributen aufweisen, die Größe eines Elements ist jedoch auf 400 KB beschränkt. 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.
Ein Beispiel: Sie speichern einen Produktkatalog in DynamoDB. Sie können eine Tabelle, ProductCatalog, mit dem ID-Attribut als Primärschlüssel erstellen. Der Primärschlüssel identifiziert jedes Element eindeutig, es können also nicht zwei Produkte in der Tabelle dieselbe ID aufweisen.
Weitere Informationen über das Arbeiten mit Elementen erhalten Sie unter Verwenden von Elementen in 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 für mehrere Werte und Dokumentdatentypen erhalten 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, sodass keine zwei Elemente denselben Schlüssel haben können. 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 für das Hash-Primärschlüsselattribut und einen sortierten Bereichsindex für das 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 Indexe
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ärindizes: lokale Sekundärindizes und globale Sekundärindizes.
-
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 erhalten Sie unter Verbessern des Datenzugriffs mit sekundären Indizes im Entwicklerhandbuch von DynamoDB.
Query und Scan
Neben der Verwendung von Primärschlüsseln für den Zugriff auf Elemente bietet Amazon DynamoDB auch zwei APIs zum Durchsuchen der Daten: Abfragen und Scannen. Wir empfehlen, dass Sie Richtlinien für das für das Abfragen und Scannen im Entwicklerhandbuch von DynamoDB 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 erhalten Sie unter Query im Entwicklerhandbuch von DynamoDB.
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 so verwenden, dass Scan nur einige Attribute zurückgibt und nicht alle.
Beispielscans finden Sie unter:
Weitere Informationen zu Scan erhalten Sie unter Scan im Entwicklerhandbuch von DynamoDB.
Projekteinrichtung
Voraussetzungen
Um DynamoDB in der Anwendung verwenden zu können, müssen Sie das SDK in das Projekt aufnehmen. Befolgen Sie zu diesem Zweck die Anweisungen unter Einrichten von AWS Mobile SDK for .NET and Xamarin.
Erstellen einer DynamoDB-Tabelle
Rufen Sie zum Erstellen einer Tabelle die DynamoDB-Konsole
-
Klicken Sie auf Create Table.
-
Geben Sie den Namen der Tabelle ein.
-
Wählen Sie Hash als Typ des Primärschlüssels.
-
Wählen Sie einen Typ und geben Sie einen Wert für den Hash-Attributnamen ein. Klicken Sie auf Weiter.
-
Wenn Sie globale Sekundärindizes verwenden möchten, weisen Sie auf der Seite Add Indexes (Indizes hinzufügen) der Option Index Type (Indextyp) den Wert „Global Secondary Index (Globaler sekundärer Index)“ zu und geben Sie unter Index Hash Key (Hash-Schlüssel des Index) einen Wert für den Sekundärindex 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.
-
Stellen Sie für Lese- und Schreibkapazität die gewünschten Größen ein. Weitere Informationen zum Konfigurieren der Kapazität erhalten Sie unter Bereitgestellte Kapazität in Amazon DynamoDB. Klicken Sie auf Weiter.
-
Geben Sie im nächsten Bildschirm eine Benachrichtigungs-E-Mail ein, um ggf. Durchsatzalarme zu erstellen. Klicken Sie auf Weiter.
-
Klicken Sie auf der Übersichtsseite auf Create (Erstellen). DynamoDB erstellt die Datenbank.
Festlegen von Berechtigungen für DynamoDB
Soll DynamoDB in einer Anwendung verwendet werden, müssen Sie die richtigen Berechtigungen festlegen. Die folgende IAM-Richtlinie ermöglicht Benutzern das Löschen, Abrufen, Schreiben, Abfragen, Scannen und Aktualisieren von Elementen in einer DynamoDB-Tabelle, die über den ARN angegeben wird:
{ "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
Weitere Informationen zu IAM-Richtlinien erhalten Sie unter Using IAM.
Weitere Informationen zu DynamoDB-spezifischen Richtlinien erhalten Sie unter Verwenden von IAM zur Kontrolle des Zugriffs auf DynamoDB-Ressourcen im Entwicklerhandbuch von DynamoDB.
Integrieren von DynamoDB in die Anwendung
Das AWS Mobile SDK for .NET and Xamarin bietet eine High-Level-Bibliothek für die Arbeit mit DynamoDB. Sie können Anforderungen auch direkt an die DynamoDB-Low-Level-API richten. Für die meisten Anwendungsfälle wird die Verwendung der High-Level-Bibliothek empfohlen. Das AmazonDynamo DBClient 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 SDK für Mobilgeräte für .NET und Xamarin ermöglicht es Ihnen, Anrufe über APIs das AWS SDK for .NET zu tätigen, um mit DynamoDB zu arbeiten. Alle APIs sind in der .dll verfügbar. AWSSDK Weitere Informationen zum Herunterladen von AWS SDK for .NET erhalten Sie unter AWS SDK for .NET
Es gibt drei Möglichkeiten für die Interaktion mit DynamoDB in einer Xamarin-Anwendung:
-
Document-Modell: Diese API stellt Wrapper-Klassen für die DyanmoDB-Low-Level-API bereit, um die Programmierarbeiten 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 in der Amazon.DynamoDB verfügbar. DocumentModel Namespace.
-
Object Persistence-Modell: Mit der Object Persistence-API können Sie Client-seitige Klassen DynamoDB-Tabellen zuordnen. Die einzelnen Objekt-Instances werden anschließend einem Element in den entsprechenden Tabellen zugeordnet. Die DBContext Dynamo-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 in der Amazon.DynamoDB verfügbar. DataModel Namespace.
-
Service-Client-API: Dies ist eine API auf Protokollebene, die eng mit der DynamoDB-API verbunden 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: