Transacciones de estatdas múltiples de Dynamodb

Transacciones de estatdas múltiples de Dynamodb
Las transacciones de estados múltiples Dynamodb es una característica en DynamodB de AWS que permite a los administradores de datos realizar múltiples operaciones de escritura en uno o más elementos en una tabla DynamodB utilizando una sola transacción. Por lo tanto, todas las operaciones de escritura intentadas tendrán éxito o fallarán como grupo.

Esto ayuda a mantener la consistencia de sus datos, ya que garantiza que sus datos sigan siendo consistentes incluso si alguna de las operaciones en la transacción falla. Además, las transacciones de estados múltiples en DYNAMODB ayudan a evitar problemas como actualizaciones parciales o corrupción de datos.

Este artículo explica qué son las transacciones de estados múltiples Dynamodb y cuándo usarlas. Este artículo también proporciona un tutorial paso a paso sobre el uso de transacciones de estados múltiples DynamodB y algunos ejemplos.

Cómo usar transacciones de estados múltiples en DynamodB

Puede usar transacciones de estados múltiples DYNAMODB siempre que necesite asegurarse de que múltiples operaciones en su tabla DynamodB se realicen juntas como una unidad atómica.

Por ejemplo, ayuda a actualizar múltiples registros en una tabla simultáneamente o para transferir datos entre dos tablas de manera más consistente y confiable. Pero mientras esté en eso, asegúrese de que su tabla esté en modo transaccional.

Además, las operaciones deben ejecutarse utilizando el TransactWriteItems o Transacttetitems API. La transacción se cometerá si todas las operaciones tienen éxito y se remontan si alguna de las operaciones falla.

Además, las transacciones de estados múltiples DynamodB tienen un límite de 25 operaciones por transacción y un máximo de 4 MB de datos por transacción.

Para habilitar las transacciones de estados múltiples en DynamoDB, debe especificar la ID de transacción y las operaciones que deben ejecutarse. Dynamodb se asegurará de que los procesos se realicen en el orden correcto.

Para usar transacciones de estados múltiples en DynamodB, siga estos pasos:

  1. Habilitar la capacidad de transacción de múltiples declaraciones de Dynamodb estableciendo el EnableMultItatementTransactionSupport marcar a verdadero en el AWS.Dinamodb.DocumentClient instancia.
  2. Comenzar una transacción llamando al transactuar o transactionar método en el AWS.Dinamodb.DocumentClient instancia, pasar las operaciones deseadas como una matriz. Alternativamente, puede llamar al "StartTransaction" Comando en su cliente Dynamodb.
  3. Para cada operación en la matriz, especifique la acción deseada (e.gramo., poner, actualizar, borrar, conseguir, etc.) y los parámetros correspondientes (e.gramo., Nombre de la tabla, clave de partición, tecla de clasificación, valores de atributos, etc.).
  4. Ejecutar la transacción llamando a la promesa Método en el objeto de transacción devuelto. También puede elegir usar el comprometerse método.
  5. Monitorear el progreso de la transacción utilizando el en método en el objeto de transacción, pasando en el evento deseado (e.gramo., éxito, error, etc.) y una función de devolución de llamada para manejar el evento.
  6. Una transacción de estados múltiples modificará sus datos de acuerdo con las operaciones especificadas si la transacción es exitosa. Si la transacción falla, no modificará los datos. En cambio, se devolverá un error.
  7. Para garantizar la consistencia de los datos y evitar conflictos, se recomienda utilizar expresiones condicionales en la matriz de operaciones para verificar los valores preexistentes y proporcionar el estado deseado antes de modificar los datos.

Ejemplos de transacciones múltiples de DynamodB

Ejemplo 1:

Para crear una transacción de estados múltiples en DynamodB, podemos usar la siguiente sintaxis:

// Comenzar la transacción
var params = TransACTITEMS: [
// Declaración 1 - Actualizar el elemento

Actualizar:
Tablename: "Mytable",
Llave:
"Id": n: "1",,
UpdateExpression: "set #name =: name",
ExpressionAtTributEnames:
"#nombre nombre"
,
ExpressionAttributeValues:
": nombre": s: "Ken Brian"
,
ReturnValues: "all_new"

,
// Declaración 2 - Eliminar elemento

Borrar:
Tablename: "Mytable",
Llave:
"Id": n: "2",
, ReturnValues: "all_old"


]

Dinamodb.TransactWriteItems (params, function (err, data)
consola if (err).registrar (err, err,.pila);
Else consola.Dato de registro);
);

La transacción de estados múltiples anteriores comienza con el parámetro "Transactitems" y contiene una matriz de declaraciones. La primera declaración es una operación de actualización. Actualiza un elemento con una identificación específica en la tabla "mytable" (necesitará especificar el nombre de la tabla).

La segunda declaración presenta una operación de eliminación. Su objetivo es eliminar un elemento con una identificación específica en la misma tabla. La transacción se ejecuta llamando al método "TransactWriteItems", que toma los parámetros de la transacción como entrada y devuelve una respuesta con los resultados de la transacción.

Ejemplo 2:

Nuestro segundo ejemplo es el siguiente:

var params =
Transactitems: [

Poner:
TableName: 'Usuarios',
Artículo:
UserID: 'xxx123abcd',
primer nombre: 'Ken',
LastName: 'Brian',
Correo electrónico: '[email protected] ',
Teléfono: 'xxxxxxxxxx'


,

Poner:
TableName: 'Ordenes',
Artículo:
OrdenId: 'DFA445D,
UserID: 'xxx123abcd',
OrderDate: '2022-11-08',
elementos: [

ProductID: '989v3',
Cantidad: 7

]


,

Poner:
TableName: 'Productos',
Artículo:
ProductID: '989v3',
Nombre: 'Nombre del producto',
Precio: 210.49



]
;
dinamodb.TransactWrite (params, function (err, data)
consola if (err).log (err);
Else consola.Dato de registro);
);

En este ejemplo, creamos múltiples transacciones que tienen como objetivo poner un nuevo usuario, pedido y producto en sus respectivas tablas DynamodB. Si alguna operación falla, toda la transacción se retirará y el sistema no agregará ninguno de los datos a las tablas.

Conclusión

Si bien esto puede ser desconocido para muchos, las transacciones de estados múltiples DYNAMODB son fáciles de usar y lo ayudarán de manera eficiente a mantener la consistencia de sus datos. Tenga en cuenta que no puede usar transacciones de estados múltiples en índices globales. Sin embargo, esto no elimina ninguno de los beneficios de esta característica de AWS Dynamodb.