Note:

Migración de datos de Amazon DynamoDB a la tabla de Oracle NoSQL Database

Introducción

Amazon DynamoDB es un servicio de base de datos NoSQL totalmente gestionado que ofrece Amazon Web Services y que proporciona un almacenamiento de datos de documentos y clave-valor rápido y escalable.

Oracle NoSQL Database Cloud Service es un servicio de base de datos NoSQL totalmente gestionado que ofrece Oracle Corporation en Oracle Cloud Infrastructure. Proporciona almacenamiento de clave-valor y documentos JSON ampliable con rendimiento de baja latencia y ampliación automática para aplicaciones en la nube.

En este tutorial se describe cómo migrar datos de Amazon DynamoDB a Oracle NoSQL Database Cloud Service mediante la herramienta Oracle NoSQL Database Migrator.

El flujo de trabajo de migración utiliza la capacidad nativa de exportación a S3 de DynamoDB para extraer datos de tabla en formato JSON DynamoDB. A continuación, los datos exportados se importan a Oracle NoSQL Database Cloud Service que se ejecuta en Oracle Cloud Infrastructure (OCI).

Arquitectura

El flujo de trabajo de migración consta de los siguientes componentes:

image

Proceso de migración de alto nivel

  1. Aprovisione las tablas DynamoDB y el cubo de Amazon S3.
  2. Active PITR en la tabla y exporte las tablas DynamoDB al cubo de Amazon S3.
  3. Aprovisionar instancia informática de OCI
  4. Instale y configure la herramienta Oracle NoSQL Database Migrator en Compute.
  5. Configure la autenticación de AWS y OCI en OCI Compute.
  6. Ejecute la migración del cubo de Amazon S3 a OCI NoSQL
  7. Valide los datos migrados en Oracle NoSQL Database.

Requisitos

Antes de comenzar, asegúrese de que se cumplan los siguientes requisitos:

Tarea 1: Aprovisionamiento de recursos de Amazon DynamoDB

En este tutorial, aprovisionaremos solo los recursos básicos necesarios en AWS, que son obligatorios para este ejercicio.

1. Crear usuario de IAM en AWS

Cree un usuario de IAM dedicado para gestionar las operaciones de DynamoDB.

a. Conexión a la consola de AWS

b. Vaya a IAM, Usuarios

c. Haga clic en Create User.

d. Asignar acceso mediante programación

image

e. Revise y haga clic en Create user.

⚠️ En entornos de producción, utilice políticas de IAM con el mínimo de privilegios.

2. Crear una tabla DynamoDB en AWS

a. Conéctese a la consola de AWS.

b. Vaya a DynamoDB.

image

c. Haga clic en Crear tabla.

image

d. Especifique:

e. Acepte la configuración predeterminada y cree la tabla.

f. Revisión de tablas creadas.

image

3. Agregue una nueva columna o inserte registros de muestra en la tabla DynamoDB.

a. Conéctese a la consola de AWS.

b. Seleccione la tabla

c. Haga clic en Acciones, Crear artículo.

image

d. Insertar registros de muestra

image

e. Validar registros

image

Tarea 2: Exportación de la tabla DynamoDB al cubo de Amazon S3

Utilice la capacidad native export-to-S3 de DynamoDB para extraer datos de tabla en formato JSON DynamoDB en el cubo S3.

1. Crear cubo de Amazon S3

a. Inicio de sesión en la consola de AWS

b. Vaya a S3.

c. Crear nuevo bucket

image

d. Mantener configuración predeterminada

e. Validar cubo

image

2. Activar recuperación point-in-time (PITR)

La exportación DynamoDB requiere una recuperación point-in-time. PITR debe estar activado en el nivel de tabla antes de exportarlo.

a. Seleccionar Tabla

b. Activar recuperación puntual

image

c. Después de activar PITR.

image

3. Exportar datos de tabla a cubo S3.

a. Conéctese a la consola de AWS.

b. Seleccionar Tabla

c. Haga clic en Exportar a S3.

d. Seleccione:

e. Haga clic en Exportar

image

image

4. Verificar datos exportados

Después de la compleción:

image

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

Contiene:

image

Tarea 3: Preparación del entorno de Oracle Cloud Infrastructure

1. Creación de un compartimento

a. Conectarse a la consola de OCI.

b. Vaya a Identity & Security, Compartments.

c. Cree un nuevo compartimento para la tabla NoSQL de Oracle.

2. Creación de una Instancia de Compute

a. Vaya a Recursos informáticos, instancias.

b. Haga clic en Create instance.

c. Seleccione:

Esta instancia informática ejecuta el migrador de Oracle NoSQL Database.

3. Instalación de Oracle NoSQL Database Migrator

Oracle NoSQL Migrator lee archivos de exportación DynamoDB de Amazon S3 e importa datos a la base de datos NoSQL de Oracle de OCI. Instalaremos la herramienta NoSQL Migrator de Oracle en uno de los recursos informáticos de OCI creados anteriormente.

a. Instalar Java 11

Oracle NoSQL Database Migrator necesita que Java se ejecute en los recursos informáticos.

sudo yum install java-11

b. Extraer paquete de migrador

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

Verificar instalación:

[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

Tarea 4: Configuración del acceso seguro (OCI y AWS)

Para utilizar Oracle NoSQL Migrator, se debe configurar una autenticación entre nubes segura para permitir que la instancia informática acceda a los recursos de Amazon S3 y Oracle Cloud Infrastructure (OCI).

1. Crear clave de API de OCI

En la consola de OCI, cree una clave de API para el usuario de OCI que será el propietario de la tabla de destino de Oracle NoSQL Database Cloud Service. Este usuario debe tener permisos para crear y gestionar la tabla de Oracle NoSQL Database Cloud Service.

a. En la consola de OCI, abra Perfil, claves de API.

b. Agregue una clave de API nueva.

image

c. Descargue la clave privada.

d. Registro:

image

2. Crear archivo de configuración de OCI

a. Utilice SSH para conectarse como usuario de opc a la instancia informática creada anteriormente.

b. Cree todo el archivo de identidad de OCI en /home/opc/.oci directory.

Clave privada:

c. Copie la clave privada en Compute como /home/opc/.oci/ociuser.pem.

/home/opc/.oci/ociuser.pem

Archivo de configuración:

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

Por ejemplo:

[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. Crear claves de acceso de AWS

En la consola de AWS, cree una clave de acceso (si aún no existe) para el usuario que accederá al almacenamiento de objetos de Amazon S3 donde se exportan los datos de Amazon DynamoDB.

a. Conéctese a la consola de AWS.

b. Vaya a IAM, Usuario, Credenciales de seguridad

c. Crear clave de acceso

Caso de uso: aplicación que se ejecuta fuera de AWS.

image

4. Configurar credenciales de AWS

Cree los siguientes archivos en la instancia informática:

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

Ejemplo de configuración:

[default]
region=<aws_region>

Credenciales de ejemplo:

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

Tarea 5: Configurar y ejecutar el migrador NoSQL de Oracle

El migrador necesita un archivo de configuración JSON que describa:

1. Crear archivo de configuración de migración

Cree un archivo JSON de configuración de migración que incluya información sobre el origen y el destino (sink). En la nota DDBPartitionKey y DDBSortKey del cuadro DynamoDB.

Crear:

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

Ejemplo de configuración:

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

Descripción del Modo de Esquema por Defecto

Cuando defaultSchema: true:

Oracle NoSQL crea una tabla con:

Todos los atributos DynamoDB no de clave se almacenan dentro de document.

2. Ejecutar migración

En la instancia informática, cambie el directorio al subdirectorio 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

Después de la ejecución correcta, la salida muestra el número de registros procesados.

Log de migración correcto:

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

Tarea 6: Validar migración

Después de una ejecución correcta de Data Migrator, todos los registros de tabla insertados en DynamoDB deben estar visibles en Oracle NoSQL.

a. Abra la consola de OCI.

b. Vaya a Base de datos, Oracle NoSQL Database, Tablas.

image

c. Seleccione el compartimento adecuado.

d. Abra la tabla migrada.

image

e. Verifique los registros.

image

Consideraciones y mejores prácticas de migración

Planificación de Capacidad

Seguridad

Tablas grandes

Para exportaciones de varios terabytes:

Gestión de TTL

Si se necesita DynamoDB TTL, active:

"includeTTL": true

Migración de varias tablas

Automatice las exportaciones con secuencias de comandos de la CLI de AWS si migra varias tablas.

Conclusión

En este tutorial se ha demostrado un flujo de trabajo completo de migración de Amazon DynamoDB a Oracle NoSQL Database Cloud Service con capacidades de exportación nativas y Oracle NoSQL Database Migrator.

Este enfoque permite:

Con una planificación adecuada, una configuración segura y un ajuste de capacidad, las organizaciones pueden lograr una migración de datos NoSQL sin problemas en todas las plataformas en la nube.

Solución de problemas

Limpiar recursos

Después de completar este tutorial, considere la posibilidad de eliminar los siguientes recursos para evitar cargos innecesarios:

Acuses de recibo

Autor: Dharmesh Patel (arquitecto principal de la nube, Customer Success Services)


Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.