Elastische Amazon DocumentDB-Cluster: So funktioniert's - Amazon DocumentDB

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.

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.

Ein elastischer Amazon DocumentDB-Cluster enthält mehrere Shards, um große Datensätze in kleinere aufzuteilen, was eine verbesserte Datenbankskalierung ermöglicht.

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:

Daten aus einem Datensatz sind gleichmäßig auf zahlreiche Shards verteilt.

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:

Daten aus einem neuen Datensatz werden per Hash-Sharding auf mehrere Shards verteilt.

Wenn Sie Ihre Datenbank durch Hinzufügen zusätzlicher Shards skalieren, verteilt Amazon DocumentDB die Daten automatisch neu:

Daten aus einem Datensatz werden neu verteilt, wenn der Datenbank zusätzliche Shards hinzugefügt werden.

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 und collStats sind nach Shards partitioniert. Bei Datensammlungen mit mehreren Partitionen werden die Daten auf mehrere Partitionen verteilt, und die collStats Berichte werden aus den Partitionen aggregiert. collScans

  • Sammlungsstatistiken von top und collStats 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 ersetzt slaveDelay in der replSetGetConfig Ausgabe.

  • Der hello Befehl ersetzt isMasterhello 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, oder

    • startist eine Zahl größer alsend, oder

    • startist eine Zahl, die größer als die Bytelänge der Zeichenfolge ist.

    Gibt in Amazon DocumentDB 4.0 „0" $indexOfCP zurück, wenn die start Position eine Zahl ist, die größer als end 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.