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.
Verwendung von Amazon DocumentDB (mit MongoDB-Kompatibilität) als Quelle für AWS DMS
Informationen zu den Versionen von Amazon DocumentDB (mit MongoDB-Kompatibilität), die AWS DMS als Quelle unterstützt, finden Sie unter Quellen für AWS DMS.
Wenn Sie Amazon DocumentDB als Quelle verwenden, können Sie Daten von einem Amazon-DocumentDB-Cluster zu einem anderen migrieren. Sie können auch Daten von einem Amazon DocumentDB-Cluster zu einem der anderen Zielendpunkte migrieren, die von unterstützt werden. AWS DMS
Wenn Sie noch keine Erfahrung mit Amazon DocumentDB haben, sollten Sie die folgenden wichtigen Konzepte für Amazon-DocumentDB-Datenbanken beachten:
-
Ein Datensatz in Amazon DocumentDB ist ein Dokument, bei dem es sich um eine Datenstruktur aus Feld-Wert-Paaren handelt. Der Wert eines Felds kann andere Dokumente, Arrays und Dokument-Arrays enthalten. Ein Dokument entspricht etwa einer Zeile in einer relationalen Datenbanktabelle.
-
Eine Sammlung in Amazon DocumentDB ist eine Gruppe von Dokumenten und entspricht in etwa einer Tabelle in einer relationalen Datenbank.
-
Eine Datenbank in Amazon DocumentDB ist ein Satz von Sammlungen und entspricht in etwa einem Schema in einer relationalen Datenbank.
AWS DMS unterstützt zwei Migrationsmodi, wenn Amazon DocumentDB als Quelle verwendet wird: den Dokumentmodus und den Tabellenmodus. Sie geben den Migrationsmodus an, wenn Sie den Amazon DocumentDB DocumentDB-Quellendpunkt in der AWS DMS Konsole erstellen, indem Sie entweder die Option Metadatenmodus oder das zusätzliche Verbindungsattribut nestingLevel
verwenden. Im Folgenden wird erläutert, wie sich der ausgewählte Migrationsmodus auf das resultierende Format der Zieldaten auswirkt.
- Dokumentmodus
-
Im Dokumentmodus wird das JSON-Dokument unverändert migriert. Das bedeutet, dass die Dokumentdaten in einem von zwei Elementen zusammengefasst werden. Wenn Sie eine relationale Datenbank als Ziel verwenden, handelt es sich bei den Daten um eine einzelne Spalte mit der Bezeichnung
_doc
in einer Zieltabelle. Wenn Sie eine nicht relationale Datenbank als Ziel verwenden, handelt es sich bei den Daten um ein einzelnes JSON-Dokument. Der Dokumentmodus ist der Standardmodus, den wir für die Migration zu einem Amazon-DocumentDB-Ziel empfehlen.Nehmen wir als Beispiel die folgenden Dokumente in einer Amazon-DocumentDB-Sammlung mit dem Namen
myCollection
.> db.myCollection.find() { "_id" : ObjectId("5a94815f40bd44d1b02bdfe0"), "a" : 1, "b" : 2, "c" : 3 } { "_id" : ObjectId("5a94815f40bd44d1b02bdfe1"), "a" : 4, "b" : 5, "c" : 6 }
Nach der Migration der Daten in eine relationale Datenbanktabelle mit Dokumentmodus sind die Daten folgendermaßen strukturiert. Die Datenfelder im Dokument sind in der Spalte
_doc
zusammengefasst.oid_id _doc 5a94815f40bd44d1b02bdfe0 { "a" : 1, "b" : 2, "c" : 3 }
5a94815f40bd44d1b02bdfe1 { "a" : 4, "b" : 5, "c" : 6 }
Sie können optional das zusätzliche Verbindungsattribut
extractDocID
auftrue
setzen, um eine zweite Spalte mit der Bezeichnung"_id"
zu erstellen, die als Primärschlüssel fungiert. Wenn Sie die Erfassung von Datenänderungen (Change Data Capture, CDC) verwenden möchten, setzen Sie diesen Parameter auftrue
, es sei denn, Sie verwenden Amazon DocumentDB als Ziel.Anmerkung
Wenn Sie der Quelldatenbank eine neue Sammlung hinzufügen, AWS DMS erstellt eine neue Zieltabelle für die Sammlung und repliziert alle Dokumente.
- Tabellenmodus
-
Im Tabellenmodus wandelt AWS DMS jedes Feld der obersten Ebene in einem Amazon-DocumentDB-Dokument in eine Spalte in der Zieltabelle um. Wenn ein Feld verschachtelt ist, werden die AWS DMS verschachtelten Werte zu einer einzigen Spalte zusammengefasst. AWS DMS fügt dann dem Spaltensatz der Zieltabelle ein Schlüsselfeld und Datentypen hinzu.
AWS DMS Fügt für jedes Amazon DocumentDB DocumentDB-Dokument jeden Schlüssel und Typ zum Spaltensatz der Zieltabelle hinzu. Wenn Sie beispielsweise den Tabellenmodus verwenden, wird das vorherige Beispiel in die folgende Tabelle AWS DMS migriert.
oid_id a b c 5a94815f40bd44d1b02bdfe0 1 2 3 5a94815f40bd44d1b02bdfe1 4 5 6 Verschachtelte Werte werden in einer Spalte mit durch Punkte getrennte Schlüsselnamen auf eine Ebene gebracht. Die Spalte erhält als Namen die Aneinanderreihung der reduzierten Feldnamen, die durch Punkte voneinander getrennt werden. AWS DMS Migriert beispielsweise ein JSON-Dokument mit einem Feld mit verschachtelten Werten, z. B.
{"a" : {"b" : {"c": 1}}}
in eine Spalte mit dem Namena.b.c.
Um die Zielspalten zu erstellen, AWS DMS scannt eine bestimmte Anzahl von Amazon DocumentDB DocumentDB-Dokumenten und erstellt einen Satz aller Felder und ihrer Typen. AWS DMS verwendet dann diesen Satz, um die Spalten der Zieltabelle zu erstellen. Wenn Sie Ihren Amazon-DocumentDB-Quellendpunkt mithilfe der Konsole erstellen oder ändern, können Sie die Anzahl der zu scannenden Dokumente angeben. Der Standardwert beträgt 1 000 Dokumente. Wenn Sie das verwenden AWS CLI, können Sie das zusätzliche Verbindungsattribut verwenden
docsToInvestigate
.AWS DMS Verwaltet Dokumente und Sammlungen im Tabellenmodus wie folgt:
-
Wenn Sie ein Dokument zu einer vorhandenen Sammlung hinzufügen, wird das Dokument repliziert. Wenn es Felder gibt, die am Ziel nicht vorhanden sind, werden diese Felder nicht repliziert.
-
Wenn Sie ein Dokument aktualisieren, wird das aktualisierte Dokument repliziert. Wenn es Felder gibt, die am Ziel nicht vorhanden sind, werden diese Felder nicht repliziert.
-
Das Löschen eines Dokuments wird vollständig unterstützt.
-
Das Hinzufügen einer neuen Sammlung führt nicht zu einer neuen Tabelle in der Zieldatenbank, wenn der Vorgang zeitgleich mit einer CDC-Aufgabe erfolgt.
-
In der CDC-Phase (Change Data Capture) wird das Umbenennen einer Sammlung AWS DMS nicht unterstützt.
-
Themen
- Festlegen von Berechtigungen zur Verwendung von Amazon DocumentDB als Quelle
- Konfigurieren von CDC für einen Amazon-DocumentDB-Cluster
- Herstellen einer Verbindung mit Amazon DocumentDB über TLS
- Erstellen eines Amazon-DocumentDB-Quellendpunkts
- Segmentieren von Amazon-DocumentDB-Sammlungen und parallele Migration
- Migration mehrerer Datenbanken bei Verwendung von Amazon DocumentDB als Quelle für AWS DMS
- Einschränkungen bei der Verwendung von Amazon DocumentDB als Quelle für AWS DMS
- Verwenden von Endpunkteinstellungen mit Amazon DocumentDB als Quelle
- Quelldatentypen für Amazon DocumentDB
Festlegen von Berechtigungen zur Verwendung von Amazon DocumentDB als Quelle
Wenn Sie die Amazon DocumentDB DocumentDB-Quelle für eine AWS DMS Migration verwenden, können Sie ein Benutzerkonto mit Root-Rechten erstellen. Alternativ können Sie einen Benutzer erstellen, der ausschließlich über Berechtigungen für die zu migrierende Datenbank verfügt.
Mit dem folgenden Code wird ein Benutzer als Root-Konto erstellt.
use admin db.createUser( { user: "root", pwd: "
password
", roles: [ { role: "root", db: "admin" } ] })
Für Amazon DocumentDB 3.6 wird mit dem folgenden Code ein Benutzer mit minimalen Berechtigungen für die zu migrierende Datenbank erstellt.
use
database_to_migrate
db.createUser( { user: "dms-user
", pwd: "password
", roles: [ { role: "read", db: "db_name" }, "read"] })
AWS DMS Verwendet für Amazon DocumentDB 4.0 und höher einen bereitstellungsweiten Change-Stream. Hier wird mit dem folgenden Code ein Benutzer mit minimalen Berechtigungen erstellt.
db.createUser( { user: "dms-user", pwd: "password", roles: [ { role: "readAnyDatabase", db: "admin" }] })
Konfigurieren von CDC für einen Amazon-DocumentDB-Cluster
Um die fortlaufende Replikation oder CDC mit Amazon DocumentDB zu verwenden, ist Zugriff auf die Change-Streams des Amazon DocumentDB-Clusters AWS DMS erforderlich. Eine Beschreibung der zeitlich geordneten Reihenfolge von Aktualisierungsereignissen in den Sammlungen und Datenbanken Ihres Clusters finden Sie unter Using Change Streams im Entwicklerhandbuch für Amazon DocumentDB.
Authentifizieren Sie sich mit der MongoDB-Shell bei Ihrem Amazon-DocumentDB-Cluster. Führen Sie anschließend den folgenden Befehl aus, um Änderungsstreams zu aktivieren.
db.adminCommand({modifyChangeStreams: 1, database: "DB_NAME", collection: "", enable: true});
Damit wird der Änderungsstream für alle Sammlungen in Ihrer Datenbank aktiviert. Nachdem Change-Streams aktiviert wurden, können Sie eine Migrationsaufgabe erstellen, die bestehende Daten migriert und gleichzeitig laufende Änderungen repliziert. AWS DMS erfasst weiterhin Änderungen und wendet sie an, auch nachdem die Massendaten geladen wurden. Schließlich werden die Quell- und Zieldatenbank synchronisiert, sodass die Ausfallzeit für eine Migration minimiert wird.
Anmerkung
AWS DMS verwendet das Betriebsprotokoll (Oplog), um Änderungen während der laufenden Replikation aufzuzeichnen. Wenn Amazon DocumentDB die Datensätze aus dem Oplog löscht, bevor sie AWS DMS gelesen werden, schlagen Ihre Aufgaben fehl. Wir empfehlen, die Oplog-Größe so zu ändern, dass die Änderungen mindestens 24 Stunden lang beibehalten werden.
Herstellen einer Verbindung mit Amazon DocumentDB über TLS
Standardmäßig akzeptiert ein neu erstellter Amazon-DocumentDB-Cluster sichere Verbindungen nur mit Transport Layer Security (TLS). Wenn TLS aktiviert ist, erfordert jede Verbindung mit Amazon DocumentDB einen öffentlichen Schlüssel.
Sie können den öffentlichen Schlüssel für Amazon DocumentDB abrufen, indem Sie die Datei rds-combined-ca-bundle.pem
aus einem AWS-gehosteten Amazon S3 S3-Bucket herunterladen. Weitere Informationen zum Herunterladen dieser Datei finden Sie unter Encrypting connections using TLS im Entwicklerhandbuch für Amazon DocumentDB.
Nachdem Sie die rds-combined-ca-bundle.pem
Datei heruntergeladen haben, können Sie den darin enthaltenen öffentlichen Schlüssel importieren. AWS DMS Das entsprechende Verfahren wird im Folgenden beschrieben.
Um Ihren öffentlichen Schlüssel mit der AWS DMS Konsole zu importieren
-
Melden Sie sich bei der an AWS Management Console und wählen Sie AWS DMS.
-
Wählen Sie im Navigationsbereich Certificates aus.
-
Wählen Sie Import certificate (Zertifikat importieren). Die Seite Importieren eines CA-Zertifikats wird angezeigt.
-
Führen Sie im Abschnitt Zertifikatkonfiguration eine der folgenden Aktionen aus:
-
Geben Sie in Zertifikat-ID einen eindeutigen Namen für das Zertifikat ein, z. B.
docdb-cert
. -
Wählen Sie Datei auswählen, navigieren Sie zum Speicherort der Datei
rds-combined-ca-bundle.pem
und wählen Sie diese aus.
-
-
Klicken Sie auf Add new CA certificate (Neues CA-Zertifikat hinzufügen).
Im AWS CLI folgenden Beispiel wird der AWS DMS import-certificate
Befehl verwendet, um die rds-combined-ca-bundle.pem
Datei mit dem öffentlichen Schlüssel zu importieren.
aws dms import-certificate \ --certificate-identifier docdb-cert \ --certificate-pem file://./rds-combined-ca-bundle.pem
Erstellen eines Amazon-DocumentDB-Quellendpunkts
Sie können einen Amazon-DocumentDB-Quellendpunkt mithilfe der Konsole oder der AWS CLI erstellen. Gehen Sie bei Verwendung der Konsole folgendermaßen vor.
So konfigurieren Sie einen Amazon DocumentDB DocumentDB-Quellendpunkt mit der Konsole AWS DMS
-
Melden Sie sich bei an AWS Management Console und wählen Sie AWS DMS.
-
Wählen Sie im Navigationsbereich Endpunkte und anschließend Endpunkt erstellen aus.
-
Geben Sie für Endpunkt-Kennung einen Namen ein, anhand dessen Sie ihn leicht identifizieren können, z. B.
docdb-source
. -
Wählen Sie für Quellen-Engine die Option Amazon DocumentDB (mit MongoDB-Kompatibilität) aus.
-
Geben Sie für Servername den Namen des Servers ein, auf dem sich der Amazon-DocumentDB-Datenbankendpunkt befindet. Sie könnten beispielsweise den öffentlichen DNS-Namen Ihrer Amazon-EC2-Instance eingeben, z. B.
democluster.cluster-cjf6q8nxfefi.us-east-2.docdb.amazonaws.com
. -
Geben Sie für Port 27017 ein.
-
Für SSL mode (SSL-Modus) wählen Sie verify-full aus. Wenn Sie SSL in Ihrem Amazon-DocumentDB-Cluster deaktiviert haben, können Sie diesen Schritt überspringen.
-
Wählen Sie für CA-Zertifikat das Amazon-DocumentDB-Zertifikat
rds-combined-ca-bundle.pem
aus. Anweisungen zum Hinzufügen dieses Zertifikats finden Sie unter Herstellen einer Verbindung mit Amazon DocumentDB über TLS. -
Geben Sie für Datenbankname den Namen Ihrer Datenbank ein.
Gehen Sie bei Verwendung der CLI folgendermaßen vor.
Um einen Amazon DocumentDB DocumentDB-Quellendpunkt mit dem zu konfigurieren AWS CLI
-
Führen Sie den folgenden AWS DMS
create-endpoint
Befehl aus, um einen Amazon DocumentDB DocumentDB-Quellendpunkt zu konfigurieren und Platzhalter durch Ihre eigenen Werte zu ersetzen.aws dms create-endpoint \ --endpoint-identifier
a_memorable_name
\ --endpoint-type source \ --engine-name docdb \ --usernamevalue
\ --passwordvalue
\ --server-nameservername_where_database_endpoint_resides
\ --port 27017 \ --database-namename_of_endpoint_database
Segmentieren von Amazon-DocumentDB-Sammlungen und parallele Migration
Um die Leistung einer Migrationsaufgabe zu verbessern, unterstützen Amazon-DocumentDB-Quellendpunkte zwei Optionen des Features für paralleles vollständiges Laden bei der Tabellenzuordnung. Anders ausgedrückt: Sie können eine Sammlung parallel migrieren, indem Sie entweder die Optionen für die automatische Segmentierung oder für die Bereichssegmentierung der Tabellenzuordnung für paralleles vollständiges Laden in den JSON-Einstellungen verwenden. Mit den Optionen für die automatische Segmentierung können Sie die Kriterien für AWS DMS die automatische Segmentierung Ihrer Quelle für die Migration in jedem Thread angeben. Mit den Optionen für die Bereichssegmentierung können Sie AWS DMS den spezifischen Bereich jedes Segments angeben, das DMS in jedem Thread migrieren soll. Weitere Informationen zu diesen Einstellungen finden Sie unter Regeln und Operationen für Tabellen- und Sammlungseinstellungen.
Parallele Migration einer Amazon-DocumentDB-Datenbank mithilfe von Bereichen für die automatische Segmentierung
Sie können Ihre Dokumente parallel migrieren, indem Sie die Kriterien für AWS DMS die automatische Partitionierung (Segmentierung) Ihrer Daten für jeden Thread angeben, insbesondere die Anzahl der Dokumente, die pro Thread migriert werden sollen. Bei diesem Verfahren versucht AWS DMS , die Segmentgrenzen zu optimieren, um eine maximale Leistung pro Thread zu erzielen.
Sie können die Segmentierungskriterien mithilfe der folgenden Tabelleneinstellungsoptionen in der Tabellenzuordnung angeben:
Tabelleneinstellungsoption |
Beschreibung |
---|---|
|
(Erforderlich) Setzen Sie dies für Amazon DocumentDB als Quelle auf |
|
(Optional) Gesamtzahl der für die Migration verwendeten Partitionen (Segmente). Der Standardwert ist 16. |
|
(Optional) Wenn diese Option auf gesetzt ist |
|
(Optional) Die Anzahl der Datensätze, die bei der Festlegung der Grenzen für jede Partition gleichzeitig übersprungen werden sollen. AWS DMS verwendet einen Ansatz zum Überspringen von Seiten, um die Mindestgrenze für eine Partition zu bestimmen. Der Standardwert ist 10 000. Das Festlegen eines relativ großen Werts kann zu Cursor-Timeouts und Aufgabenfehlern führen. Das Festlegen eines relativ niedrigen Werts führt zu mehr Operationen pro Seite und zu einem langsameren vollständigen Laden. |
|
(Optional) Begrenzt die Anzahl der in einem Stapel zurückgegebenen Dokumente. Für jeden Stapel ist ein Round-Trip zum Server erforderlich. Wenn die Stapelgröße Null (0) ist, verwendet der Cursor die vom Server definierte maximale Stapelgröße. Der Standardwert ist 0. |
Das folgende Beispiel zeigt eine Tabellenzuordnung für die automatische Segmentierung.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "admin", "table-name": "departments" }, "rule-action": "include", "filters": [] }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "admin", "table-name": "departments" }, "parallel-load": { "type": "partitions-auto", "number-of-partitions": 5, "collection-count-from-metadata": "true", "max-records-skip-per-page": 1000000, "batch-size": 50000 } } ] }
Für die automatische Segmentierung gelten die folgenden Einschränkungen. Bei der Migration für die einzelnen Segmente werden die Sammlungsanzahl und der _id
-Mindestwert für die Sammlung separat abgerufen. Anschließend wird die Mindestgrenze für dieses Segment anhand eines seitenweisen Überspringens berechnet. Stellen Sie daher sicher, dass der _id
-Mindestwert für jede Sammlung konstant bleibt, bis alle Segmentgrenzen in der Sammlung berechnet wurden. Wenn Sie den _id
-Mindestwert für eine Sammlung während der Berechnung der Segmentgrenze ändern, kann dies zu Datenverlust oder zu Fehlern aufgrund von doppelten Zeilen führen.
Parallele Migration einer Amazon-DocumentDB-Datenbank mithilfe von spezifischen Segmentbereichen
Das folgende Beispiel zeigt eine Amazon-DocumentDB-Sammlung mit sieben Elementen und _id
als Primärschlüssel.
Um die Sammlung in drei Segmente aufzuteilen und parallel zu migrieren, können Sie Ihrer Migrationsaufgabe Regeln für die Tabellenzuordnung hinzufügen, wie im folgenden JSON-Beispiel gezeigt.
{ // Task table mappings: "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "testdatabase", "table-name": "testtable" }, "rule-action": "include" }, // "selection" :"rule-type" { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "testdatabase", "table-name": "testtable" }, "parallel-load": { "type": "ranges", "columns": [ "_id", "num" ], "boundaries": [ // First segment selects documents with _id less-than-or-equal-to 5f805c97873173399a278d79 // and num less-than-or-equal-to 2. [ "5f805c97873173399a278d79", "2" ], // Second segment selects documents with _id > 5f805c97873173399a278d79 and // _id less-than-or-equal-to 5f805cc5873173399a278d7c and // num > 2 and num less-than-or-equal-to 5. [ "5f805cc5873173399a278d7c", "5" ] // Third segment is implied and selects documents with _id > 5f805cc5873173399a278d7c. ] // :"boundaries" } // :"parallel-load" } // "table-settings" :"rule-type" ] // :"rules" } // :Task table mappings
Mit dieser Definition für die Tabellenzuordnung wird die Quellsammlung in drei Segmente aufgeteilt, die parallel migriert werden. Im Folgenden sind die Segmentierungsgrenzen aufgeführt.
Data with _id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2 (2 records) Data with _id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5 and not in (_id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2) (3 records) Data not in (_id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5) (2 records)
Nach Abschluss der Migrationsaufgabe können Sie anhand der Aufgabenprotokolle überprüfen, ob die Tabellen parallel geladen wurden, wie im folgenden Beispiel gezeigt. Sie können auch die zum Entladen der einzelnen Segmente aus der Quelltabelle verwendete Amazon-DocumentDB-Klausel find
überprüfen.
[TASK_MANAGER ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328) [SOURCE_UNLOAD ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent. [TASK_MANAGER ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328) [SOURCE_UNLOAD ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent. [TARGET_LOAD ] I: Load finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 1 rows received. 0 rows skipped. Volume transfered 480. [TASK_MANAGER ] I: Load finished for segment #1 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. 2 records transferred.
AWS DMS Unterstützt derzeit die folgenden Amazon DocumentDB DocumentDB-Datentypen als Segmentschlüsselspalte:
-
Double
-
String
-
ObjectId
-
32-Bit-Ganzzahl
-
64-Bit-Ganzzahl
Migration mehrerer Datenbanken bei Verwendung von Amazon DocumentDB als Quelle für AWS DMS
AWS DMS Versionen 3.4.5 und höher unterstützen die Migration mehrerer Datenbanken in einer einzigen Aufgabe nur für Amazon DocumentDB DocumentDB-Versionen 4.0 und höher. Gehen Sie folgendermaßen vor, um mehrere Datenbanken zu migrieren:
-
Wenn Sie den Amazon-DocumentDB-Quellendpunkt erstellen:
-
Lassen Sie im AWS Management Console Feld „Datenbankname“ unter Endpunktkonfiguration auf der Seite „Endpoint erstellen“ das Feld Datenbankname leer. AWS DMS
-
Weisen Sie im Feld AWS Command Line Interface (AWS CLI) dem DatabaseNameParameter in DocumentDBSettings, den Sie für die Aktion angeben, einen leeren Zeichenkettenwert zu. CreateEndpoint
-
-
Geben Sie für jede Datenbank, die Sie von diesem Amazon-DocumentDB-Quellendpunkt migrieren möchten, den Namen jeder Datenbank als Namen eines Schemas in der Tabellenzuordnung für die Aufgabe an, entweder mithilfe der geführten Eingabe in der Konsole oder direkt in JSON. Weitere Informationen zur geführten Eingabe finden Sie in der Beschreibung zu Festlegen der Tabellenauswahl und der Transformationsregeln über die Konsole. Weitere Informationen zu JSON finden Sie unter Auswahlregeln und Aktionen.
Sie können beispielsweise die folgende JSON-Struktur angeben, um drei Amazon-DocumentDB-Datenbanken zu migrieren.
Beispiel Migrieren aller Tabellen in einem Schema
Die folgende JSON-Struktur migriert alle Tabellen aus den Datenbanken Customers
, Orders
und Suppliers
im Quellendpunkt zum Zielendpunkt.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Customers", "table-name": "%" }, "object-locator": { "schema-name": "Orders", "table-name": "%" }, "object-locator": { "schema-name": "Inventory", "table-name": "%" }, "rule-action": "include" } ] }
Einschränkungen bei der Verwendung von Amazon DocumentDB als Quelle für AWS DMS
Die folgenden Einschränkungen gelten bei der Verwendung von Amazon DocumentDB als Quelle für AWS DMS:
-
Wenn die Option
_id
als separate Spalte gesetzt ist, darf der ID-String 200 Zeichen nicht überschreiten. -
Objekt-ID und Array-Schlüssel werden in Spalten konvertiert, die mit dem Präfix
oid
undarray
im Tabellenmodus versehen sind.Intern wird auf diese Spalten mit den mit Präfix versehenen Namen verwiesen. Wenn Sie Transformationsregeln verwenden AWS DMS , die auf diese Spalten verweisen, stellen Sie sicher, dass Sie die Spalte mit dem Präfix angeben. Geben Sie beispielsweise
${oid__id}
anstatt${_id}
oder${array__addresses}
anstatt${_addresses}
an. -
Namen von Sammlungen und Schlüsseln dürfen das Dollarzeichen ($) nicht enthalten.
-
Der Tabellenmodus und der Dokumentmodus haben die oben genannten Einschränkungen.
-
Für die parallele Migration mithilfe der automatischen Segmentierung gelten die oben beschriebenen Einschränkungen.
-
Eine Amazon-DocumentDB-Quelle (MongoDB-kompatibel) unterstützt die Verwendung eines spezifischen Zeitstempels als Startposition für CDC nicht. Eine laufende Replikationsaufgabe beginnt unabhängig vom Zeitstempel mit der Erfassung von Änderungen.
-
Bei Verwendung von DocumentDB (MongoDB-kompatibel) als Quelle kann DMS maximal 250 Datensätze pro Sekunde verarbeiten.
-
AWS DMS unterstützt keine Dokumente, bei denen die Verschachtelungsebene höher als 97 ist.
-
Quellfilter werden für DocumentDB nicht unterstützt.
-
AWS DMS unterstützt keine CDC-Replikation (Change Data Capture) für DocumentDB als Quelle im Elastic Cluster-Modus.
Verwenden von Endpunkteinstellungen mit Amazon DocumentDB als Quelle
Sie können Endpunkteinstellungen, ähnlich wie zusätzliche Verbindungsattribute, zum Konfigurieren Ihrer Amazon-DocumentDB-Quelldatenbank verwenden. Sie geben die Einstellungen an, wenn Sie den Quellendpunkt mithilfe der AWS DMS Konsole oder mithilfe des create-endpoint
Befehls in AWS CLI, mit der --doc-db-settings '{"
JSON-Syntax erstellen.EndpointSetting"
:
"value"
, ...
}'
Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit Amazon DocumentDB als Quelle verwenden können.
Attributname | Zulässige Werte | Standardwert und Beschreibung |
---|---|---|
|
|
|
|
boolesch
|
Wenn Ihre Zieldatenbank Amazon DocumentDB ist, legen Sie |
|
Eine positive Ganzzahl größer als |
|
|
boolesch
|
Wenn der Wert wahr ist, werden Daten in Shard-Sammlungen AWS DMS repliziert. AWS DMS verwendet diese Einstellung nur, wenn der Zielendpunkt ein elastischer DocumentDB-Cluster ist. Wenn Sie für diese Einstellung true festlegen, beachten Sie Folgendes:
|
Quelldatentypen für Amazon DocumentDB
Die folgende Tabelle enthält die Amazon-DocumentDB-Quelldatentypen, die bei Verwendung von AWS DMS unterstützt werden. In dieser Tabelle finden Sie auch die Standardzuordnungen von AWS DMS Datentypen. Weitere Informationen zu den Datentypen finden Sie unter BSON types
Weitere Informationen zum Anzeigen des Datentyps, der im Ziel zugewiesen ist, finden Sie im Abschnitt für den Zielendpunkt, den Sie verwenden.
Weitere Informationen zu AWS DMS Datentypen finden Sie unterDatentypen für den AWS Database Migration Service.
Amazon-DocumentDB-Datentypen |
AWS DMS Datentypen |
---|---|
Boolesch |
Bool |
Binär |
BLOB |
Datum |
Datum |
Zeitstempel |
Datum |
Int |
INT4 |
Long |
INT8 |
Double |
REAL8 |
String (UTF-8) |
CLOB |
Array |
CLOB |
OID |
String |