Hinweis:

Daten von Amazon DynamoDB in Oracle NoSQL Database-Tabelle migrieren

Einführung

Amazon DynamoDB ist ein vollständig verwalteter NoSQL-Datenbankservice, der von Amazon Web Services angeboten wird und einen schnellen und skalierbaren Schlüssel/Wert- und Dokumentendatenspeicher bietet.

Oracle NoSQL Database Cloud Service ist ein vollständig verwalteter NoSQL-Datenbankservice, der von Oracle Corporation auf Oracle Cloud Infrastructure angeboten wird. Es bietet skalierbaren Schlüsselwert- und JSON-Dokumentenspeicher mit Leistung mit geringer Latenz und automatischer Skalierung für native Cloud-Anwendungen.

In diesem Tutorial wird beschrieben, wie Sie Daten mit dem Tool Oracle NoSQL Database Migrator von Amazon DynamoDB zu Oracle NoSQL Database Cloud Service migrieren.

Der Migrationsworkflow verwendet die native Export-to-S3-Funktion von DynamoDB, um Tabellendaten im JSON-Format DynamoDB zu extrahieren. Die exportierten Daten werden dann in Oracle NoSQL Database Cloud Service importiert, der in Oracle Cloud Infrastructure (OCI) ausgeführt wird.

Architektur

Der Migrationsworkflow besteht aus den folgenden Komponenten:

image

Migrationsprozess auf hoher Ebene

  1. Stellen Sie DynamoDB-Tabellen und Amazon S3-Bucket bereit.
  2. Aktivieren Sie PITR in der Tabelle, und exportieren Sie DynamoDB-Tabellen in den Amazon S3-Bucket.
  3. OCI-Compute-Instanzen bereitstellen
  4. Installieren und konfigurieren Sie das Oracle NoSQL Database-Migrator-Tool auf Compute.
  5. Konfigurieren Sie die AWS- und OCI-Authentifizierung auf OCI Compute.
  6. Migration vom Amazon S3-Bucket zu OCI ausführen NoSQL
  7. Migrierte Daten in Oracle NoSQL Database validieren.

Voraussetzungen

Bevor Sie beginnen, stellen Sie Folgendes sicher:

Aufgabe 1: Amazon DynamoDB-Ressourcen bereitstellen

In diesem Tutorial stellen wir nur die grundlegenden erforderlichen Ressourcen in AWS bereit, die für diese Übung obligatorisch sind.

1. IAM-Benutzer in AWS erstellen

Erstellen Sie einen dedizierten IAM-Benutzer, um DynamoDB-Vorgänge zu verwalten.

a. Bei AWS Console anmelden

b. Navigieren Sie zu IAM, Benutzer

c. Klicken Sie auf Create User.

d. Programmgesteuerten Zugriff zuweisen

image

e. Prüfen und auf Benutzer erstellen klicken

⚠️ Verwenden Sie in Produktionsumgebungen IAM-Policys mit den geringsten Berechtigungen.

2. Erstellen einer DynamoDB-Tabelle in AWS

a. Melden Sie sich bei der AWS-Konsole an.

b. Navigieren Sie zu DynamoDB.

image

c. Klicken Sie auf Tabelle erstellen.

image

d. Geben Sie Folgendes an:

e. Übernehmen Sie die Standardeinstellungen, und erstellen Sie die Tabelle.

f. Erstellte Tabellen prüfen

image

3. Fügen Sie eine neue Spalte hinzu, oder fügen Sie Musterdatensätze in der Tabelle DynamoDB ein.

a. Melden Sie sich bei der AWS-Konsole an.

b. Wählen Sie die Tabelle

c. Klicken Sie auf Aktionen, Artikel erstellen.

image

d. Musterdatensätze einfügen

image

e. Datensätze validieren

image

Aufgabe 2: Tabelle DynamoDB in Amazon S3-Bucket exportieren

Verwenden Sie die native Export-to-S3-Funktion von DynamoDB, um Tabellendaten im JSON-Format DynamoDB in den Bucket S3 zu extrahieren.

1. Amazon S3-Bucket erstellen

a. Bei der AWS-Konsole anmelden

b. Navigieren Sie zu S3.

c. Neuen Bucket erstellen

image

d. Standardeinstellungen beibehalten

e. Bucket validieren

image

2. Point-in-Time Recovery (PITR) aktivieren

Für den DynamoDB-Export ist ein Point-in-Time Recovery erforderlich. PITR muss vor dem Export auf Tabellenebene aktiviert sein.

a. Tabelle auswählen

b. Point-in-Time Recovery aktivieren

image

c. Nach Aktivierung von PITR.

image

3. Tabellendaten in Bucket S3 exportieren.

a. Melden Sie sich bei der AWS-Konsole an.

b. Tabelle auswählen

c. Klicken Sie auf Export to S3.

d. Wählen Sie:

e. Klicken Sie auf Exportieren

image

image

4. Exportierte Daten prüfen

Nach Fertigstellung:

image

S3://bucket-name/AWSDynamoDB/ExportID/data/

Enthält:

image

Aufgabe 3: Oracle Cloud Infrastructure-Umgebung vorbereiten

1. Compartment erstellen

a. Melden Sie sich beim OCI-Konsolenmodul an.

b. Navigieren Sie zu Identität und Sicherheit, Compartments.

c. Erstellen Sie ein neues Compartment für die Oracle-Tabelle NoSQL.

2. Compute-Instanzen erstellen

a. Navigieren Sie zu Compute , Instanzen.

b. Klicken Sie auf Instanz erstellen.

c. Wählen Sie eine der folgenden Optionen:

Diese Compute-Instanz führt den Oracle NoSQL Database-Migrator aus.

3. Oracle NoSQL Database Migrator installieren

Der Oracle NoSQL Migrator liest DynamoDB-Exportdateien aus Amazon S3 und importiert Daten in die OCI Oracle NoSQL-Datenbank. Wir installieren das Oracle NoSQL Migrator-Tool auf einem der oben erstellten OCI-Compute-Instanzen.

a. Java 11 installieren

Für den Oracle NoSQL Database-Migrator muss Java auf dem Compute ausgeführt werden.

sudo yum install java-11

b. Migratorpackage extrahieren

tar -zxvf V1053574-01.tar.gz
cd nosql-migrator-1.8.0/

Installation prüfen:

[opc@nosql-migrator-1.8.0]\$ ls -ltr
total 332
-rw-r--r--. 1 opc opc    822 Nov 13 07:26 sdk_logging.properties
-rw-r--r--. 1 opc opc   1720 Nov 13 07:26 README.md
-rw-r--r--. 1 opc opc    897 Nov 13 07:26 log4j2.xml
-rw-r--r--. 1 opc opc   1870 Nov 13 07:26 LICENSE.txt
-rw-r--r--. 1 opc opc    488 Dec  2 07:11 Dockerfile
-rw-r--r--. 1 opc opc 234275 Dec 23 08:38 THIRD_PARTY_LICENSES.txt
-rwxr-xr-x. 1 opc opc  73063 Dec 23 08:38 runMigrator
-rw-r--r--. 1 opc opc   4640 Dec 23 08:38 CHANGELOG.md
drwxr-xr-x. 2 opc opc    124 Feb  6 02:50 lib

Aufgabe 4: Sicheren Zugriff konfigurieren (OCI und AWS)

Um den Oracle NoSQL Migrator zu verwenden, muss eine sichere cloudübergreifende Authentifizierung konfiguriert werden, damit die Compute-Instanz sowohl auf Amazon S3- als auch auf Oracle Cloud Infrastructure-(OCI-)Ressourcen zugreifen kann.

1. OCI-API-Schlüssel erstellen

Erstellen Sie in der OCI-Konsole einen API-Schlüssel für den OCI-Benutzer, der Eigentümer der Oracle NoSQL Database Cloud Service-Zieltabelle ist. Dieser Benutzer muss über Berechtigungen zum Erstellen und Verwalten der Oracle NoSQL Database Cloud Service-Tabelle verfügen.

a. Öffnen Sie in der OCI-Konsole Profil, API-Schlüssel.

b. Neuen API-Schlüssel hinzufügen.

image

c. Laden Sie den Private Key herunter.

d. Datensatz:

image

2. OCI-Konfigurationsdatei erstellen

a. Melden Sie sich mit SSH als Benutzer "opc" bei der zuvor erstellten Compute-Instanz an.

b. Erstellen Sie die gesamte OCI-Identitätsdatei unter /home/opc/.oci directory.

Private Key:

c. Kopieren Sie den Private Key auf Compute als /home/opc/.oci/ociuser.pem.

/home/opc/.oci/ociuser.pem

Konfigurationsdatei:

\$vi /home/opc/.oci/config

Beispiel:

[DEFAULT]
user=ocid1.user.oc1...
fingerprint=xx:xx:xx
tenancy=ocid1.tenancy.oc1...
region=ap-hyderabad-1
key_file=/home/opc/.oci/ociuser.pem

3. AWS-Zugriffsschlüssel erstellen

Erstellen Sie in der AWS-Konsole einen Zugriffsschlüssel (sofern noch keiner vorhanden ist) für den Benutzer, der auf den Amazon S3-Objektspeicher zugreift, in den die Amazon-DynamoDB-Daten exportiert werden.

a. Melden Sie sich bei der AWS-Konsole an.

b. Gehen Sie zu IAM, Benutzer, Sicherheitszugangsdaten

c. Zugriffsschlüssel erstellen

Anwendungsfall: Anwendung wird außerhalb von AWS ausgeführt.

image

4. AWS-Zugangsdaten konfigurieren

Erstellen Sie die folgenden Dateien auf der Compute-Instanz:

/home/opc/.aws/config
/home/opc/.aws/credentials

Beispielkonfiguration:

[default]
region=<aws_region>

Beispielzugangsdaten:

[default]
aws_access_key_id=<access_key>
aws_secret_access_key=<secret_key>

Aufgabe 5: Oracle NoSQL-Migrator konfigurieren und ausführen

Migrator erfordert eine JSON-Konfigurationsdatei, die Folgendes beschreibt:

1. Migrationskonfigurationsdatei erstellen

Erstellen Sie eine JSON-Datei für die Migrationskonfiguration, die Informationen zu Quelle und Ziel (Sink) enthält. Unter dem Sink-Hinweis DDBPartitionKey & DDBSortKey aus der Tabelle DynamoDB.

Erstellen:

/home/opc/.oci/migrator-config-dynamodb-bucket_to_OCI.json

Beispielkonfiguration:

{
  "source": {
    "type": "aws_s3",
    "format": "dynamodb_json",
    "s3URL": "https://bucket-name.s3.region.amazonaws.com/AWSDynamoDB/ExportID/data",
    "credentials": "/home/opc/.aws/credentials",
    "credentialsProfile": "default"
  },
  "sink": {
    "type": "nosqldb_cloud",
    "endpoint": "<oci_region>",
    "table": "Emp_records",
    "schemaInfo": {
      "defaultSchema": true,
      "DDBPartitionKey": "PartitionKey:string",
      "DDBSortKey": "SortKey:Number",
      "readUnits": 10,
      "writeUnits": 10,
      "storageSize": 1
    },
    "compartment": "<compartment_ocid>",
    "credentials": "/home/opc/.oci/config",
    "credentialsProfile": "DEFAULT",
    "overwrite": true
  },
  "abortOnError": false,
  "migratorVersion": "1.8.0"
}

Erläuterungen zum Standardschemamodus

Wenn defaultSchema: true:

Oracle NoSQL erstellt eine Tabelle mit:

Alle Nicht-Schlüsselattribute DynamoDB werden in document gespeichert.

2. Migration ausführen

Ändern Sie in der Compute-Instanz das Verzeichnis in das Unterverzeichnis nosql-migrator-1.8.0

\$cd /home/opc/nosql-migrator-1.8.0
\$./runMigrator --config /home/opc/.oci/migrator-config-dynamodb-bucket_to_OCI.json

Nach erfolgreicher Ausführung zeigt die Ausgabe die Anzahl der verarbeiteten Datensätze an.

Erfolgreiches Migrationslog:

[opc@.nosql-migrator-1.8.0]\$ ./runMigrator --config /home/opc/.oci/migrator-config-dynamodb-bucket_custom-schema.json

2026-02-11 13:32:35.279 [INFO] Configuration for migration:
{
  "source" : {
    "type" : "aws_s3",
    "format" : "dynamodb_json",
    "s3URL" : "https://dbmigbucket2oci.s3.ap-southeast-2.amazonaws.com/AWSDynamoDB/01770816089608-60282a9b/data",
    "credentials" : "/home/opc/.aws/credentials",
    "credentialsProfile" : "default"
  },
  "sink" : {
    "type" : "nosqldb_cloud",
    "endpoint" : "ap-hyderabad-1",
    "table" : "Emp_records",
    "schemaInfo" : {
      "defaultSchema" : true,
      "DDBPartitionKey" : "On_roll:string",
      "DDBSortKey" : "EmpID:Number",
      "readUnits" : 5,
      "writeUnits" : 50,
      "storageSize" : 5
    },
    "compartment" : "ocid1.compartment.oc1..aaaaaaaazliaxu2oqqcp3x6574nxkegv6lxbvh5lildyztb4fizbk2tqv2ia",
    "includeTTL" : false,
    "credentials" : "/home/opc/.oci/hyd_config",
    "credentialsProfile" : "DEFAULT",
    "writeUnitsPercent" : 90,
    "overwrite" : true,
    "requestTimeoutMs" : 5000
  },
  "abortOnError" : false,
  "migratorVersion" : "1.8.0"
}
2026-02-11 13:32:35.283 [INFO] creating source from given configuration:
2026-02-11 13:32:37.061 [INFO] source creation completed
2026-02-11 13:32:37.061 [INFO] creating sink from given configuration:
2026-02-11 13:32:38.253 [INFO] sink creation completed
2026-02-11 13:32:38.255 [INFO] creating migrator pipeline
2026-02-11 13:32:38.255 [INFO] [cloud sink] : start loading DDLs
2026-02-11 13:32:38.256 [INFO] [cloud sink] : executing DDL: CREATE TABLE IF NOT EXISTS Emp_records (On_roll string,EmpID Number,document JSON, PRIMARY KEY(SHARD(On_roll),EmpID)),limits: [5, 50, 5]
2026-02-11 13:32:38.763 [INFO] [cloud sink] : completed loading DDLs
2026-02-11 13:32:39.426 [INFO] migration started
2026-02-11 13:32:39.635 [INFO] [DDB S3 source] : start parsing JSON records from object: AWSDynamoDB/01770816089608-60282a9b/data/kaqjylfjsm4dzaf52u2e6qstia.json.gz
2026-02-11 13:32:40.373 [INFO] Migration success for source kaqjylfjsm4dzaf52u2e6qstia. read=2,written=2,failed=0
2026-02-11 13:32:40.373 [INFO] [DDB S3 source] : start parsing JSON records from object: AWSDynamoDB/01770816089608-60282a9b/data/phz6b5k7mmytpcrqe72pfnj3zu.json.gz
2026-02-11 13:32:40.606 [INFO] Migration success for source phz6b5k7mmytpcrqe72pfnj3zu. read=0,written=0,failed=0
2026-02-11 13:32:40.606 [INFO] [DDB S3 source] : start parsing JSON records from object: AWSDynamoDB/01770816089608-60282a9b/data/rtm6rzjciq6jhds3dcp4pcro5u.json.gz
2026-02-11 13:32:40.839 [INFO] Migration success for source rtm6rzjciq6jhds3dcp4pcro5u. read=0,written=0,failed=0
2026-02-11 13:32:40.839 [INFO] [DDB S3 source] : start parsing JSON records from object: AWSDynamoDB/01770816089608-60282a9b/data/vrukpcnd6e3kddjg4qite4upzi.json.gz
2026-02-11 13:32:41.304 [INFO] Migration success for source vrukpcnd6e3kddjg4qite4upzi. read=1,written=1,failed=0
2026-02-11 13:32:41.304 [INFO] Migration is successful for all the sources.
2026-02-11 13:32:41.306 [INFO] migration completed.
Records provided by source=3, Records written to sink=3, Records failed=0,Records skipped=0.
Elapsed time: 0min 1sec 878ms
Migration completed.

Aufgabe 6: Migration validieren

Nach einer erfolgreichen Ausführung von Data Migrator sollten alle Tabellendatensätze, die in DynamoDB eingefügt wurden, in Oracle NoSQL sichtbar sein.

a. Öffnen Sie die OCI-Konsole.

b. Navigieren Sie zu Datenbank, Oracle NoSQL Database, Tabellen.

image

c. Wählen Sie das entsprechende Compartment aus.

d. Migrierte Tabelle öffnen.

image

e. Records überprüfen

image

Überlegungen zur Migration und Best Practices

Kapazitätsplanung

Sicherheit

Große Tabellen

Für Multi-Terabyte-Exporte:

TTL-Verarbeitung

Wenn DynamoDB TTL erforderlich ist, aktivieren Sie:

"includeTTL": true

Migration mehrerer Tabellen

Automatisieren Sie Exporte mit AWS CLI-Skripten, wenn Sie mehrere Tabellen migrieren.

Schlussfolgerung

In diesem Tutorial wurde ein End-to-End-Migrationsworkflow von Amazon DynamoDB zu Oracle NoSQL Database Cloud Service mit nativen Exportfunktionen und Oracle NoSQL Database Migrator demonstriert.

Dieser Ansatz ermöglicht:

Mit der richtigen Planung, sicheren Konfiguration und Kapazitätsoptimierung können Unternehmen eine nahtlose NoSQL-Datenmigration über Cloud-Plattformen hinweg erreichen.

Problembehandlung

Ressourcen bereinigen

Nachdem Sie dieses Tutorial abgeschlossen haben, sollten Sie die folgenden Ressourcen entfernen, um unnötige Gebühren zu vermeiden:

Bestätigungen

Autor – Dharmesh Patel (Principal Cloud Architect, Customer Success Services)


Weitere Lernressourcen

Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.