Charla en el AWS UG Barcelona de Lorenzo Hidalgo
DynamoDB : Optimizar Performance & Cost usando las operaciones correctas (Intro a Condition Expressions, Projections, Batch & Transaction ops
NoSQL administrada por AWS: Diseñada para manejar grandes volúmenes de datos con latencia baja. • Alta disponibilidad y escalabilidad automática: Se ajusta automáticamente a la demanda sin necesidad de intervención manual. • Rendimiento consistente de milisegundos: Ideal para aplicaciones que requieren tiempos de respuesta rápidos. • Soporta modelos de datos flexibles: Incluye documentos y tablas clave-valor, con índices secundarios para consultas eficientes. • Seguridad y replicación global: Ofrece encriptación y replicación de datos en múltiples regiones para mayor durabilidad y disponibilidad.
SQL No-SQL Modelo de Datos Relacional - Tablas con filas y columnas Documentos, clave-valor, … Esquema Fijo - require definición Esquema flexible y dinámico SQL Específicas por sistema Vertical Horizontal ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) Consistencia eventual para mejorar la disponibilidad y el rendimiento Esquema Consultas Escalabilidad Consistencia
cómo UPSERTS: Utilizando los comandos PutItem o UpdateItem sin añadir ninguna condición se comportan cómo UPSERTS en SQL. • Reducir llamadas con CONDITION EXPRESSIONS: Añadir expresiones condicionales nos permite realizar nuestra lógica en una única llamada y con consistencia de datos. • Query y Scan requieren aplicar lógica de paginación: Las operaciones de Query o Scan sólo operan sobre páginas de 1MB, hace falta implementar paginación para recuperar más información. • Utiliza operaciones Batch* para reducir el tiempo de ejecución: Una operación Batch* es más efectiva que múltiples operaciones individuales en secuencia o paralelo. • Utiliza BatchGet para recuperar volúmenes de información más altos: La operación BatchGet te permite recuperar hasta 16MB o 100 registros frente a 1MB de las operaciones Query o Scan. • BatchGet y BatchWrite requieren aplicar lógica de retry: Con las operaciones Batch* es indispensable aplicar lógica de retry sobre los UnprocessedItems.