DynamoDB Transações de várias estaturas

DynamoDB Transações de várias estaturas
O DynamoDB Multi-Statement Transactions é um recurso no DynamoDB da AWS que permite que os gerentes de dados executem várias operações de gravação em um ou mais itens em uma tabela DynamoDB usando uma única transação. Assim, todas as operações de gravação tentadas terão sucesso ou falharão como um grupo.

Isso ajuda a manter a consistência de seus dados, pois garante que seus dados permaneçam consistentes, mesmo que alguma das operações na transação falhe. Além disso, as transações de várias estaturas no DynamoDB ajudam a evitar problemas como atualizações parciais ou corrupção de dados.

Este artigo explica quais são as transações de várias estaturas do DynamoDB e quando usá-las. Esta redação também fornece um tutorial passo a passo sobre o uso de transações com várias estaturas do DynamoDB e alguns exemplos.

Como usar transações de várias estaturas no dynamoDB

Você pode usar transações com várias declarações do DynamoDB sempre que precisar garantir que várias operações na sua tabela DynamoDB sejam executadas juntas como uma unidade atômica.

Por exemplo, ajuda a atualizar vários registros em uma tabela simultaneamente ou a transferir dados entre duas tabelas de forma mais consistente e confiável. Mas, enquanto isso, verifique se sua mesa está no modo transacional.

Além disso, as operações devem ser executadas usando o TransactwriteItems ou TransactgetItems APIs. A transação será comprometida se todas as operações forem bem -sucedidas e revertidas se alguma das operações falhar.

Além disso, as transações de multi-estatização do DynamoDB têm um limite de 25 operações por transação e um máximo de 4 MB de dados por transação.

Para ativar as transações de múltiplas declarações no DynamoDB, você deve especificar o ID da transação e as operações que precisam ser executadas. DynamoDB garantirá que os processos sejam realizados na ordem correta.

Para usar transações com várias estaturas no DynamoDB, siga estas etapas:

  1. Ativar a capacidade de transação de multi-estatamento do DynamoDB, definindo o EnablemultistatementRtransactionsupport bandeira para verdadeiro no AWS.DynamoDB.DocumentClient instância.
  2. Iniciar uma transação chamando o transactwrite ou transactget Método no AWS.DynamoDB.DocumentClient exemplo, passando nas operações desejadas como uma matriz. Como alternativa, você pode ligar para o “StartTransaction” comando no seu cliente dynamoDB.
  3. Para cada operação na matriz, especifique a ação desejada (e.g., colocar, atualizar, excluir, pegar, etc.) e os parâmetros correspondentes (e.g., Nome da tabela, chave de partição, chave de classificação, valores de atributo, etc.).
  4. Executar a transação chamando o promessa Método no objeto de transação retornado. Você também pode optar por usar o comprometer-se método.
  5. Monitorar o progresso da transação usando o sobre método no objeto de transação, passando no evento desejado (e.g., sucesso, erro, etc.) e uma função de retorno de chamada para lidar com o evento.
  6. Uma transação de várias estaturas modificará seus dados de acordo com as operações especificadas se a transação for bem-sucedida. Se a transação falhar, não modificará os dados. Em vez disso, um erro será devolvido.
  7. Para garantir a consistência dos dados e evitar conflitos, é recomendável usar expressões condicionais na matriz de operações para verificar valores pré-existentes e fornecer o estado desejado antes de modificar dados.

Exemplos de transações de várias estaturas do DynamoDB

Exemplo 1:

Para criar uma transação de várias estaturas no DynamoDB, podemos usar a seguinte sintaxe:

// inicia a transação
var params = transactItems: [
// Declaração 1 - Item de atualização

Atualizar:
TableName: "MyTable",
Chave:
"Id": n: "1",,
UpdateExpression: "Set #Name =: Name",
ExpressionAttributeNames:
"#nome nome"
,
ExpressionAttributeValues:
": name": s: "ken brian"
,
ReturnValues: "All_New"

,
// Declaração 2 - Excluir item

Exclua:
TableName: "MyTable",
Chave:
"Id": n: "2",
, ReturnValues: "All_old"


]

DynamoDB.transactWriteItems (params, function (err, dados)
se (err) console.log (err, err, err.pilha);
caso contrário, console.log (dados);
);

A transação de múltiplas declarações acima começa com o parâmetro "transactitems" e contém uma variedade de declarações. A primeira declaração é uma operação de atualização. Ele atualiza um item com um ID específico na tabela "myTable" (você precisará especificar o nome da tabela).

A segunda declaração apresenta uma operação de exclusão. Ele pretende excluir um item com um ID específico na mesma tabela. A transação é executada chamando o método "transactwriteItems", que leva os parâmetros de transação como entrada e retorna uma resposta com os resultados da transação.

Exemplo 2:

Nosso segundo exemplo é o seguinte:

var params =
Transactitems: [

Colocar:
TableName: 'Usuários',
Item:
UserID: 'XXX123ABCD',
primeiro nome: 'ken',
Nome do último: 'Brian',
Email: '[email protected] ',
Telefone: 'xxxxxxxxx'


,

Colocar:
TableName: 'Ordens',
Item:
OrderId: 'DFA445D,
UserID: 'XXX123ABCD',
OrderDate: '2022-11-08',
Unid: [

ProductId: '989v3',
Quantidade: 7

]


,

Colocar:
TableName: 'Products',
Item:
ProductId: '989v3',
Nome: 'Nome do produto',
Preço: 210.49



]
;
DynamoDB.transactwrite (params, function (err, dados)
se (err) console.log (err);
caso contrário, console.log (dados);
);

Neste exemplo, criamos várias transações que pretendem colocar um novo usuário, pedido e produto em suas respectivas tabelas do DynamoDB. Se alguma operação falhar, toda a transação será revertida e o sistema não adicionará nenhum dos dados às tabelas.

Conclusão

Embora isso possa ser desconhecido para muitos, são fáceis de usar o DynamoDB Multi-Statement Transactions e ajudarão você a manter a consistência de seus dados. Observe que você não pode usar transações de várias estatamentos em índices globais. No entanto, isso não remove nenhum dos benefícios deste recurso AWS DynamoDB.