DynamoDB Acciones basadas en elementos
DynamoDB API se divide en tres familias: acciones basadas en elementos que funcionan en un solo
elemento por su clave principal, Query que lee un rango dentro de una partición, y
Scan que lee todo. Esta guía es la primera familia: las cuatro operaciones.
usas más: GetItem, PutItem, UpdateItem, DeleteItem. son los mas baratos
llamadas más rápidas DynamoDB ofertas y acertar en sus distinciones (especialmente Put
vs Update) previene una clase de errores de pérdida accidental de datos.
¿Cuáles son las operaciones basadas en elementos de DynamoDB?
Las operaciones basadas en elementos de DynamoDB son las cuatro llamadas que actúan sobre un solo elemento mediante su clave principal completa: GetItem lo lee, PutItem lo crea o lo reemplaza por completo, UpdateItem modifica atributos específicos en su lugar y DeleteItem lo elimina. Cada uno aborda exactamente un elemento, lo que las convierte en las llamadas más rápidas y económicas, a diferencia de Query y Scan, que leen muchos.
GetItem: lee un elemento por su clave principal completa.PutItem: crea o reemplaza completamente un elemento.UpdateItem: crea o modifica atributos específicos de un elemento existente.DeleteItem: elimina un elemento por su clave principal completa.- Los cuatro requieren la clave primaria completa (clave de partición, más clave de clasificación si la la tabla tiene uno): abordan exactamente un elemento.
PutItemsobrescribe todo el elemento;UpdateItemes quirúrgico; confundirlos es cómo los atributos desaparecen silenciosamente.
El rasgo definitorio: un elemento, clave completa
Cada acción basada en elementos se dirige a un elemento único mediante su clave principal completa. eso es lo que los hace rápidos y baratos: DynamoDB codifica la clave de partición, go va directamente al Artículo, hecho. Sin filtrado, sin scanning. Si no conoce la clave completa, estas no son las herramienta adecuada; para eso están Query y Scan.
Supongamos que ejecuta cuentas de usuario con la clave USER#<id>:PK: USER#204 email, displayName, plan, createdAt- GetItem en USER#204 → ese usuario, directamente.
DeleteItemelUSER#204→ elimina ese usuario.
Ambos necesitan la clave exacta. Sin clave, sin acción basada en elementos.
PutItem vs UpdateItem — el que muerde
Ésta es la distinción que vale la pena interiorizar:
PutItemescribe el elemento completo. SiUSER#204ya existe y ustedPutItemcon solo{email, displayName}, los atributosplanycreatedAtexistentes son gone: una venta reemplaza todo el elemento, no se fusiona.UpdateItemcambia solo lo que nombras.UpdateItemcon unSET email = …deja todos los demás atributos intacto y crea el elemento si no existía (un upsert).
Regla general: busque UpdateItem para cambiar un elemento existente y use PutItem
sólo cuando realmente quiere decir "escribir este elemento como el estado completamente nuevo". ambos
PutItem y UpdateItem aceptan una
expresión de condición para que puedas hacer la escritura
condicional ("solo si aún no existe").
Acciones basadas en elementos en DynoTable
¿Quiere las API llamadas crudas detrás de estas acciones? Reúna las expresiones y el valor escrito. mapas en el DynamoDB generador de expresiones, y convertir un elemento simple JSON al formato escrito de API con el DynamoDB JSON convertidor.
En DynoTable, ese mismo trabajo es visual: abre un elemento en la cuadrícula para leerlo (un
GetItem), editar atributos y confirmar (un UpdateItem), agregar o reemplazar una fila (un
PutItem), o eliminar uno, un elemento a la vez.<figure
class="doc-media-placeholder"
data-kind="screenshot"
data-src="docs/guide-dynamodb-item-based-actions-grid.png"
Escollos + próximos pasos
PutItemreemplaza todo el elemento: para cambiar algunos campos sin perder el descanso, useUpdateItem.- Debes conocer la clave principal completa: ninguna clave significa Query/Scan, no una acción de elemento.
- ¿Muchos elementos a la vez? No los repita uno por uno. operaciones por lotes doblarlos en menos viajes de ida y vuelta.
- ¿Necesita recuperar el valor antiguo/nuevo? Establezca
ReturnValuesen lugar de un seguimientoGetItem. - Relacionado: query vs scan cubre el lado de lectura múltiple.
¿Quiere leer, escribir y eliminar elementos sin escribir una línea de código API? Descargue DynoTable y trabaje con sus tablas directamente.
Costo: un artículo, un salto
Las lecturas basadas en elementos son el acceso direccionable más barato en DynamoDB. Un GetItem en
una fila de 2 KB consume 1 RCU eventualmente consistentes (un bloque de 4 KB, redondeado
arriba). Un Query que devuelve la misma fila porque conocía la clave de partición y
La clave de clasificación cuesta la misma capacidad, pero si solo conoce la clave de partición y
filtro en el código de la aplicación, usted paga por cada elemento en la partición.
| Operación | Claves requeridas | Uso típico | Forma de capacidad |
|---|---|---|---|
GetItem | Clave primaria completa | Punto leído por id | 1 bloque por artículo |
PutItem | Clave primaria completa | Crear o reemplazar el artículo completo | 1 WCU por KB, redondeado |
UpdateItem | Clave primaria completa | Atributos del parche | Facturas por tamaño de artículo escritas |
DeleteItem | Clave primaria completa | Quitar fila | Igual que escribir en el tamaño del artículo |
Query + filtro | Partición (+ condición de clasificación opcional) | Muchos artículos en una partición | Suma de elementos coincidentes |
Pegue un elemento representativo en el
calculadora de tamaño de artículo, luego multiplica por
solicitudes por segundo en el
calculadora de precios cuando una ruta activa utiliza
GetItem en un bucle versus un Query bien codificado.
Expresiones de condición en escrituras
Tanto PutItem como UpdateItem aceptan opciones opcionales.
expresiones de condición. Patrones típicos:
attribute_not_exists(pk)en colocación: inserción de solo creación sin carrera.attribute_exists(pk)en la actualización: rechace crear un código auxiliar accidentalmente.plan = :olden la actualización: simultaneidad optimista; reintentar si otro escritor Cambió el plan primero.
DeleteItem también admite condiciones: elimine solo si status = :closed, por
ejemplo. Las condiciones no agregan un cargo de lectura por separado; DynamoDB los evalúa
contra el elemento almacenado durante el intento de escritura.
Construya las condiciones visualmente en el
DynamoDB generador de expresiones; copiar el
ConditionExpression más ExpressionAttributeNames y
ExpressionAttributeValues en tu llamada SDK.
Idempotencia y seguridad de sobrescritura
PutItem sin una condición es el último escritor que gana en todo el artículo. Para webhook
manejadores o consumidores de SQS, combine opciones de venta con attribute_not_exists en un
atributo de marcador, o use UpdateItem con SET processed = :true protegido por
attribute_not_exists(processed).
Cuando necesite los valores de atributos anteriores para un registro de auditoría, agregue
ReturnValues en el mismo UpdateItem en su lugar
de un GetItem anterior: un viaje de ida y vuelta, sin carrera de lectura/escritura.
Elegir la acción del elemento correcta
| Intención | Llamar | Guardia |
|---|---|---|
| Leer perfil por ID de usuario | GetItem | — |
| Crear usuario si está ausente | PutItem | attribute_not_exists(pk) |
| Cambiar correo electrónico, conservar otros campos | UpdateItem | opcional email <> :old |
| Reemplazar todo el blob de configuración | PutItem | sólo cuando el payload esté completo |
| Eliminar ticket cerrado | DeleteItem | status = :closed |
| Leer 50 tickets por claves conocidas | BatchGetItem | no 50× GetItem en serie |
La puesta en escena escribe en DynoTable
DynoTable etapas UpdateItem y PutItem localmente antes de la confirmación. tu revisas
diferencias de atributos, ejecute PartiQL comprobaciones opcionales y luego confirme, lo que se asigna al
API llamadas reales arriba. La fila masiva elimina el lote en
BatchWriteItem debajo del capó con reintento
en artículos no procesados.
Para la generación de código SDK, ensamble cláusulas de actualización en el generador de expresiones y pegue el archivo emitido SDK fragmento v3 junto a las pruebas de su controlador.