Observação:

Migre Dados da Amazon DynamoDB para a Tabela do Oracle NoSQL Database

Introdução

O Amazon DynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado oferecido pela Amazon Web Services que fornece valor-chave rápido e escalável e armazenamento de dados de documentos.

Oracle NoSQL Database Cloud Service é um serviço de banco de dados NoSQL totalmente gerenciado oferecido pela Oracle Corporation no Oracle Cloud Infrastructure. Ele fornece valor-chave escalável e armazenamento de documentos JSON com desempenho de baixa latência e dimensionamento automático para aplicativos nativos da nuvem.

Este tutorial descreve como migrar dados do Amazon DynamoDB para o Oracle NoSQL Database Cloud Service usando a ferramenta Oracle NoSQL Database Migrator.

O workflow de migração usa o recurso nativo de exportação para S3 do DynamoDB para extrair dados da tabela no formato JSON DynamoDB. Os dados exportados são então importados para o Oracle NoSQL Database Cloud Service em execução no OCI (Oracle Cloud Infrastructure).

Arquitetura

O workflow de migração consiste nos seguintes componentes:

image

Processo de Migração de Alto Nível

  1. Provisione tabelas DynamoDB e o Bucket do Amazon S3.
  2. Ative o PITR na Tabela e exporte tabelas DynamoDB para o Bucket do Amazon S3.
  3. Provisionar instância de computação do OCI
  4. Instale e configure a ferramenta Oracle NoSQL Database Migrator no serviço Compute.
  5. Configurar a autenticação do AWS e do OCI no OCI Compute.
  6. Execute a migração do bucket do Amazon S3 para o OCI NoSQL
  7. Valide os dados migrados no Oracle NoSQL Database.

Pré-requisitos

Antes do início, verifique se:

Tarefa 1: Provisionar Recursos do Amazon DynamoDB

Neste tutorial, vamos provisionar apenas os recursos básicos necessários na AWS, que são obrigatórios para este exercício.

1. Criar Usuário do IAM no AWS

Crie um usuário dedicado do IAM para gerenciar operações do DynamoDB.

a. Faça login no AWS Console

b. Navegue até IAM, Users

c. Clique em Criar Usuário

d. Atribuir acesso programático

image

e. Verifique e clique em Criar usuário.

⚠️ Em ambientes de produção, use políticas do IAM de menor privilégio.

2. Criar uma tabela DynamoDB no AWS

a. Acesse a Console do AWS.

b. Navegue até DynamoDB.

image

c. Clique em Criar tabela.

image

d. Especifique:

e. Aceite as definições padrão e crie a tabela.

f. Examine as tabelas criadas.

image

3. Adicione uma nova coluna ou insira registros de amostra na tabela DynamoDB.

a. Acesse a Console do AWS.

b. Selecione a tabela

c. Clique em Ações, Criar Item

image

d. Inserir registros de amostra

image

e. Validar Registros

image

Tarefa 2: Exportar Tabela DynamoDB para o Bucket do Amazon S3

Use o recurso de exportação nativa para S3 do DynamoDB para extrair dados da tabela no formato JSON DynamoDB para o bucket S3.

1. Criar Bucket do Amazon S3

a. Acesse a Console do AWS

b. Navegue até S3

c. Criar um novo bucket

image

d. Manter configurações padrão

e. Validar Bucket

image

2. Ativar PITR (Point-In-Time Recovery)

A exportação DynamoDB requer Recuperação de Ponto no Tempo. PITR deve ser ativado no nível da tabela, antes de exportá-lo.

a. Selecionar tabela

b. Ativar recuperação pontual

image

c. Depois de ativar o PITR.

image

3. Exportar Dados da Tabela para o Bucket S3.

a. Acesse a Console do AWS.

b. Selecionar tabela

c. Clique em Exportar para S3

d. Escolha:

e. Clique em Exportar

image

image

4. Verificar Dados Exportados

Após a conclusão:

image

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

Contém:

image

Tarefa 3: Preparar o Ambiente do Oracle Cloud Infrastructure

1. Criar um Compartimento

a. Acesse o Console do OCI.

b. Navegue até Identity & Security, Compartments.

c. Crie um novo compartimento para a tabela NoSQL do sistema Oracle.

2. Criar uma Instância de Computação

a. Navegue até Compute , Instances.

b. Clique em Criar instância.

c. Selecionar:

Esta instância de computação executa o Oracle NoSQL Database Migrator.

3. Instalar o Oracle NoSQL Database Migrator

O Oracle NoSQL Migrator lê arquivos de exportação DynamoDB do Amazon S3 e importa dados para o banco de dados Oracle NoSQL da OCI. Instalaremos a ferramenta Oracle NoSQL Migrator em uma das instâncias de computação da OCI criadas acima.

a. Instalar o Java 11

O Oracle NoSQL Database Migrator exige que o Java esteja em execução na computação.

sudo yum install java-11

b. Extrair Pacote do Migrador

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

Verificar instalação:

[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

Tarefa 4: Configurar o Acesso Seguro (OCI e AWS)

Para usar o Oracle NoSQL Migrator, a autenticação segura entre nuvens deve ser configurada para permitir que a instância do serviço Compute acesse os recursos do Amazon S3 e da Oracle Cloud Infrastructure (OCI).

1. Criar Chave de API do OCI

Na console do OCI, crie uma chave de API para o usuário do OCI que será proprietário da tabela de destino do Oracle NoSQL Database Cloud Service. Esse usuário deve ter permissões para criar e gerenciar a tabela do Oracle NoSQL Database Cloud Service.

a. Na Console do OCI, abra Perfil, Chaves de API.

b. Adicione uma nova chave de API.

image

c. Faça download da chave privada.

d. Registro:

image

2. Criar Arquivo de configuração do OCI

a. Use SSH para fazer log-in como usuário opc na instância de computação criada anteriormente.

b. Crie todo o arquivo de identidade do OCI em /home/opc/.oci directory.

Chave Privada:

c. Copie a chave privada na computação como /home/opc/.oci/ociuser.pem.

/home/opc/.oci/ociuser.pem

Arquivo de configuração:

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

Exemplo:

[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. Criar Chaves de Acesso AWS

No console da AWS, crie uma chave de acesso (se ainda não existir) para o usuário que acessará o Amazon S3 Object Storage no qual os dados do Amazon DynamoDB estão sendo exportados.

a. Acesse a Console do AWS.

b. Vá para IAM, Usuário, Credenciais de Segurança

c. Criar Chave de Acesso

Caso de uso: Aplicativo em execução fora da AWS.

image

4. Configurar credenciais da AWS

Crie os seguintes arquivos na instância de computação:

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

Exemplo de configuração:

[default]
region=<aws_region>

Credenciais de exemplo:

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

Tarefa 5: Configurar e Executar o Oracle NoSQL Migrator

O Migrator requer um arquivo de configuração JSON que descreva:

1. Criar Arquivo de Configuração de Migração

Crie um arquivo JSON de configuração de migração que inclua informações sobre a origem e o destino (sink). Na nota DDBPartitionKey e DDBSortKey da tabela DynamoDB.

Criar:

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

Exemplo de configuração:

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

Noções Básicas Sobre o Modo de Esquema Padrão

Quando defaultSchema: true:

O Oracle NoSQL cria a tabela com:

Todos os atributos DynamoDB não relacionados à chave são armazenados dentro de document.

2. Executar Migração

Na instância de computação, altere o diretório para o subdiretório 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

Após a execução bem-sucedida, a saída exibe o número de registros processados.

Log de migração bem-sucedido:

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

Tarefa 6: Validar Migração

Após uma execução bem-sucedida do Data Migrator, todos os registros de Tabela inseridos em DynamoDB devem ficar visíveis no Oracle NoSQL.

a. Abra a Console da OCI.

b. Navegue até Banco de Dados, Oracle NoSQL Database, Tabelas.

image

c. Selecione o compartimento apropriado.

d. Abra a tabela migrada.

image

e. Verifique os registros.

image

Considerações sobre Migração e Melhores Práticas

Capacity Planning

Segurança

Tabelas Grandes

Para exportações de vários terabytes:

Manuseio de TTL

Se o DynamoDB TTL for necessário, ative:

"includeTTL": true

Migração de Várias Tabelas

Automatize as exportações usando scripts da CLI da AWS se estiver migrando várias tabelas.

Conclusão

Este tutorial demonstrou um fluxo de trabalho de migração de ponta a ponta do Amazon DynamoDB para o Oracle NoSQL Database Cloud Service usando recursos de exportação nativos e o Oracle NoSQL Database Migrator.

Essa abordagem permite:

Com planejamento adequado, configuração segura e ajuste de capacidade, as organizações podem obter migração de dados NoSQL perfeita em plataformas de nuvem.

Diagnosticando e Solucionando Problemas

Limpar Recursos

Após concluir este tutorial, considere remover os seguintes recursos para evitar cobranças desnecessárias:

Confirmações

Autor - Dharmesh Patel (Arquiteto de Nuvem Principal, Customer Success Services)


Mais Recursos de Aprendizado

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal do Oracle Learning YouTube. Além disso, acesse education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.