Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon DynamoDB 101

Amazon DynamoDB 101

Rodolfo Sáenz

May 12, 2021
Tweet

More Decks by Rodolfo Sáenz

Other Decks in Technology

Transcript

  1. https://aws.amazon.com/es/products/databases/ Bases De Datos En AWS Relational Amazon Aurora Amazon

    RDS Amazon Redshift Key-Value Amazon DynamoDB In-Memory Amazon ElastiCache for Memcached Amazon ElastiCache for Redis Documents Amazon DocumentDB (compatible con MongoDB Wide Column Amazon Keyspaces (para Apache Cassandra) Graph Amazon Neptune Time Series Amazon Timestream Ledger Amazon Quantum Ledger Database (QLDB)
  2. ¿Qué es DynamoDB? NoSQL Serverless Latencia en milisegudos de un

    dígito a cualquier escala. Soporta modelos de datos clave-valor. Formatos de documentos soportados JSON, HTML, XML. Total integración con funciones Lambda. Puede ser configurada para escalar automáticamente. Elección popular para desarrolladores y arquitectos para diseñar aplicaciones serverless.
  3. Rendimiento Resilencia Consistencia Almacenamiento SSD Distribuidos 3 Data Centers Lecturas

    Eventualmente y Fuertemente consistentes Características De DynamoDB
  4. Tables, Items, Attributes Una tabla (table) es una agrupación de

    registros de datos. Por ejemplo, se puede tener una tabla Usuarios para almacenar datos sobre los usuarios y una tabla Pedidos para almacenar datos sobre los pedidos de sus usuarios. Este concepto es similar a una tabla en una base de datos relacional o una colección en MongoDB. Un ítem (elemento) es un único registro de datos en una tabla. Cada elemento de una tabla se identifica de forma única mediante la clave primaria indicada de la tabla. En una tabla de Usuarios, un elemento sería un Usuario en particular. Un elemento es similar a una fila en una base de datos relacional o un documento en MongoDB. Los atributos (attributes) son datos adjuntos a un solo elemento. Este podría ser un atributo de Edad simple que almacena la edad de un usuario. Un atributo es comparable a una columna en una base de datos relacional o un campo en MongoDB. DynamoDB no requiere atributos en los elementos, excepto los atributos que componen su clave principal.
  5. Primary Key Cada elemento de una tabla se identifica de

    forma única mediante una clave principal. La definición de la clave principal debe definirse siempre en la creación de la tabla y la clave principal debe proporcionarse al insertar un nuevo elemento. Hay dos tipos de clave primaria: una simple primary key compuesta solo por un partition key y una composite primary key que consta de un partition key y un sort key. id -> partition key id -> partition key edad -> sort key
  6. Secondary Indexes La clave principal identifica de forma única un

    elemento en una tabla y se puede realizar consultas en la tabla utilizando la clave principal. Sin embargo, a veces tiene patrones de acceso adicionales que serían ineficaces con su clave principal. DynamoDB ofrece la opción de índices secundarios para habilitar estos patrones de acceso adicionales. El primer tipo de índice secundario es un índice secundario local. Este usa la misma partition key que la tabla pero con un sort key diferente. El segundo tipo de índice secundario es un índice secundario global. Este puede definir una clave primaria completamente diferente para la tabla. Usa otro partition key y otro sort key diferente. id -> partition key nombre -> sort key nombre -> partition key apeellido -> sort key
  7. Read and Write Capacity Cuando usamos una base de datos

    como MySQL, Postgres o MongoDB, se aprovisiona un servidor en particular para ejecutar la base de datos. Se debe elegir el tamaño de la instancia: cuánto CPU, cuánta RAM, cuántos GB de almacenamiento, etc. No es así con DynamoDB. En su lugar, se aprovisiona unidades de capacidad de lectura y escritura. Estas unidades permiten un número determinado de operaciones por segundo. Este es un paradigma de precios fundamentalmente diferente al del mundo basado en instancias: los precios pueden reflejar más de cerca el uso real. DynamoDB también escalamiento automático de las unidades de capacidad de lectura y escritura, a demanda. Esto hace que sea mucho más fácil escalar la aplicación durante las horas pico mientras ahorra dinero al reducirla cuando no haya actividad en la base de datos. https://rodoss.me/aws-dynamodb-read-write-capacity/
  8. Otras Características Global Tables DynamoDB Streams & Kinesis Data Streams

    API (Console, CLI, SDK) Amazon DynamoDB Accelerator (DAX) NoSQL Workbench for Amazon DynamoDB Encryption (KMS)