Como faço para restaurar o backup da minha tabela do Amazon DynamoDB para uma região diferente?

Data da última atualização: 17/08/2022

Quero restaurar o backup da minha tabela do Amazon DynamoDB para uma região diferente.

Resolução

Para restaurar sua tabela do DynamoDB para uma região diferente, você pode usar uma das abordagens a seguir.

Restaurar uma tabela do DynamoDB para uma região diferente usando o DynamoDB

  1. Abra o console do DynamoDB.
  2. No painel de navegação, selecione Backups.
  3. Na lista exibida, escolha o backup do qual você deseja restaurar a tabela.
  4. Escolha Restaurar.
  5. Em Nome da tabela restaurada, insira o novo nome da tabela.
  6. Em índices secundários, selecione a opção desejada.
  7. Em Região da AWS de destino, selecione Entre regiões.
  8. Em Selecione a região da AWS de destino, escolha a região desejada.
  9. Em Gerenciamento de chaves de criptografia, selecione a opção desejada.
  10. Escolha Restaurar.

Restaurar uma tabela do DynamoDB para uma região diferente usando o AWS Glue

Você pode usar um trabalho do AWS Glue para restaurar uma tabela do DynamoDB para outra região. O AWS Glue oferece mais flexibilidade com o processo de restauração. Você pode escolher essa abordagem se não quiser restaurar todos os atributos ou campos para a tabela de destino na nova região. Essa abordagem funciona apenas para uma tabela exportada para o Amazon Simple Storage Service (Amazon S3).

1.    Depois de exportar a tabela do DynamoDB para o Amazon S3 usando o recurso Exportar para S3, crie um trabalho do AWS Glue. Certifique-se de especificar as seguintes informações na guia Script:

datasource0 = glueContext.create_dynamic_frame.from_options(
    connection_type="dynamodb",
    connection_options={
        "dynamodb.export": "ddb",
        "dynamodb.tableArn": "arn:aws:dynamodb:source-region:account-number:table/TableName",
        "dynamodb.unnestDDBJson": True,
        "dynamodb.s3.bucket": "example-bucket",
        "dynamodb.s3.prefix": "dynamodb",
        "dynamodb.s3.bucketOwner": "account-number",
    }
)

Observação: certifique-se de usar o nó de transformação ApplyMapping e especifique os campos que devem estar presentes na tabela de destino. Essa configuração gera automaticamente o código PySpark com base na entrada fornecida.

Exemplo:

applymapping1 = ApplyMapping.apply(frame = datasource0, mappings = [("resource_id", "string", "resource_id", "string")], transformation_ctx = "applymapping1")

2.    Especifique uma operação de coletor para gravar diretamente na tabela de destino na região de destino.

Exemplo:

glueContext.write_dynamic_frame_from_options (frame = MappedFrame, connection_type = "dynamodb", connection_options = { "dynamodb.region": "example-region", "dynamodb.output.tableName": "example_table", "dynamodb.throughput.write.percent": "1.0" })

3.    Execute o trabalho no console do AWS Glue para carregar dados da região atual para a região de destino.