Introducción a DynamoDB en AWS para Principiantes

Última actualización: 20/11/2021

¿Quieres aprender qué es DynamoDB y cómo usar este servicio de AWS? Si quieres explotar esta tecnología al máximo no te pierdas esta entrada, en la que analizaremos sus conceptos más importantes.

DynamoDB

¿Qué es DynamoDB?

DynamoDB es una base de datos NoSQL (Not only SQL) de tipo clave-valor disponible como servicio en AWS.

Está optimizada para tener un buen rendimiento y escalabillidad horizontal añadiendo más nodos al clúster. Si el tamaño de tus datos crece, no se va a penalizar en el rendimiento de la base de datos de una manera muy significativa.

Además, tiene alta disponibilidad (99.999% de uptime SLA, esto es menos de 5 minutos al año de caídas) y durabilidad de los datos. Para ello, almacena varias copias de los datos en diferentes nodos. Si uno de estos nodos falla, otro puede tomar su lugar como nodo primario.

Tradicionalmente, cuando teníamos una base de datos debíamos gestionar todo su hardware, seguridad, actualizaciones y tener en cuenta su mantenimiento. Con DynamoDB todo esto no es necesario apuesto que es un servicio gestionado, y aunque hay servidores y sistemas de almacenamiento por detrás, es totalmente transparente y no debes preocuparte.

DynamoDB distribuye tus datos en particiones, que pueden ser distintas máquinas, tanto físicas como virtuales para aumentar la redundancia.

AWS Amazon Web Services Logo

Tiene un coste muy razonable y el modelo de pago está basado en el uso, por lo que no es un coste fijo. Por un lado, se paga por el almacenamiento usado, y por otro lado se paga por la demanda (en función de las consultas) o bien por el aprovisionamiento de recursos para una determinada capacidad (Read Capacity Units o Write Capacity Units).

Por último, se integra muy bien con otros servicios de AWS. Esta es una de las fortalezas de esta base de datos más importantes. Por ejemplo, se integra muy bien con s3 para exportar tablas, también podemos enviar datos fácilmente a Kinesis para llevar a cabo algún procesamiento en streaming como consultas temporales en tiempo real.

Conceptos Básicos

En DynamoDB las tablas son las colecciones de elementos, y los elementos son colecciones de atributos o pares clave-valor. La clave primaria de una tabla está compuesta de una clave de partición y de una clave de clasificación (sort key).

También, se puede usar un índice secundario global o GSI, que permite realizar consultas filtrando por columnas que no sean la clave de partición o de clasificación.

Casos de Uso

DynamoDB es ideal para aplicaciones que tienen patrones de acceso bien conocidos. Antes de usar este servicio es recomendable conocer cómo vas a acceder a los datos para diseñar una estructura de tablas correcta desde el primer momento.

Al trabajar con las APIs de DynamoDB, al ser una base de datos clave-valor, se proporcionará generalmente la clave para obtener el valor asociado almacenado. Es común usar ORMs (Object Relational Mapper) que por detrás implementan las APIs, dependiendo del lenguaje que se quiera usar. Para Java tenemos DynamoDBMapper y para Python Boto3.

En cuanto a la autorización, se basa en el uso del servicio IAM, por lo que no será necesario pasar credenciales como usuario y contraseña sino un usuario con los permisos suficientes.

También, puedes configurar DynamoDB Streams, lo que te permite capturar los cambios en los registros de las tablas en tiempo real y ejecutar una función lambda. Esta funcionalidad es muy interesante para construir dashboards o sistemas de alerta.

No deberías usar DynamoDB cuando necesitas cruzar tablas, hacer uniones complejas o implementar transacciones con varios registros. Tampoco es la base de datos adecuada cuando necesitas analizar en tiempo real históricos de datos, para lo que existen mejores opciones analíticas como Data Warehouses.

¿Debes aprender Amazon DynamoDB como Ingeniero de Datos?

Es importante que los ingenieros de datos se interesen por el servicio de DynamoDB en AWS.

Como puedes imaginar, es muy fácil de configurar desde la consola de AWS. Si alguna vez has hecho algo en lo que hayas configurado una base de datos SQL, desde Oracle hasta las bases de datos relacionales como MySQL o PostgreSQL sabrás que las tareas de configuración y mantenimiento son bastante tediosas.

Además de poderse configurar desde la CLI, hay muchas maneras y lenguajes de programación para interactuar con DynamoDB como Python, .NET, Java o PHP.

Mejores cursos de DynamoDB y Siguientes Pasos

A continuación tienes el que es en mi opinión el mejor curso de DynamoDB que puedes encontrar en Udemy. Este curso te enseñará a usar desde cero este servicio de base de datos de AWS para poder implementar aplicaciones y tus proyectos de una manera profesional. Te aportará mucho valor por muy poco precio.

Curso Amazon Dynamodb

Guía Completa de AWS DynamoDB

En el curso repleto de demos y ejemplos prácticos aprenderás con más de 17 horas de vídeo a desplegar y usar DynamoDB desde cero. Además, podrás integrar el servicio con muchos servicios populares de AWS como s3, Lambda, Data Pipeline, Redshift, EMR, IAM o CloudWatch.

También aprenderás buenas prácticas para integrar el servicio con aplicaciones web y móviles, prestando atención a la seguridad y autenticación.

Preguntas Frecuentes DynamoDB – FAQ

¿Para qué se usa DynamoDB?

DynamoDB es una base de datos NoSQL en AWS que permite implementar fácilmente el almacenamiento de aplicaciones con patrones de acceso conocidos. Es un servicio totalmente gestionado, por lo que ahorrará mucho trabajo de mantenimiento y administración al equipo.

¿Qué ventajas tiene DynamoDB?

Esta base de datos en AWS tiene múltiples ventajas como alta disponibilidad y muy buen rendimiento en consultas con patrones de acceso conocidos. Además, puede escalar horizontalmente de forma transparente para poder responder a consultas en un tiempo razonable sin importar el volumen de los datos. Otra ventaja, es su integración con otros servicios de AWS como s3, Redshift o Kinesis.

¿Cuáles son las alternativas a DynamoDB?

Las alternativas más populares en AWS son RDS o Aurora. Además, también compite con MongoDB como base de datos NoSQL.

¿Qué tipo de base de datos es DynamoDB?

Amazon DynamoDB es una base de datos NoSQL (Not only SQL) de tipo clave-valor disponible como servicio totalmente gestionado en la nube de AWS (Amazon Web Services).

Deja una respuesta