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.