Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Descripción general de DynamoDB
Amazon DynamoDB es una base de datos de documentos y SQL sin valores clave que proporciona un rendimiento rápido y predecible con una escalabilidad perfecta. Se trata de una base de datos duradera, multirregional, multiactiva y totalmente gestionada. (La función de tabla global de DynamoDB sincroniza automáticamente las modificaciones realizadas en AWS una región con todas las demás regiones seleccionadas para ofrecer compatibilidad multiactiva). DynamoDB tiene funciones de seguridad integradas, opciones de copia de seguridad y restauración y almacenamiento en caché en memoria para aplicaciones a escala de Internet.
El hecho de que no haya SQL bases de datos esquemáticas ayuda a reducir el tiempo y el proceso necesarios para llevar un cambio a una base de datos (esquema de lectura) a la fase de producción, lo que permite un rápido desarrollo de aplicaciones (). RAD Ninguna SQL base de datos como DynamoDB está diseñada para operaciones de lectura/escritura de alto rendimiento.
Características y ventajas
DynamoDB ofrece las siguientes funciones y ventajas:
-
Sin servidores que administrar: DynamoDB es un servicio SQL sin bases de datos totalmente administrado, lo que significa que no implica ninguna sobrecarga de mantenimiento del servidor.
-
Schemaless: DynamoDB permite el desarrollo y la implementación rápidos de aplicaciones.
-
Rendimiento a escala: DynamoDB proporciona un rendimiento rápido y predecible con una escalabilidad perfecta.
-
ACIDsoporte: DynamoDB admite transacciones de atomicidad, coherencia, aislamiento y durabilidad ACID () para ayudarle a mantener la exactitud de los datos.
-
Alta disponibilidad y durabilidad: sus datos se almacenan en discos de estado sólido (SSDs) y se replican automáticamente en varias zonas de disponibilidad de una AWS región, lo que proporciona una alta disponibilidad y durabilidad de los datos integradas.
-
Escalado automático: DynamoDB utiliza el servicio Application AWS Auto Scaling para ajustar dinámicamente la capacidad de rendimiento aprovisionada en respuesta a los patrones de tráfico.
-
Opciones de precios flexibles: DynamoDB ofrece dos modos de capacidad con opciones de facturación específicas: el modo de capacidad bajo demanda y el modo de capacidad aprovisionada.
-
Point-in-time recuperación: puede habilitar copias de seguridad continuas mediante la point-in-time recuperación para proteger sus tablas de operaciones accidentales de escritura o eliminación, y restaurarlas en cualquier momento durante los últimos 35 días.
-
Time to Live (TTL): puede eliminar automáticamente los elementos de una tabla de DynamoDB después de un período especificado.
-
Tablas globales: puede implementar varias réplicas en todas AWS las regiones sin tener que crear su propia solución de replicación.
-
Índices secundarios globales: puede consultar la tabla de DynamoDB mediante claves de partición y clasificación diferentes de las propias claves de partición y clasificación de la tabla.
-
DAX— El servicio de almacenamiento en caché DynamoDB Accelerator DAX () proporciona tiempos de respuesta inferiores a un milisegundo para las operaciones de lectura.
-
DynamoDB Streams: esta función proporciona una secuencia ordenada por tiempo de modificaciones a nivel de elemento en un registro para permitir el seguimiento y la notificación en tiempo real de los cambios en las tablas de DynamoDB.
Para obtener más información sobre estas ventajas, consulte Amazon DynamoDB Features en el sitio web
Claves de partición
DynamoDB no tiene esquema, por lo que no es necesario definir todos los atributos de una tabla. El atributo de clave de partición es obligatorio y la clave de clasificación es opcional. El resto de los atributos son arbitrarios y pueden variar según el elemento. Le recomendamos que elija una clave de partición con una cardinalidad alta para que los elementos a los que se accede con frecuencia no residan en la misma partición. Esta práctica le ayuda a evitar los desequilibrios en el acceso a los datos y las particiones activas. Para obtener más información, consulte Prácticas recomendadas para diseñar y utilizar claves de partición de forma eficaz en la documentación de DynamoDB.
Índices
Los índices permiten acceder a patrones de consulta alternativos y pueden agilizar las consultas. Debe crear los índices con cuidado, independientemente de si utiliza una base de datos relacional o DynamoDB. Siempre que se produzca una operación de escritura en una tabla, se deben actualizar todos los índices de esa tabla.
Un índice secundario global contiene una selección de atributos de la tabla base, pero están organizados por una clave principal diferente de la propia clave principal de la tabla. En DynamoDB, los índices secundarios globales son dispersos de forma predeterminada. Es decir, la clave de clasificación es opcional y no aparece en todos los elementos de la tabla. Para aprovechar esta función, puede crear índices secundarios globales que almacenen y proyecten solo los atributos necesarios. Puede tener hasta 20 índices secundarios globales en una tabla de DynamoDB. Para obtener más información sobre esta función, consulte Uso de índices secundarios globales en DynamoDB en la documentación de DynamoDB.
Período de vida
Puede establecer una propiedad Time to Live (TTL) en una tabla de DynamoDB para definir una marca de tiempo por elemento (registro) para especificar cuándo un elemento ya no es necesario. Poco después de la marca de tiempo especificada, DynamoDB elimina el elemento de la tabla sin consumir unidades de capacidad adicionales. Para obtener más información sobre esta función, consulte Expirar elementos con DynamoDB Time to Live en la documentación de DynamoDB.
Modelos de precios
DynamoDB ofrece dos modelos de precios entre los que elegir: capacidad aprovisionada y capacidad bajo demanda. La elección del modelo de precios depende de las cargas de trabajo proyectadas.
Modelo de precios | Tipo de carga de trabajo | Costo | Rendimiento de lectura/escritura |
---|---|---|---|
Capacidad aprovisionada | Predecible | Más baja | El número de operaciones de lectura/escritura por segundo se especifica en términos de unidades de capacidad de lectura (RCUs) y unidades de capacidad de escritura (WCUs). Por ejemplo:
Puede activar el escalado automático para ajustar la capacidad en respuesta a los cambios de tráfico. |
Capacidad bajo demanda | Dinámico | Más alto | No se especifican los requisitos de rendimiento. DynamoDB se adapta a sus cargas de trabajo automáticamente. Se le cobrará por las lecturas y escrituras que la aplicación realice en sus tablas en términos de unidades de solicitud de lectura y unidades de solicitud de escritura. Por ejemplo:
|
Para obtener más información sobre estos dos modelos, consulte el modo de capacidad de lectura/escritura en la documentación de DynamoDB.
Transacciones
DynamoDB admite transacciones de atomicidad, coherencia, aislamiento y durabilidad ACID () en una o más tablas dentro de una sola cuenta y región. AWS AWS
Para gestionar los cambios en varios elementos dentro de las tablas y entre ellas, puede utilizar DynamoDB transaccional y. TransactWriteItems
TransactGetItems
APIs
-
TransactWriteItems
es una operación por lotes que contiene un conjunto de escritura con una o más accionesPutItem
UpdateItem
, y.DeleteItem
TransactWriteItems
puede comprobar, si lo desea, las condiciones previas que deben cumplirse antes de realizar las actualizaciones. Estas condiciones pueden incluir los mismos artículos que los del set de escritura o artículos diferentes. Si no se cumple alguna condición, se rechaza la transacción. -
TransactGetItems
es una operación por lotes que contiene un conjunto de lecturas con una o másGetItem
acciones. Si emites unaTransactGetItems
solicitud sobre un artículo que forma parte de una transacción de escritura activa, la transacción de lectura se cancela. Para obtener el valor previamente comprometido, puedes usar una operación de lectura estándar.
Para obtener más información al respectoAPIs, consulte Transacciones de Amazon DynamoDB: cómo funcionan en la documentación de DynamoDB.
Limitaciones
Las operaciones API transaccionales de DynamoDB tienen las siguientes restricciones:
-
Una transacción no puede actualizar más de 100 artículos únicos.
-
Una transacción no puede contener más de 4 MB de datos.
-
No se pueden aplicar dos acciones de una transacción al mismo elemento de la misma tabla. Por ejemplo, no puedes ejecutar ambas
ConditionCheck
Update
acciones en el mismo artículo en una transacción. -
Una transacción no puede realizarse en tablas de más de una AWS cuenta o región.
-
Las operaciones transaccionales ofrecen ACID garantías solo dentro de la AWS región en la que se realizó originalmente la operación de escritura. No se admiten las transacciones entre regiones en las tablas globales.
-
El modelo de persistencia de objetos no admite transacciones. Para utilizar la función de transacción, debe acceder a la base de datos y a las tablas mediante DynamoDB de bajo nivel. API
Componentes de gran tamaño
DynamoDB tiene un límite de tamaño de 400 KB para cada elemento. Este límite incluye tanto el nombre del atributo (longitud binaria con codificación UTF -8) como el valor del atributo (de nuevo, longitud binaria). El nombre del atributo se tiene en cuenta para el límite de tamaño. Por ejemplo, considere un elemento que tiene dos atributos: un atributo denominado «código de país» con el valor «IN» y otro atributo denominado «» con el valor «country-phone-prefix91". El tamaño total de ese elemento es de 36 bytes.
Solución alternativa
Si un elemento está asociado a muchos atributos y propiedades, o a una gran cantidad de datos, su tamaño puede superar los 400 KB. En este caso, puede almacenar el artículo serializado en Amazon Simple Storage Service (Amazon S3) JSON en formato y guardar la ubicación de Amazon S3 como un atributo S3Location
() en el artículo. Las operaciones de lectura y escritura de ese elemento recuperan el objeto S3 y actualizan la JSON cadena. La clave principal, la clave de clasificación y todos los atributos utilizados por los índices locales y los índices secundarios globales deben almacenarse en la tabla junto con el atributo. S3Location
Esto requiere una lógica adicional en la aplicación (capa de acceso a datos) para comprobar el S3Location
atributo y obtener los datos completos del artículo de Amazon S3.
Copia de seguridad y restauración
El soporte de backup y restauración es una característica habitual en cualquier base de datos. DynamoDB admite de forma nativa las operaciones de copia de seguridad y restauración dentro de la misma cuenta, pero puede realizar copias de tablas en varias cuentas mediante otras opciones o procesos. Estos procesos no consumen ninguna unidad de capacidad de lectura/escritura. Para obtener más información, consulte la guía Opciones de copia de tablas completas entre cuentas para Amazon DynamoDB AWS en el sitio web de la Guía prescriptiva.
Limitaciones
Actualmente, DynamoDB admite la copia de seguridad y la restauración entre cuentas AWS Backupmediante el uso, pero la cuenta debe formar parte de la misma organización. Puede abordar esta limitación mediante la adopción de una de las siguientes soluciones:
-
Implementación personalizada en un lenguaje de programación de su elección (por ejemplo,. NET, Java o Python) mediante un AWS SDK. Puede escanear los elementos de la tabla de origen de la cuenta A y escribir los elementos (
BatchWrite
) en una tabla de la cuenta B. Puede ejecutar este código en el servidor, en un equipo local o en AWS Lambda (si la base de datos es pequeña y el script tarda menos de 15 minutos en ejecutarse). Para obtener más información, consulte el patrón Copiar tablas de Amazon DynamoDB en todas las cuentas mediante una implementación personalizada en el sitio web Prescriptive AWS Guidance. -
Uso. AWS Glue Para obtener información sobre esta opción, consulte la guía Opciones de copia de tablas completas entre cuentas para Amazon DynamoDB AWS en el sitio web de la Guía prescriptiva.
Idioma y soporte SDK
AWS SDKsProporcionan una interfaz de programación simplificada para AWS los servicios y el soporte. NET, Java JavaScript, Node.jsPHP, Python y Ruby.
Puede elegir entre tres patrones para acceder a las tablas de DynamoDB mediante AWS SDK un modelo de persistencia de objetos (interfaz de alto nivel), interfaces de documentos e interfaces de bajo nivel. Para obtener información detallada, consulte Patrones de acceso más adelante en esta guía.