DynamoDB: descripción general

DynamoDB permite a los usuarios crear bases de datos capaces de almacenar y recuperar cualquier cantidad de datos y atender cualquier cantidad de tráfico. Distribuye automáticamente los datos y el tráfico a través de los servidores para administrar dinámicamente las solicitudes de cada cliente y también mantiene un rendimiento rápido.

DynamoDB frente a RDBMS

DynamoDB usa un modelo NoSQL, lo que significa que usa un sistema no relacional. La siguiente tabla destaca las diferencias entre DynamoDB y RDBMS:

Tareas comunes RDBMS DynamoDB
Connect to the Source Utiliza una conexión persistente y comandos SQL. Utiliza solicitudes HTTP y operaciones API.
Create a Table Sus estructuras fundamentales son tablas y deben definirse. Solo usa claves primarias y ningún esquema en la creación. Utiliza varias fuentes de datos.
Get Table Info Toda la información de la mesa permanece accesible Solo se revelan las claves primarias.
Load Table Data Utiliza filas formadas por columnas. En tablas, utiliza elementos hechos de atributos.
Read Table Data Utiliza sentencias SELECT y sentencias de filtrado. Utiliza GetItem, Query y Scan.
Manage Indexes Utiliza índices estándar creados a través de declaraciones SQL. Las modificaciones se producen automáticamente en los cambios de tabla. Utiliza un índice secundario para lograr la misma función. Requiere especificaciones (clave de partición y clave de clasificación).
Modify Table Data Utiliza una instrucción UPDATE. Utiliza una operación UpdateItem.
Delete Table Data Utiliza una declaración DELETE. Utiliza una operación DeleteItem.
Delete a Table Utiliza una instrucción DROP TABLE. Utiliza una operación DeleteTable.

Ventajas

Las dos ventajas principales de DynamoDB son la escalabilidad y la flexibilidad. No obliga al uso de una estructura y fuente de datos en particular, lo que permite a los usuarios trabajar con prácticamente cualquier cosa, pero de manera uniforme.

Su diseño también admite una amplia gama de usos, desde tareas y operaciones más ligeras hasta la funcionalidad empresarial más exigente. También permite el uso simple de múltiples lenguajes: Ruby, Java, Python, C #, Erlang, PHP y Perl.

Limitaciones

DynamoDB tiene ciertas limitaciones, sin embargo, estas limitaciones no crean necesariamente grandes problemas ni obstaculizan el desarrollo sólido.

Puede revisarlos desde los siguientes puntos:

  • Capacity Unit Sizes- Una unidad de capacidad de lectura es una única lectura constante por segundo para elementos que no superen los 4 KB. Una unidad de capacidad de escritura es una escritura única por segundo para elementos no mayores de 1 KB.

  • Provisioned Throughput Min/Max- Todas las tablas e índices secundarios globales tienen un mínimo de una unidad de capacidad de lectura y una de escritura. Los máximos dependen de la región. En los EE. UU., 40K de lectura y escritura sigue siendo el límite por tabla (80K por cuenta), y otras regiones tienen un límite de 10K por tabla con un límite de cuenta de 20K.

  • Provisioned Throughput Increase and Decrease - Puede aumentar esto tantas veces como sea necesario, pero las disminuciones se limitan a no más de cuatro veces al día por mesa.

  • Table Size and Quantity Per Account - Los tamaños de las mesas no tienen límites, pero las cuentas tienen un límite de 256 mesas a menos que solicite un límite más alto.

  • Secondary Indexes Per Table - Se permiten cinco locales y cinco globales.

  • Projected Secondary Index Attributes Per Table - DynamoDB permite 20 atributos.

  • Partition Key Length and Values - Su longitud mínima se sitúa en 1 byte y la máxima en 2048 bytes; sin embargo, DynamoDB no impone límites a los valores.

  • Sort Key Length and Values - Su longitud mínima es de 1 byte y máxima de 1024 bytes, sin límite de valores a menos que su tabla utilice un índice secundario local.

  • Table and Secondary Index Names - Los nombres deben tener un mínimo de 3 caracteres de longitud y un máximo de 255. Usan los siguientes caracteres: AZ, az, 0-9, “_”, “-” y “.”.

  • Attribute Names - Un carácter sigue siendo el mínimo y 64 KB el máximo, con excepciones para las claves y ciertos atributos.

  • Reserved Words - DynamoDB no impide el uso de palabras reservadas como nombres.

  • Expression Length- Las cadenas de expresión tienen un límite de 4 KB. Las expresiones de atributo tienen un límite de 255 bytes. Las variables de sustitución de una expresión tienen un límite de 2 MB.