Migrar uma tabela usando a exportação para o S3 e a importação do S3 - Amazon DynamoDB

Migrar uma tabela usando a exportação para o S3 e a importação do S3

Pré-requisitos

Informações sobre preços

A AWS cobra pela PITR (com base no tamanho da tabela e no tempo em que a PITR permanece habilitada). Se você só precisar da PITR para a exportação, poderá desativá-la após a conclusão da exportação. A AWS também cobra pelas solicitações feitas ao S3, pelo armazenamento dos dados exportados no S3 e pela importação (com base no tamanho não compactado dos dados importados).

Para obter informações sobre os preços do DynamoDB, consulte Preço do Amazon DynamoDB.

nota

Há limites de tamanho e quantidade de objetos ao importar do S3 para o DynamoDB. Para ter mais informações, consulte Importar cotas.

Etapa 1: solicitar uma exportação de tabela para o Amazon S3

  1. Faça login no Console de Gerenciamento da AWS e abra o console do DynamoDB.

  2. No painel de navegação, no lado esquerdo do console, escolha Export to S3 (Exportar para o S3).

  3. Escolha uma tabela de origem e um bucket do S3 de destino. Insira o URL do bucket da conta de destino usando o formato s3://bucketname/prefix. O prefixo é uma pasta opcional para ajudar a manter seu bucket de destino organizado.

  4. Escolha Exportação completa. A Exportação completa gera o snapshot completo da tabela tal como ela estava no momento especificado.

    1. Selecione Hora atual para exportar o snapshot completo mais recente da tabela.

    2. Em Formato de arquivo exportado, escolha entre JSON do DynamoDB e Amazon Ion. A opção padrão é JSON do DynamoDB.

  5. Clique no botão Export (Exportar) para iniciar a exportação.

  6. As exportações de tabelas pequenas costumam ser concluídas em questão de minutos, mas tabelas na faixa de terabytes podem levar mais de uma hora.

Etapa 2: solicitar uma importação de tabela do Amazon S3

  1. Faça login no Console de Gerenciamento da AWS e abra o console do DynamoDB.

  2. No painel de navegação, no lado esquerdo do console, escolha Import from S3 (Importar do S3).

  3. Na página exibida, selecione Import from S3 (Importar do S#).

  4. Insira o URL de origem do Amazon S3. Você também pode encontrá-lo usando o botão Procurar no S3: s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/Data/.

  5. Especifique se você é o S3 bucket owner (Proprietário do bucket do S3).

  6. Em Compactação de arquivos de importação, selecione GZIP para corresponder à exportação.

  7. Em Formato de arquivo de importação, escolha JSON do DynamoDB para corresponder à exportação.

  8. Selecione o botão Próximo e escolha as opções para a nova tabela que será criada para armazenar os dados.

  9. Selecione novamente Next (Próximo) para revisar suas opções de importação e, em seguida, clique em Import (Importar) para iniciar a tarefa de importação. Você verá sua nova tabela listada em Tabelas com o status Criando. Não é possível acessar a tabela por enquanto.

  10. Quando a importação for concluída, o status será exibido como Ativo e você poderá começar a usar a tabela.

  11. As importações pequenas costumam ser concluídas em questão de minutos, mas tabelas na faixa de terabytes podem levar mais de uma hora.

Manter as tabelas sincronizadas durante a migração

Se você puder pausar as operações de gravação na tabela de origem durante a migração, a origem e a saída deverão ser idênticas após a migração. Se você não conseguir pausar as operações de gravação, a tabela de destino provavelmente ficará um pouco atrasada em relação à origem depois da migração. Para alcançar a tabela de origem, você pode usar o streaming (DynamoDB Streams ou Kinesis Data Streams para DynamoDB) para reproduzir as gravações que ocorreram na tabela de origem desde o backup ou a exportação.

Comece a ler os registros de fluxo antes do carimbo de data e hora da exportação da tabela de origem para o S3. Por exemplo, se a exportação para o S3 ocorreu às 14h e a importação para a tabela de destino foi concluída às 23h, você deverá iniciar a leitura de fluxos do DynamoDB a partir das 13h58. A tabela de opções de streaming para captura de dados de alteração resume os recursos de cada modelo de streaming.

O uso do DynamoDB Streams com o Lambda oferece uma abordagem simplificada para a sincronização de dados entre as tabelas de origem e de destino do DynamoDB. Você pode usar uma função do Lambda para reproduzir cada gravação na tabela de destino.

nota

Os itens são mantidos no DynamoDB Streams por 24 horas, portanto planeje a conclusão do backup e da restauração ou da exportação e importação dentro dessa janela.