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's
Die Themen in diesem Abschnitt enthalten Informationen zu den Mechanismen und Funktionen, die Amazon DocumentDB Elastic Clusters zugrunde liegen.
Themen
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 auf mehrere Knoten 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. Ein Shard hat standardmäßig zwei Knoten. Sie können maximal 32 Shards konfigurieren und jeder Shard kann maximal 64 V haben. CPUs
Shard-Schlüssel — Ein Shard-Schlüssel ist ein Pflichtfeld in Ihren JSON-Dokumenten in Sharded-Sammlungen, die Elastic Cluster verwenden, um den Lese- und Schreibverkehr auf den entsprechenden Shard zu verteilen.
Shard-Sammlung — Eine Shard-Sammlung ist eine Sammlung, deren Daten in Datenpartitionen über einen elastischen Cluster verteilt sind.
Partition — Eine Partition ist ein logischer Teil von Shard-Daten. Wenn Sie eine fragmentierte Sammlung erstellen, werden die Daten innerhalb jedes Shards automatisch auf der Grundlage des Shard-Schlüssels in Partitionen organisiert. Jeder Shard hat mehrere Partitionen.
Verteilung 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 Ihr Workload den besten Durchsatz und die beste Leistung erhält. Das folgende Beispiel zeigt Daten zu Mitarbeiternamen, die einen Shard-Schlüssel mit dem Namen „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 durch Hinzufügen zusätzlicher Shards skalieren, verteilt Amazon DocumentDB die Daten automatisch neu:

Elastische Cluster-Migration
Amazon DocumentDB unterstützt die Migration von mongoDB-Sharded-Daten zu elastischen Clustern. Offline-, Online- und Hybridmigrationsmethoden werden unterstützt. Weitere Informationen finden Sie unter Migration zu Amazon DocumentDB.
Elastische Cluster-Skalierung
Amazon DocumentDB Elastic Clusters bietet die Möglichkeit, die Anzahl der Shards (Scale Out) in Ihrem Elastic Cluster und die Anzahl der V, die auf jeden Shard CPUs angewendet werden, zu erhöhen (Scale Up). Sie können auch die Anzahl der Shards und die Rechenkapazität (vCPUs) nach Bedarf reduzieren.
Bewährte Methoden zur Skalierung finden Sie unterSkalierung elastischer Cluster.
Anmerkung
Skalierung auf Clusterebene ist ebenfalls verfügbar. Weitere Informationen finden Sie unter Skalierung von Amazon DocumentDB-Clustern.
Elastische Cluster-Zuverlässigkeit
Amazon DocumentDB ist darauf ausgelegt, zuverlässig, robust und fehlertolerant zu sein. Um die Verfügbarkeit zu verbessern, stellt Elastic Clusters zwei Knoten pro Shard bereit, die in verschiedenen Availability Zones platziert sind. Amazon DocumentDB umfasst 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 DocumentDB-Daten werden in einem Cluster-Volume gespeichert, bei dem es sich um ein einzelnes virtuelles Volume handelt, das Solid-State-Laufwerke (SSDs) verwendet. Ein Cluster-Volume besteht aus sechs Kopien Ihrer Daten, die automatisch über mehrere Availability Zones in einer einzigen AWS Region repliziert werden. 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: So funktioniert's.
Funktionale Unterschiede zwischen Amazon DocumentDB 4.0 und Elastic Clusters
Die folgenden funktionalen Unterschiede bestehen zwischen Amazon DocumentDB 4.0 und Elastic Clusters.
Die Ergebnisse von
top
undcollStats
sind nach Shards partitioniert. Bei Datensammlungen mit mehreren Partitionen werden die Daten auf mehrere Partitionen verteilt, und diecollStats
Berichte werden aus den Partitionen aggregiert.collScans
Sammlungsstatistiken von
top
undcollStats
für Sammlungen mit Sharding werden zurückgesetzt, wenn die Anzahl der Cluster-Shards geändert wird.Die integrierte Backup-Rolle unterstützt jetzt.
serverStatus
Aktion — Entwickler und Anwendungen mit Backup-Rolle können Statistiken über den Status des Amazon DocumentDB-Clusters sammeln.Das
SecondaryDelaySecs
Feld ersetztslaveDelay
in derreplSetGetConfig
Ausgabe.Der
hello
Befehl ersetztisMaster
—hello
gibt ein Dokument zurück, das die Rolle des elastischen Clusters beschreibt.Der
$elemMatch
Operator 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ücksendet. Zum 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
find
Befehl mit einer „$“ -Projektion Dokumente zurück, die dem Abfrageparameter entsprechen und nur das Feld enthalten, das der Projektion „$“ entspricht.In elastischen Clustern geben die
find
Befehle mit$regex
und$options
Abfrageparametern einen Fehler zurück: „Optionen können nicht sowohl in $regex als auch in $options gesetzt werden“.
Bei elastischen Clustern wird
$indexOfCP
jetzt „-1" zurückgegeben, wenn:Die Teilzeichenfolge wurde nicht in der
string expression
Datei gefunden, oderstart
ist eine Zahl größer alsend
, oderstart
ist eine Zahl, die größer als die Bytelänge der Zeichenfolge ist.
Gibt in Amazon DocumentDB 4.0 „0"
$indexOfCP
zurück, wenn diestart
Position eine Zahl ist, die größer alsend
oder die Bytelänge der Zeichenfolge ist.Bei elastischen Clustern geben Projektionsoperationen in
_id fields
, zum Beispiel:{"_id.nestedField" : 1}
, Dokumente zurück, die nur das projizierte Feld enthalten. In Amazon DocumentDB 4.0 hingegen filtern Befehle zur verschachtelten Feldprojektion kein Dokument heraus.