#100DíasdeAWS | Día 3 | DynamoDB

#100DíasdeAWS | Día 3 | DynamoDB

Aquí estamos en el Día 3 del blog diario #100daysofAWS!

Esperamos que algunos de ustedes sigan aquí!

Hoy estaremos hablando sobre un servicio extremadamente poderoso de bases de datos conocido como DynamoDB.

¿Qué es DynamoDB?

DynamoDB es la base de datos clave-valor tipo No-SQL de Amazon Web Services. Su capacidad de escalar bajo demanda y su capacidad de ofrecer un rendimiento de milisegundos de un solo dígito a cualquier escala puede ser un activo poderoso para una gran cantidad de aplicaciones diferentes.

Comencemos discutiendo lo que significa una base de datos 'No-SQL'. Para entender esto, analicemos brevemente qué se entiende por SQL.

SQL o lenguaje de consulta estructurado, es un lenguaje específico de dominio de larga data que se utiliza para interactuar con bases de datos relacionales. SQL es una herramienta muy valiosa para usar cuando está interactuando con bases de datos relacionales, ya que le permite crear consultas complejas de grandes conjuntos de datos homogéneos y extraer fácilmente grandes cantidades de datos y usarlos de la forma que mejor le parezca.

Sin embargo, la desventaja de las bases de datos relacionales es cuando se trata de escalar. A medida que las bases de datos relacionales se escalan y crecen, las lecturas por segundo se vuelven considerablemente más lentas. Obviamente, esto puede tener un efecto masivo en la experiencia del usuario. Si bien existen numerosas formas de mejorar este problema, si su caso de uso gira en torno al almacenamiento de conjuntos de datos estructurados y ordenados, en ciertos casos, el uso de una base de datos de valor-clave (o No SQL / Non-Relational) puede proporcionar una gran mejora del rendimiento a cualquier escala para el usuario final.

Esto lleva a la introducción de nuestra base de datos no relacional favorita, DynamoDB.

DynamoDB no solo es un servicio de base de datos duradero, totalmente administrado y multirregional con seguridad integrada, almacenamiento en caché en la memoria y la capacidad de realizar copias de seguridad y restaurar datos, sino que también puede manejar hasta 20 millones de solicitudes simultáneas por segundo. Esta es claramente una hazaña increíble y puede proporcionar mucho valor a muchas organizaciones y muchos casos de uso diferentes.

Lo primero que se debe destacar es que DynamoDB está totalmente administrado y sin servidor, lo que tiene una gran ventaja en comparación con las bases de datos tradicionales debido a su capacidad para liberar a los desarrolladores y arquitectos de la configuración de detalles menores y permitirles concentrarse en la necesidad comercial inmediata.

La estructura básica de una tabla de DynamoDB utiliza elementos (filas) que constan de atributos (columnas). DynamoDB utiliza claves principales como una forma de identificar de forma única cada elemento de una tabla e índices secundarios para proporcionar una mayor flexibilidad de consulta según sus necesidades.

La tabla también puede dividirse en particiones de datos, lo que puede aumentar enormemente su velocidad de lectura/escritura para tablas muy grandes. En realidad, esto también se hace automáticamente cuando supera los 10 GB de datos, 3000 RCU (unidad de capacidad de lectura) por partición individual o 1000 WCU (unidades de capacidad de escritura) por partición individual, lo que le da una cosa menos de qué preocuparse.

DynamoDB se puede configurar en uno de dos modos:

1. Modo de capacidad aprovisionada: DynamoDB se escala hacia arriba y hacia abajo para admitir cualquier capacidad de lectura/escritura que desee.

2. Bajo demanda: Hay poco que saber sobre la planificación de la capacidad y DynamoDB escala automáticamente, sin embargo, esto cuesta más.

También existe la posibilidad de aprovisionar su tabla de DynamoDB utilizando lecturas eventualmente consistentes y lecturas altamente consistentes, dependiendo de qué tan actualizados deban estar sus datos.

Las lecturas eventualmente consistentes son cuando los datos se devuelven de inmediato, pero es posible que no sean inconsistentes (esto normalmente toma hasta 1 segundo).

Las lecturas altamente consistentes siempre serán completamente consistentes, pero la latencia probablemente será mayor. No hay mejor opción para elegir, ya que depende completamente de su caso de uso.

Otro atributo positivo de usar DynamoDB es la durabilidad de sus archivos, que viene como estándar. ¡AWS almacena 3 copias de sus datos en SSD en 3 zonas de disponibilidad! Esto puede permitir que sus datos estén muy seguros cuando decida almacenarlos en DynamoDB.

Tablas globales de DynamoDB

DynamoDB utiliza la naturaleza global de AWS para replicar sus tablas en las regiones de su elección con el fin de ofrecer un rendimiento de lectura y escritura rápido y local que le permita crear aplicaciones globales a gran escala.

Las tablas globales simplemente eliminan la necesidad de replicar manualmente sus datos en varias regiones y también protegen contra la rara posibilidad de que una región pierda el servicio, lo que le brinda una increíble cantidad de protección y recuperación ante desastres.

La última área de DynamoDB que queremos cubrir antes de entrar en algunos casos de uso es algo llamado Dynamo DB Accelatator, también conocido como Dynamo DAX.

Dynamo DAX es la solución de almacenamiento en caché de DynamoDB. Es un caché en memoria que puede ofrecer un beneficio de rendimiento de hasta 10 veces mayor que el de DynamoDB estándar, ¡como si no tuviera el rendimiento suficiente!

Debido a que está completamente administrado, no se necesitan equipos de desarrolladores para organizar la invalidación de caché, el llenado de datos o la administración de clústeres. ¡AWS hace todo el trabajo pesado por usted!

Casos de uso para Dynamo DB

La estructura de algunas formas de datos se maneja de manera mucho más eficiente usando NoSQL. La naturaleza clave-valor de DynamoDB le permite almacenar y administrar datos estructurados, semiestructurados y no estructurados en una base de datos.

Esta flexibilidad y capacidad de escalar se puede utilizar para muchas más aplicaciones que se pueden mencionar aquí. La clave es la capacidad de DynamoDB para escalar y crecer a un ritmo sin precedentes.

Esa fue nuestra breve introducción a DynamoDB. Hemos enlazado la documentación de AWS relativa a DymanoDB aquí para una mayor lectura.

Saludos cordiales, y ¡sigue construyendo!

Post Original Jack Lavelle