Introducción a Amazon DynamoDB

Introducción a Amazon DynamoDB

  • Nube
6 min de lectura Actualizado Jul 15, 2020

Puntos clave: Amazon DynamoDB está una base de datos NoSQL de valor clave escalable diseñada para soporte de alto rendimiento y transacciones, utilizando estructuras de datos similares a JSON. Permite consultas y actualizaciones eficientes, además de proporcionar diversos SDKs para una integración fluida.

  • DynamoDB soporta transacciones, asegurando la coherencia de los datos durante las operaciones.
  • Las opciones de integración incluyen Amazon Glue y Apache Hive para el procesamiento de datos.

DynamoDB está una base de datos sin SQL de valor clave desarrollada por Amazon. Se diferencia de otros productos ofrecidos por Amazon y otros proveedores, ya que no es solo un sistema de código abierto, como Spark, alojado en la plataforma del fabricante. Amazon escribió esto para sus propias necesidades internas y ahora lo Haz a disposición de sus clientes.

¿Cómo funciona DynamoDB?

DynamoDB se parece mucho a JSON, con la única diferencia de que cada registro JSON debe incluir la clave de registro. Eso tiene la ventaja de que te permite hacer actualizaciones sobre un registro. En una base de datos JSON, como MongoDB, no tú no puedes actualizar registros. En su lugar, tú debes eliminarlos y luego añadir la versión cambiada para lograr el mismo cambio.

DynamoDB también permite trabajar con transacciones, algo que MongoDB también soporta. No todas las bases de datos noSQL te permiten hacer eso. Esto es importante porque ciertas operaciones de bases de datos lógicamente deben ir juntas. Por ejemplo, una transacción de venta debe tanto decrementar inventario como aumentar el efectivo disponible. Si una de esas dos operaciones fallara, los sistemas de ventas e inventario quedarían desbalanceados.

te trabajar con la base de datos usando el cliente de línea de comandos de AWS, APIs para diferentes lenguajes de programación, su herramienta de escritorio NoSQL Workbench o en la web de Amazon AWS. Por ejemplo, la pantalla de abajo muestra cómo te Crea una tabla.

Fíjate que te solo Crea la clave. Eso es porque es JSON, lo que significa que no hay estructura, ni esquema. Así que todos los demás atributos pueden ser cualquier cosa.

Definiciones de DynamoDB

DynamoDB tiene estos conceptos y más:

  • Tabla: una colección de objetos
  • Ítem: una colección de atributos. (Otras bases de datos llaman a estos registros o documentos.)
  • Stream: como una caché que almacena los cambios en la memoria hasta que son descargados al almacenamiento.
  • Clave de partición: la clave primaria. Debe ser única.
  • Clave de partición y clave de ordenación: una clave primaria compuesta, es decir, una clave de partición con más de un atributo, como nombre y ID de empleado (necesaria porque dos empleados podían tener el mismo nombre).
  • Índices secundarios: te pueden indexar otros atributos que te consultan con frecuencia para acelerar las lecturas.

API y SDK

Como en la mayoría de los sistemas en la nube, DynamoDB expone sus servicios a través de servicios web. Pero eso no significa que tengas que formatear tus datos a JSON y luego publicarlos usando HTTP. En su lugar, proporcionan kits de desarrollo de software (SDK). El SDK toma las peticiones que tú le envías y luego las traduce a llamadas HTTP entre bastidores. De este modo, el SDK proporciona una forma más natural y mucho menos extensa de trabajar con la base de datos. El SDK te permite trabajar con DynamoDB como tú lo harías con objetos normales.

El SDK tiene estos métodos:

  • PutItem
  • EscribeElemento por lote
  • GetItem
  • BatchGetItem
  • Consulta
  • Escaneo
  • ActualizaciónPunto
  • DeleteItem
  • ListStreams
  • GetShardIterator
  • GetRecords
  • TransactWriteItems
  • TransactGetItems

AWS CLI

Como con otros productos de Amazon, te puede utiliza el cliente de línea de comandos de AWS. Eso te permite ejecutar operaciones de base de datos desde la línea de comandos sin tener que escribir un programa. te utiliza JSON para trabajar con DynamoDB.

Por ejemplo, son estas operaciones y algunas más:

  • AWS Dynamodb Create-Table
  • AWS Dynamodb Put-Item

SDKs

DynamoDB tiene SDKs para estos lenguajes de programación:

  • Java
  • JavaScript
  • .NET
  • js
  • PHP
  • Python
  • Ruby
  • C++
  • Ve,
  • Android
  • iOS

Para Java y .NET, proporcionan objetos. Estos permiten te trabajar con elementos de tabla como si fueran objetos en esos lenguajes de programación. Y traduce a partir de tipos de datos, permitiendo te utiliza, por ejemplo, te pueden utiliza fechas y bytes en lugar de limitarse a facsímiles de esos como cadenas o números, como te haría con JSON.

Por ejemplo, con Java te añadir esta @annotation puede trabajar con la tabla como si fuera un objeto Java. Así te no tienes que hacer algo más están palabras, como usar SQL o JSON.

    @DynamoDBTable(tableName = "ProductCatalog")
    public static class CatalogItem {
        private Integer id;
        private String title;
        private String ISBN;
        private Set bookAuthors;

DynamoDB está descargable

También te puedes descargar DynamoDB y ejecutarlo en tu sistema local. Su web no menciona si esto están gratis, es decir, si te podrías utiliza para siempre y nunca pagar. La idea están te utiliza probar el código localmente, y así ahorrar dinero, antes de comprometerlo en la nube.

te puedes, por ejemplo, añadirlo como una dependencia de Maven en tu proyecto Java. Eso significa que cuando ejecut te es tu código Java en el editor de código, descargará DynamoDB y pondrá en marcha una instancia para te con poca o ninguna configuración necesaria.

Acelerador Amazon DynamoDB (DAX)

DAX están una función opcional que convierte DynamoDB en una base de datos en memoria.

Integración con otros sistemas

  • Amazon Glue. En este caso te extraer datos de DynamoDB a Amazon Glue. Hay te para ETL y luego escribirlos en otros sistemas como el almacén de datos Amazon Redshift.
  • Apache Hive en Amazon EMR. Esto están más bien una interfaz de ida y vuelta. te puede utiliza esto, por ejemplo, usando HiveQL (el lenguaje SQL de Hive) para consultar tablas de DynamoDB. Y te puede copiar datos en Hadoop. (Hive se monta sobre Hadoop para soportar EMR, que están la operación mapReduce.) te también pueden unir tablas de DynamoDB en Hive.

Cuotas

Los usuarios de DynamoDB son sujetos a cuotas por parte de Amazon. Estas son emitidas en unidades de capacidad. El usuario puede solicitar una cuota adicional. Por ejemplo, para una transacción de escritura, 1 unidad de capacidad = una escritura por segundo hasta 1KB.

Las transacciones, lecturas y operaciones de flujo también son unidades de capacidad.

Precios

Al igual que con EC2, son precios separados para recursos bajo demanda y provisionados (es decir, dedicados). Para una instancia provisionada, una unidad de capacidad de escritura está 0,00065 $. La lectura está 0,00013 $.

Los precios de almacenamiento varían según el centro de datos de Amazon. US-East en Ohio están 0,25 dólares por 25 GB.

DAX está cotizado por hora y varía según el tamaño de la CPU virtual y la memoria. Por ejemplo, 1 vCPU y 1,5 GB de memoria están 0,04 $ por hora.

Recursos adicionales

Para más información sobre este tema, explora el blog de Big Data y Machine Learning de BMC o consulta estos recursos:

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de Nube

Suscríbete al Informe

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Gracias te

Tú te has suscrito a The Brief
El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.