Usando uma implementação personalizada no.NET ou Java comAWS SDKs - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando uma implementação personalizada no.NET ou Java comAWS SDKs

Em vez de confiar em outrosAWS serviços para realizar cópias de tabelas entre contas, você pode criar uma solução personalizada usando .NET, Java, Python ou outra linguagem de programação compatível. AWSfornece SDKs, que permitem acesso programático aAWS serviços ou APIs, em vários idiomas. Essa solução requer experiência prática em desenvolvimento na linguagem que você usa.

Você pode criar um aplicativo de console (ou um novo endpoint de API, se você trabalha em uma API da Web) que pode ser invocado para realizar a cópia completa da tabela. A solução personalizada deve executar as seguintes etapas:

  1. Exclua a tabela do DynamoDB na conta de destino.

  2. Crie a tabela do DynamoDB (com capacidade sob demanda) e os índices na conta de destino. Como alternativa, você pode usar o modo de capacidade provisionada e definir as RCUs e as WCUs de acordo com suas necessidades.

  3. Copie dados da conta de origem para a conta de destino usando a operação de gravação em lote do DynamoDB noAWS SDK para reduzir o número de chamadas de serviço para o DynamoDB.

A implementação personalizada usa tokens de segurança para acessar as políticas do IAM que fornecem acesso às contas de origem e de destino.

Essa solução é mais adequada para tabelas do DynamoDB de tamanho pequeno (menos de 500 MB).

Para uma tabela do DynamoDB com 200 mil itens (tamanho médio do item 30 KB e tamanho da tabela de 250 MB), essa solução, incluindo a criação de tabelas e o preenchimento de dados, leva cerca de 5 minutos:

  • Modo de capacidade — provisionado, com 4000 RCUs e 4000 WCUs

  • Unidades de capacidade consumidas — 30 K RCUs e aproximadamente 400 K WCUs

Vantagens

  • A solução não depende de nenhumAWS serviço além do DynamoDB, portanto, há menos sobrecarga de manutenção.

  • A solução pode ficar sem servidor usando umaAWS Lambda função para executá-la. No entanto, o tempo de execução deve ser de 15 minutos ou menos.

Desvantagens

  • A solução consome mais RCUs e WCUs.

  • Talvez não seja uma boa solução para grandes conjuntos de dados, porque a solução exige conexões ativas com duas tabelas diferentes do DynamoDB em duas contas diferentes (usando dois tokens de segurança diferentes). Se a cópia da tabela de um grande conjunto de dados levar muito tempo, pode haver interrupções na conexão ou expiração do token de segurança, portanto, você deve implementar a lógica para lidar com essas possibilidades. Você também deve implementar a lógica para continuar a cópia de onde ela falhou.

Para obter mais informações, consulte Copiar tabelas do Amazon DynamoDB entre contas usando um padrão de implementação personalizado.