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.
Elastische Amazon DocumentDB-Cluster: So funktioniert es
Die Themen in diesem Abschnitt enthalten Informationen zu den Mechanismen und Funktionen, die den elastischen Clustern von Amazon DocumentDB zugrunde liegen.
Topics
Elastisches Cluster-Sharding von Amazon DocumentDB
Elastische Amazon DocumentDB-Cluster verwenden Hash-basiertes Sharding, um Daten in einem verteilten Speichersystem zu partitionieren. Sharding, auch Partitionierung genannt, teilt große Datensätze über mehrere Knoten hinweg in kleine Datensätze auf, sodass Sie Ihre Datenbank über vertikale Skalierungsgrenzen hinaus skalieren können. Elastische Cluster nutzen die Trennung oder „Entkopplung“ von Rechenleistung und Speicher in Amazon DocumentDB, sodass Sie unabhängig voneinander skalieren können. Anstatt Sammlungen neu zu partitionieren, indem kleine Datenblöcke zwischen Rechenknoten verschoben werden, kopieren elastische Cluster Daten effizient innerhalb des verteilten Speichersystems.
Shard-Definitionen
Definitionen der Shard-Nomenklatur:
Shard — Ein Shard bietet Rechenleistung für einen elastischen Cluster. Es wird eine einzige Writer-Instanz und 0—15 Read-Repliken haben. Standardmäßig hat ein Shard zwei Instanzen: eine Writer- und eine Single-Read-Replica. Sie können maximal 32 Shards konfigurieren und jede Shard-Instance kann maximal 64 vCPUs haben.
Shard-Schlüssel — Ein Shard-Schlüssel ist ein Pflichtfeld in Ihren JSON-Dokumenten in geteilten Sammlungen, die elastische Cluster verwenden, um den Lese- und Schreibverkehr an den entsprechenden Shard zu verteilen.
Sharded Collection — Eine Sharded Collection ist eine Sammlung, deren Daten in Datenpartitionen über einen elastischen Cluster verteilt sind.
Partition — Eine Partition ist ein logischer Teil der geteilten Daten. Wenn Sie eine gemeinsame Sammlung erstellen, werden die Daten innerhalb jedes Shards automatisch auf der Grundlage des Shard-Schlüssels in Partitionen organisiert. Jeder Shard hat mehrere Partitionen.
Verteilen von Daten auf konfigurierte Shards
Erstellen Sie einen Shard-Schlüssel mit vielen eindeutigen Werten. Ein guter Shard-Schlüssel verteilt Ihre Daten gleichmäßig auf die zugrunde liegenden Shards, sodass Ihre Arbeitslast den besten Durchsatz und die beste Leistung erzielt. Das folgende Beispiel sind Mitarbeiternamendaten, die einen Shard-Schlüssel namens „user_id“ verwenden:
DocumentDB verwendet Hash-Sharding, um Ihre Daten auf die zugrunde liegenden Shards zu partitionieren. Zusätzliche Daten werden auf die gleiche Weise eingefügt und verteilt:
Wenn Sie Ihre Datenbank skalieren, indem Sie zusätzliche Shards hinzufügen, verteilt Amazon DocumentDB die Daten automatisch neu:
Elastische Cluster-Migration
Amazon DocumentDB unterstützt die Migration von MongoDB-Shard-Daten zu elastischen Clustern. Offline-, Online- und Hybrid-Migrationsmethoden werden unterstützt. Weitere Informationen finden Sie unter Migration und Aktualisierung von Amazon DocumentDB.
Elastische Cluster-Skalierung
Elastische Amazon DocumentDB-Cluster bieten die Möglichkeit, die Anzahl der Shards (Scale-Out) in Ihrem elastischen Cluster und die Anzahl der auf jeden Shard angewendeten vCPUs (Scale-Up) zu erhöhen. Sie können auch die Anzahl der Shards und die Rechenkapazität (vCPUs) nach Bedarf reduzieren.
Bewährte Methoden zur Skalierung finden Sie unter. Skalierung elastischer Cluster
Anmerkung
Cluster-level Skalierung ist ebenfalls verfügbar. Weitere Informationen finden Sie unter Skalieren von Amazon DocumentDB-Clustern.
Elastische Cluster-Zuverlässigkeit
Amazon DocumentDB wurde so konzipiert, dass es zuverlässig, robust und fehlertolerant ist. Um die Verfügbarkeit zu verbessern, setzen elastische Cluster zwei Knoten pro Shard ein, die in verschiedenen Availability Zones platziert sind. Amazon DocumentDB enthält mehrere automatische Funktionen, die es zu einer zuverlässigen Datenbanklösung machen. Weitere Informationen finden Sie unter Zuverlässigkeit von Amazon DocumentDB.
Elastischer Cluster-Speicher und Verfügbarkeit
Amazon DocumentDB-Daten werden auf einem Cluster-Volume gespeichert. Dabei handelt es sich um ein einzelnes, virtuelles Volume, das Solid-State-Laufwerke (SSDs) verwendet. Ein Cluster-Volume besteht aus sechs Kopien Ihrer Daten, die automatisch über mehrere Availability Zones in einer einzigen Region repliziert werden. AWS Diese Replikation trägt dazu bei, dass Ihre Daten sehr langlebig sind und weniger Datenverlust möglich ist. Sie trägt außerdem dazu bei, dass Ihr Cluster während eines Failovers besser verfügbar ist, da Kopien Ihrer Daten bereits in anderen Availability Zones vorhanden sind. Weitere Informationen zu Speicher, Hochverfügbarkeit und Replikation finden Sie unterAmazon DocumentDB: wie funktioniert es.
Funktionale Unterschiede zwischen Amazon DocumentDB 4.0 und Elastic Clusters
Die folgenden funktionalen Unterschiede bestehen zwischen Amazon DocumentDB 4.0 und Elastic Clusters.
Ergebnisse von
topundcollStatssind durch Shards partitioniert. Bei gemeinsam genutzten Sammlungen werden die Daten auf mehrere Partitionen verteilt, und diecollStatsBerichte werden anhand der Partitionen aggregiert.collScansDie Sammlungsstatistiken von
topundcollStatsfür gemeinsam genutzte Sammlungen werden zurückgesetzt, wenn die Anzahl der Cluster-Shards geändert wird.Die integrierte Backup-Rolle unterstützt jetzt.
serverStatusAktion — Entwickler und Anwendungen mit Backup-Rolle können Statistiken über den Status des Amazon DocumentDB-Clusters sammeln.Das
SecondaryDelaySecsFeld wirdslaveDelayin derreplSetGetConfigAusgabe ersetzt.Der
helloBefehl ersetztisMaster—hellogibt ein Dokument zurück, das die Rolle des elastischen Clusters beschreibt.Der
$elemMatchOperator in elastischen Clustern entspricht nur Dokumenten in der ersten Verschachtelungsebene eines Arrays. In Amazon DocumentDB 4.0 durchläuft der Operator alle Ebenen, bevor er übereinstimmende Dokumente zurückgibt. Beispiel:
db.foo.insert( [ {a: {b: 5}}, {a: {b: [5]}}, {a: {b: [3, 7]}}, {a: [{b: 5}]}, {a: [{b: 3}, {b: 7}]}, {a: [{b: [5]}]}, {a: [{b: [3, 7]}]}, {a: [[{b: 5}]]}, {a: [[{b: 3}, {b: 7}]]}, {a: [[{b: [5]}]]}, {a: [[{b: [3, 7]}]]} ]); // Elastic clusters > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } // Docdb 4.0: traverse more than one level deep > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } { "a" : [ [ { "b" : [ 5 ] } ] ] }
Die „$“ -Projektion in Amazon DocumentDB 4.0 gibt alle Dokumente mit allen Feldern zurück. Bei elastischen Clustern gibt der
findBefehl mit einer „$“ -Projektion Dokumente zurück, die dem Abfrageparameter entsprechen und nur das Feld enthalten, das der „$“ -Projektion entspricht.In elastischen Clustern geben die
findBefehle mit$regexund$optionsAbfrageparametern einen Fehler zurück: „Optionen können nicht sowohl in $regex als auch in $options festgelegt werden.“
Bei elastischen Clustern wird
$indexOfCPjetzt „-1“ zurückgegeben, wenn:die Teilzeichenfolge wurde nicht in der
string expressiongefunden, oderstartist eine Zahl größer alsend, oderstartist eine Zahl, die größer als die Bytelänge der Zeichenfolge ist.
Gibt in Amazon DocumentDB 4.0 „0"
$indexOfCPzurück, wenn diestartPosition eine Zahl ist, die größer alsendoder die Bytelänge der Zeichenfolge ist.Bei elastischen Clustern geben Projektionsoperationen in
_id fieldsz. B. Dokumente zurück{"_id.nestedField" : 1}, die nur das projizierte Feld enthalten. In der Zwischenzeit filtern in Amazon DocumentDB 4.0 Befehle zur Projektion verschachtelter Felder kein Dokument heraus.