

# Migrar uma tabela usando a exportação para o S3 e a importação do S3
<a name="bp-migrating-table-between-accounts-s3"></a>

**Pré-requisitos**
+ É necessário habilitar a recuperação para um ponto no tempo (PITR) para sua tabela a fim de realizar a exportação para o S3. Para obter mais informações, consulte [Habilitar a recuperação para um ponto no tempo no DynamoDB](PointInTimeRecovery_Howitworks.md).
+ Permissões válidas do IAM para realizar a exportação. Para obter mais informações, consulte [Solicitação de uma exportação de tabela no DynamoDB](S3DataExport_Requesting.md).
+ Permissões válidas do IAM suficientes para realizar a importação. Para obter mais informações, consulte [Solicitação de importação de tabela no DynamoDB](S3DataImport.Requesting.md).

**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](https://aws.amazon.com/dynamodb/pricing/).

**nota**  
 Há limites de tamanho e quantidade de objetos ao importar do S3 para o DynamoDB. Para obter mais informações, consulte [Importar cotas](S3DataImport.Validation.md#S3DataImport.Validation.limits).

## Solicitar uma exportação de tabela para o Amazon S3
<a name="bp-migrating-table-between-accounts-s3-table-export"></a>

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

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

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

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

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

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

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

## Solicitar uma importação de tabela do Amazon S3
<a name="bp-migrating-table-between-accounts-s3-table-import"></a>

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

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

1. Na página exibida, selecione **Import from S3** (Importar do S\$1).

1. Insira o URL de origem do Amazon S3. Você também pode encontrá-lo usando o botão **Procurar no S3**. O formato do caminho esperado é `s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/data/`.

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

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

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

1. Escolha **Próximo**. Em **Especificar detalhes da tabela**, escolha as opções referentes à nova tabela que será criada para armazenar seus dados.

1. Escolha **Próximo**. Em **Definir as configurações da tabela**, personalize quaisquer configurações adicionais da tabela, se aplicável.

1. 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 **Importações do S3** com o status **Importando**. Não é possível acessar a tabela durante esse período. As importações pequenas costumam ser concluídas em questão de minutos, mas tabelas em escala de terabytes podem levar mais de uma hora.

1. Após a conclusão da importação, quando o status é exibido como **Ativo**, você pode começar a usar a tabela.

## Manter as tabelas sincronizadas durante a migração
<a name="bp-migrating-table-between-accounts-s3-table-sync"></a>

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.