Remarques :

Migrer des données d'Amazon DynamoDB vers la table Oracle NoSQL Database

Introduction

Amazon DynamoDB est un service de base de données NoSQL entièrement géré proposé par Amazon Web Services qui fournit un stockage de données clé-valeur et de documents rapide et évolutif.

Oracle NoSQL Database Cloud Service est un service de base de données NoSQL entièrement géré proposé par Oracle Corporation sur Oracle Cloud Infrastructure. Il fournit un stockage de documents JSON et clé-valeur évolutif avec des performances à faible latence et un redimensionnement automatique pour les applications cloud natives.

Ce tutoriel explique comment migrer des données d'Amazon DynamoDB vers Oracle NoSQL Database Cloud Service à l'aide de l'outil Oracle NoSQL Database Migrator.

Le workflow de migration utilise la fonctionnalité native export-to-S3 de DynamoDB pour extraire les données de table au format JSON DynamoDB. Les données exportées sont ensuite importées dans Oracle NoSQL Database Cloud Service exécuté dans Oracle Cloud Infrastructure (OCI).

Architecture

Le workflow de migration se compose des composants suivants :

image

Processus de migration de haut niveau

  1. Provisionner les tables DynamoDB et le bucket Amazon S3.
  2. Activez PITR dans la table et exportez les tables DynamoDB vers le bucket Amazon S3.
  3. Provisionner une instance de calcul OCI
  4. Installez et configurez l'outil Oracle NoSQL Database Migrator sur Compute.
  5. Configurez l'authentification AWS et OCI sur OCI Compute.
  6. Exécuter la migration du bucket Amazon S3 vers OCI NoSQL
  7. Valider les données migrées dans Oracle NoSQL Database.

Prérequis

Avant de commencer, vérifiez les points suivants :

Tâche 1 : provisionnement des ressources Amazon DynamoDB

Dans ce tutoriel, nous allons provisionner uniquement les ressources de base requises dans AWS, qui sont obligatoires pour cet exercice.

1. Création d'un utilisateur IAM dans AWS

Créez un utilisateur IAM dédié pour gérer les opérations DynamoDB.

a. Connexion à AWS Console

b. Accédez à IAM, Utilisateurs

c. Cliquez sur Create User (Créer un utilisateur).

d. Affecter un accès par programmation

image

e. Vérifiez et cliquez sur Create user.

⚠️ Dans les environnements de production, utilisez des stratégies IAM avec le moins de privilèges possible.

2. Créer une table DynamoDB dans AWS

a. Connectez-vous à la console AWS.

b. Accédez à DynamoDB.

image

c. Cliquez sur Créer une table.

image

d. Indiquez les éléments suivants :

e. Acceptez les paramètres par défaut et créez la table.

f. Consulter les tables créées.

image

3. Ajoutez une nouvelle colonne ou insérez des exemples d'enregistrements dans la table DynamoDB.

a. Connectez-vous à la console AWS.

b. Sélectionnez la table

c. Cliquez sur Actions, Créer un élément.

image

d. Insérer des exemples d'enregistrements

image

e. Valider les enregistrements

image

Tâche 2 : exporter la table DynamoDB vers le bucket Amazon S3

Utilisez la fonction export natif vers S3 de DynamoDB pour extraire les données de table au format JSON DynamoDB vers le bucket S3.

1. Créer un bucket Amazon S3

a. Se connecter à la console AWS

b. Accédez à S3

c. Créer un bucket

image

d. Conserver les paramètres par défaut

e. Valider le regroupement

image

2. Activer la récupération jusqu'à un point dans le temps

L'export DynamoDB requiert une récupération jusqu'à un point dans le temps. La récupération jusqu'à un point dans le temps doit être activée au niveau de la table avant d'être exportée.

a. Sélectionner un tableau

b. Activer la récupération à un moment donné

image

c. Après activation de PITR.

image

3. Exportez les données de table vers le bucket S3.

a. Connectez-vous à la console AWS.

b. Sélectionner un tableau

c. Cliquez sur Exporter vers S3.

d. Choisissez l'une des options suivantes :

e. Cliquez sur Exporter

image

image

4. Vérifier les données exportées

Après l'achèvement :

image

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

Contient :

image

Tâche 3 : préparation de l'environnement Oracle Cloud Infrastructure

1. Création d'un compartiment

a. Se connecter à la console OCI.

b. Accédez à Identité et sécurité, Compartiments.

c. Créez un compartiment pour la table Oracle NoSQL.

2. Création d'une instance Compute

a. Accédez à Compute , Instances.

b. Cliquez sur Create instance (Créer une instance).

c. Sélectionnez :

Cette instance de calcul exécute le programme de migration Oracle NoSQL Database.

3. Installer Oracle NoSQL Database Migrator

Oracle NoSQL Migrator lit les fichiers d'export DynamoDB à partir d'Amazon S3 et importe les données vers la base de données OCI Oracle NoSQL. Nous allons installer l'outil de migration Oracle NoSQL sur l'un des calculs OCI créés ci-dessus.

a. installation de Java 11

Oracle NoSQL Database Migrator exige que Java soit exécuté sur le calcul.

sudo yum install java-11

b. package de migration d'extraction

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

Vérifiez l'installation :

[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

Tâche 4 : configurer l'accès sécurisé (OCI et AWS)

Pour utiliser Oracle NoSQL Migrator, l'authentification inter-cloud sécurisée doit être configurée pour permettre à l'instance Compute d'accéder aux ressources Amazon S3 et Oracle Cloud Infrastructure (OCI).

1. Créer une clé d'API OCI

Dans la console OCI, créez une clé d'API pour l'utilisateur OCI qui sera propriétaire de la table Oracle NoSQL Database Cloud Service cible. Cet utilisateur doit disposer des droits d'accès nécessaires pour créer et gérer la table Oracle NoSQL Database Cloud Service.

a. Dans la console OCI, ouvrez Profil, clés d'API.

b. Ajouter une nouvelle clé d'API.

image

c. Téléchargez la clé privée.

d. Enregistrement :

image

2. Créer un fichier de configuration OCI

a. Utilisez SSH pour vous connecter en tant qu'utilisateur opc à l'instance de calcul créée précédemment.

b. Créez tous les fichiers d'identité OCI sous /home/opc/.oci directory.

Clé privée:

c. Copiez la clé privée sur Compute en tant que /home/opc/.oci/ociuser.pem.

/home/opc/.oci/ociuser.pem

Fichier de configuration:

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

Par exemple :

[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. Créer des clés d'accès AWS

Dans la console AWS, créez une clé d'accès (si elle n'existe pas déjà) pour l'utilisateur qui accèdera au stockage d'objets Amazon S3 où les données Amazon DynamoDB sont exportées.

a. Connectez-vous à la console AWS.

b. Accédez à IAM, utilisateur, informations d'identification de sécurité

c. Créer une clé d'accès

Cas d'utilisation : application exécutée en dehors d'AWS.

image

4. Configurer les informations d'identification AWS

Créez les fichiers suivants sur l'instance de calcul :

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

Exemple de configuration :

[default]
region=<aws_region>

Exemples d'informations d'identification :

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

Tâche 5 : configurer et exécuter Oracle NoSQL Migrator

Le migrateur requiert un fichier de configuration JSON décrivant :

1. Créer un fichier de configuration de migration

Créez un fichier JSON de configuration de migration qui inclut des informations sur la source et la cible (récepteur). Sous la note d'évier DDBPartitionKey et DDBSortKey de la table DynamoDB.

Créer:

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

Exemple de configuration :

{
  "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"
}

Présentation du mode de schéma par défaut

Lorsque defaultSchema: true :

Oracle NoSQL crée une table avec :

Tous les attributs DynamoDB non clés sont stockés dans document.

2. Exécuter la migration

Dans l'instance de calcul, accédez au sous-répertoire 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

Une fois l'exécution réussie, la sortie affiche le nombre d'enregistrements traités.

Journal de migration réussi :

[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.

Tâche 6 : valider la migration

Après une exécution réussie de Data Migrator, tous les enregistrements de table insérés dans DynamoDB doivent être visibles dans Oracle NoSQL.

a. Ouvrez la console oracle.

b. Accédez à Database, Oracle NoSQL Database, Tables.

image

c. Sélectionnez le compartiment approprié.

d. Ouvrez la table migrée.

image

e. Vérifiez les enregistrements.

image

Remarques concernant la migration et meilleures pratiques

Planification de capacité

Sécurité (Security)

Tables volumineuses

Pour les exportations de plusieurs téraoctets :

Gestion de la durée de vie

Si la durée de vie DynamoDB est requise, activez :

"includeTTL": true

Migration sur plusieurs tables

Automatisez les exportations à l'aide du script AWS CLI en cas de migration de plusieurs tables.

Conclusion

Ce tutoriel a présenté un workflow de migration de bout en bout d'Amazon DynamoDB vers Oracle NoSQL Database Cloud Service en utilisant des fonctionnalités d'export natives et Oracle NoSQL Database Migrator.

Cette approche permet :

Grâce à une planification, une configuration et un réglage appropriés des capacités, les entreprises peuvent effectuer une migration transparente des données NoSQL sur les plates-formes cloud.

Dépannage

Nettoyer les ressources

Après avoir terminé ce tutoriel, envisagez de supprimer les ressources suivantes pour éviter les frais inutiles :

Accusés de réception

Auteur - Dharmesh Patel (architecte cloud principal, Customer Success Services)


Ressources de formation supplémentaires

Explorez d'autres ateliers sur le site docs.oracle.com/learn ou accédez à d'autres contenus d'apprentissage gratuits sur le canal Oracle Learning YouTube. En outre, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, consultez Oracle Help Center.