Note :

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

Présentation

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 document rapide et évolutif.

Oracle NoSQL Database Cloud Service est un service de base de données NoSQL entièrement géré offert par Oracle Corporation sur Oracle Cloud Infrastructure. Il fournit une valeur clé évolutive et un stockage de documents JSON avec une performance à faible latence et une mise à l'échelle automatique pour les applications en nuage natives.

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

Le flux de travail 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 s'exécutant dans Oracle Cloud Infrastructure (OCI).

Architecture

Le flux de travail de migration comprend les composants suivants :

Image

Processus de migration de haut niveau

  1. Provisionnez les tables DynamoDB et le seau Amazon S3.
  2. Activez PITR dans la table et exportez les tables DynamoDB vers le seau Amazon S3.
  3. Provisionner l'instance de calcul OCI
  4. Installer et configurer l'outil Oracle NoSQL Database Migrator sur le service de calcul.
  5. Configurer l'authentification AWS et OCI sur le calcul OCI.
  6. Exécuter la migration du seau Amazon S3 vers OCI NoSQL
  7. Valider les données migrées dans Oracle NoSQL Database.

Conditions requises

Avant de commencer, vérifiez que :

Tâche 1 : Provisionner les ressources Amazon DynamoDB

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

1. Créer un utilisateur IAM dans AWS

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

a. Se connecter à AWS Console

b. Naviguez jusqu'à IAM, Utilisateurs

c. Cliquez sur Créer un utilisateur

j. Affecter l'accès par programmation

Image

e. Vérifiez et cliquez sur Create user.

⚠️ Dans les environnements de production, utilisez des politiques IAM avec privilège minimal.

2. Créer une table DynamoDB dans AWS

a. Connectez-vous à la console AWS.

b. Naviguez jusqu'à DynamoDB.

Image

c. Cliquez sur Créer une table.

Image

j. Spécifier :

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

f. consultation des tables créées;

Image

3. Ajoutez une nouvelle colonne ou insérez des enregistrements-échantillons dans la table DynamoDB.

a. Connectez-vous à la console AWS.

b. Sélectionner la table

c. Cliquez sur Actions, Créer un article.

Image

j. Insérer des exemples d'enregistrements

Image

e. Valider les enregistrements

Image

Tâche 2 : Exporter la table DynamoDB vers le seau Amazon S3

Utilisez la capacité native export-to-S3 de DynamoDB pour extraire les données de table au format JSON DynamoDB vers le seau S3.

1. Créer un seau Amazon S3

a. Connectez-vous à la console AWS

b. Naviguez jusqu'à S3

c. Créer un nouveau seau

Image

j. Conserver les paramètres par défaut

e. Valider l'intervalle

Image

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

L'exportation DynamoDB nécessite une récupération jusqu'à un point dans le temps. La récupération après sinistre doit être activée au niveau de la table avant de l'exporter.

a. Sélectionner une table

b. Activer la récupération en un point dans le temps

Image

c. Après avoir activé PITR.

Image

3. Exporter les données de table vers le seau S3.

a. Connectez-vous à la console AWS.

b. Sélectionner une table

c. Cliquez sur Exporter vers S3

j. Sélectionner :

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éparer l'environnement Oracle Cloud Infrastructure

1. Créer un compartiment

a. Connectez-vous à la console OCI.

b. Naviguez jusqu'à Identité et sécurité, compartiments.

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

2. Créer une instance de calcul

a. Naviguez jusqu'à Calcul, Instances.

b. Cliquez sur Créer une instance.

c. Sélectionnez :

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

3. Installer Oracle NoSQL Database Migrator

Oracle NoSQL Migrator lit les fichiers d'exportation DynamoDB à partir d'Amazon S3 et importe des données dans la base de données Oracle NoSQL pour OCI. Nous installerons l'outil de migration Oracle NoSQL sur l'une des instances de calcul OCI créées ci-dessus.

a. Installer Java 11

Oracle NoSQL Database Migrator nécessite l'exécution de Java sur le calcul.

sudo yum install java-11

b. Ensemble Extract Migrator

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, une authentification internuage sécurisée doit être configurée pour permettre à l'instance de calcul d'accéder à la fois 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 responsable de la table Oracle NoSQL Database Cloud Service cible. Cet utilisateur doit être autorisé à 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.

j. Record :

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.

Private Key (Clé privée) :

c. Copiez la clé privée sur le service de calcul en tant que /home/opc/.oci/ociuser.pem.

/home/opc/.oci/ociuser.pem

Fichier de configuration :

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

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 DynamoDB Amazon sont exportées.

a. Connectez-vous à la console AWS.

b. Allez à IAM, Utilisateur, Données 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 données 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 de données 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

Migrator nécessite 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 (le dissipateur). Sous la note DDBPartitionKey et DDBSortKey du tableau 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 OCI.

b. Naviguez jusqu'à Base de données, Oracle NoSQL Database, Tables.

Image

c. Sélectionnez le compartiment approprié.

j. Ouvrez la table migrée.

Image

e. Vérifiez les enregistrements.

Image

Considérations relatives à la migration et meilleures pratiques

Planification de la capacité

Sécurité

Tables volumineuses

Pour les exportations de plusieurs téraoctets :

Traitement de la durée de vie

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

"includeTTL": true

Migration de 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 flux de travail de migration de bout en bout d'Amazon DynamoDB vers Oracle NoSQL Database Cloud Service à l'aide de fonctionnalités d'exportation natives et d'Oracle NoSQL Database Migrator.

Cette approche permet :

Avec une planification appropriée, une configuration sécurisée et un réglage de la capacité, les organisations peuvent migrer les données NoSQL de façon transparente sur toutes les plateformes en nuage.

Dépannage

Nettoyer les ressources

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

Remerciements

Auteur - Dharmesh Patel (architecte en nuage principal, services succès client)


Ressources d'apprentissage supplémentaires

Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

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