Sunteți pe pagina 1din 25

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

(Universidad del Perú, DECANA DE AMÉRICA)


FACULTAD DE INGENIERÍA DE SISTEMAS E
INFORMÁTICA
Escuela Profesional de Ingeniería de sistemas

TRABAJO DE INVESTIGACION – AMAZON DYNAMODB


Presentado por
 Caqui Silva, Erik 14200073
 Orellana Ita, Brian 16200141
 Otañe Huaman, Angel 16200142
 Palacios Barraza. Andrés 16200048
 River Aguilar, Franklin 16200152
 Soto Bejar, Diego 16200029

Profesor:
Espinoza Domínguez, Robert
Trabajo presentado para el curso de Base de Datos III
Lima
2019
Contenido

1. RESEÑA DE LA TECNOLOGÍA, CARACTERÍSTICAS BÁSICAS, ETC. ............... 3


1.1. Reseña de la tecnología................................................................................................. 3
1.2. Características básicas................................................................................................... 3
1.2.1. Rendimiento a escala ................................................................................................ 3
1.2.2. Totalmente administrado.......................................................................................... 4
1.2.3. Listo para el uso empresarial .................................................................................... 5
2. CLASIFICACIÓN DENTRO DE LOS GESTORES DE BASE DE DATOS .............. 6
3. DESCARGA, INSTALACIÓN, CONFIGURACIÓN ...................................................... 7
4. IMPLEMENTACIÓN INTERNA........................................................................................ 9
5. ASPECTOS DE PERFORMANCE, ESCALAMIENTO. ............................................. 10
5.1. Reglas de nomenclatura .............................................................................................. 11
5.2. Tipos de datos ............................................................................................................. 11
5.3. Modo de capacidad de lectura/escritura .................................................................... 12
5.4. Partitions y distribución de datos ............................................................................... 12
6. USOS DE LA TECNOLOGÍA. ........................................................................................ 13
7. EMPRESAS Y/O ORGANIZACIONES QUE LA UTILIZAN. .................................... 13
8. EJEMPLO DE DISEÑO DE ESQUEMA ....................................................................... 15
9. MANIPULACIÓN DE DATOS ........................................................................................ 17
 INSERT ............................................................................................................................. 17
 READ ................................................................................................................................ 17
 UPDATE ........................................................................................................................... 18
 DELETE ............................................................................................................................. 18
10. ACCESO A DATO CON JAVA U OTRO LENGUAJE DE PROGRAMACIÓN. 19
11. APLICACIÓN DE EJEMPLO (TEMA DE RESPONSABILIDAD SOCIAL) ........ 23
12. CONCLUSIONES......................................................................................................... 23
13. RECOMENDACIONES ............................................................................................... 24
14. BIBLIOGRAFÍA ............................................................................................................ 25
1. RESEÑA DE LA TECNOLOGÍA, CARACTERÍSTICAS BÁSICAS,
ETC.

1.1. Reseña de la tecnología

Amazon DynamoDB es una base de datos NoSQL que admite modelos de datos
de clave-valor y de documentos, y que permite a los desarrolladores crear
aplicaciones modernas sin servidor empezando poco a poco y escalándolas
después globalmente, con capacidad para admitir petabytes de datos y decenas
de millones de solicitudes de lectura y escritura por segundo. DynamoDB se ha
diseñado para ejecutar aplicaciones de gran rendimiento a escala de Internet
que sobrecargarían las bases de datos relacionales tradicionales.
DynamoDB le permite trasladar a AWS(Amazon Web Service) las cargas
administrativas que supone tener que utilizar y escalar una base de datos
distribuida, para que no tenga que preocuparse del aprovisionamiento, la
instalación y la configuración del hardware, ni tampoco de las tareas de
replicación, revisión del software o escalado de clústeres. Además, DynamoDB
ofrece el cifrado en reposo, que elimina la carga y la complejidad operativa que
conlleva la protección de información confidencial.
DynamoDB permite crear tablas de base de datos capaces de almacenar y
recuperar cualquier cantidad de datos, así como de atender cualquier nivel de
tráfico de solicitudes. Puede escalar la capacidad de desempeño de las tablas
para aumentarla o reducirla sin tiempos de inactividad ni reducción del
desempeño, así como utilizar la consola de administración de AWS para
monitorizar la utilización de recursos y las métricas de desempeño. Amazon
DynamoDB proporciona una funcionalidad de backup bajo demanda. Le permite
crear backups completos de las tablas para una retención y archivado a largo
plazo con el objetivo de cumplir los requisitos de conformidad normativa.
DynamoDB también nos permite eliminar automáticamente los elementos
vencidos de las tablas, esto ayudará a reducir el consumo almacenamiento y el
costo que suponen los datos que ya no son pertinentes.

1.2. Características básicas

1.2.1. Rendimiento a escala


Amazon DynamoDB es una base de datos de clave-valor y documentos que
admite tablas de prácticamente cualquier tamaño con escalado horizontal. Esto
permite a DynamoDB escalarse a más de 10 billones de solicitudes al día.

 Modelos de datos clave-valor


DynamoDB admite modelos de datos de clave-valor y de documentos, gracias a
lo cual dispone de un esquema flexible que permite que cada fila tenga cualquier
número de columnas en un momento dado. Esto le permite adaptar fácilmente
las tablas cuando cambien sus requisitos de negocio, sin tener que volver a
definir el esquema de tabla como ocurre con las bases de datos relacionales.
 Latencia de microsegundos con DynamoDB Accelerator
DynamoDB utiliza una caché en memoria que mejora el rendimiento de lectura
para sus tablas según sus necesidades al permitirle usar una caché en memoria
completamente administrativa, esta caché recibe el nombre de DynamoDB
Acclerator(DAX). Con DAX puede aumentar hasta 10 veces el rendimiento de
lecturas de sus tablas de DynamoDB.
 Procesamiento de los datos en tiempo real con DynamoDB Streams
DynamoDB Streams captura una secuencia en orden cronológico de las
modificaciones de los elementos en una tabla de DynamoDB y almacena esta
información en un registro durante un máximo de 24 horas. Las aplicaciones
pueden beneficiarse de la posibilidad de capturar los cambios en los elementos
almacenados en una tabla de DynamoDB en el momento en que se producen.

1.2.2. Totalmente administrado


Amazon DynamoDB es un servicio de base de datos NoSQL en la nube
completamente administrado – usted solo necesita crear una base de datos;
establecer el uso objetivo de Auto Scaling y el servicio se encargará del resto.
No tiene que preocuparse por tareas de administración de bases de datos, como
el aprovisionamiento del hardware o del software; ni por la configuración y la
instalación, los parches del software; el funcionamiento de un clúster de base de
datos distribuido y de confianza o la partición de los datos entre varias instancias
a medida que se ejecuta el proceso de escalado.
 Modo bajo demanda
Para las tablas que usan el modo de capacidad bajo demanda, DynamoDB
acomoda al instante las cargas de trabajo cuando aumentan o se reducen hasta
el nivel de tráfico alcanzado previamente. Si el nivel de tráfico de una carga de
trabajo alcanza un nuevo nivel máximo, DynamoDB se adapta rápidamente para
acomodar la carga de trabajo.
 Escalado automático
Para las tablas que utilizan la capacidad aprovisionada, DynamoDB ofrece
escalado automático de la velocidad y el rendimiento en función de la capacidad
definida previamente monitorizando el rendimiento de su aplicación. Si el tráfico
de su aplicación aumenta, DynamoDB aumenta la velocidad para acomodar la
carga. Si el tráfico de su aplicación disminuye, DynamoDB reduce la capacidad
para que pague menos por la capacidad no utilizada.
1.2.3. Listo para el uso empresarial
DynamoDB se ha diseñado para cargas de trabajo críticas, incluida la
compatibilidad con transacciones ACID para un amplio conjunto de aplicaciones
que requieren una lógica de negocio compleja. DynamoDB le ayuda a proteger
sus datos con cifrado y copias de seguridad continuas de sus datos, con
fiabilidad garantizada.
 Transacciones ACID
DynamoDB proporciona compatibilidad nativa en el servidor con las
transacciones, lo que simplifica la experiencia de los desarrolladores que
realizan cambios coordinados de "todo o nada" en varios elementos y distintas
tablas. Gracias a la compatibilidad con las transacciones, los desarrolladores
pueden incorporar la escalabilidad, el rendimiento y los beneficios empresariales
de DynamoDB a un conjunto mayor de cargas de trabajo críticas.
 Cifrado de datos en reposo
El cifrado de datos en reposo mejora la seguridad de sus datos mediante el uso
de claves de cifrado almacenadas en AWS Key Management Service. Con el
cifrado en reposo, puede crear aplicaciones sensibles a la seguridad que
necesitan cumplimiento estricto de cifrado y requisitos normativos. El cifrado
predeterminado que usan las claves maestras del cliente propiedad de AWS se
proporciona sin cargo adicional.
 Copia de seguridad y restauración bajo demanda
La copia de seguridad y la restauración bajo demanda permiten crear copias de
seguridad completas de los datos de las tablas de DynamoDB para archivarlos,
lo que le ayuda a cumplir requisitos normativos corporativos y gubernamentales.
Puede crear copias de seguridad de las tablas con unos pocos megabytes a
cientos de terabytes de datos, sin que esto afecte al rendimiento ni a la
disponibilidad de las aplicaciones de producción.
2. CLASIFICACIÓN DENTRO DE LOS GESTORES DE BASE DE
DATOS

2.1 Según clasificación del teorema CAP

Según el teorema CAP, Amazon DynamoDB se encuentra dentro del AP, que
significa:
 Availability, que todos los clientes puedan leer y escribir, aunque se haya
caído uno de los nodos.
 Partion Tolerance, Los sistemas distribuidos pueden estar divididos en
particiones (generalmente de forma geográfica). Así que esta condición
implica, que el sistema tiene que seguir funcionando, aunque existan
fallos o caídas parciales que dividan el sistema.

2.2 Clasificación dentro de NoSQL

DynamoDB es una base de datos orientada a Clave-Valor, esto es que la base


de datos almacena datos como un conjunto de pares clave-valor en los que
una clave sirve como un identificador único. Tanto las claves como
los valores pueden ser cualquier cosa, desde objetos simples hasta objetos
compuestos complejos.
3. DESCARGA, INSTALACIÓN, CONFIGURACIÓN

 Descargar este archivo de la página Amazon Web Service

 En DynamoDB, contiene dos carpetas, un archivo jar y dos archivos txt

La carpeta nombrada DynamoDBLocal_lib contiene 44 archivos jar, 2


archivos .so, 2 archivos dylib y un archivo dll
La carpeta llamada "third_party_licenses" tiene solo 23 archivos de texto.

Asegúrese de tener DynamoDBLocal.jar en la carpeta raíz

 Instalación de DynamoDB en la ventana

Paso 1: Navegue al directorio de DynamoDB cd c:/dynamodb


Paso 2: Ingresa esto en tu CMD java
Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
En el navegador, escriba: http: // localhost: 8000 / shell /

Si el puerto 8000 esta en uso por otras aplicaciones en el uso de su sistema -


port

 Inicie DynamoDB
En el uso de CMD java -jar DynamoDBLocal.jar

 Detener DynamoDB
En el uso de CMD Ctrl+C
4. IMPLEMENTACIÓN INTERNA

DynamoDB (versión descargable) en su equipo

La versión descargable de Amazon DynamoDB se suministra como un archivo .jar


ejecutable. La aplicación se ejecuta en Windows, Linux, macOS X y otras plataformas
compatibles con Java.

Siga estos pasos para configurar y ejecutar DynamoDB en el equipo:

1. Puede descargar DynamoDB gratuitamente en uno de estos enlaces:

Región Enlaces de Sumas de comprobación


descarga
Región Asia Pacífico (Mumbai) .tar.gz | .zip .tar.gz.sha256 | .zip.sha256
Región Asia Pacífico (Singapur) .tar.gz | .zip .tar.gz.sha256 | .zip.sha256
Región Asia Pacífico (Tokio) .tar.gz | .zip .tar.gz.sha256 | .zip.sha256
Región UE (Fráncfort) .tar.gz | .zip .tar.gz.sha256 | .zip.sha256
Región América del Sur (São .tar.gz | .zip .tar.gz.sha256 | .zip.sha256
Paulo)
Región EE.UU. Oeste (Oregón) .tar.gz | .zip .tar.gz.sha256 | .zip.sha256

Importante:

2. Para ejecutar DynamoDB en su equipo, debe disponer de Java Runtime


Environment (JRE) versión 6.x o posterior. La aplicación no se ejecuta en
versiones anteriores de JRE.
3. Después de descargar el archivo, extraiga el contenido y copie el directorio
extraído en la ubicación que prefiera.
4. Para iniciar DynamoDB en el equipo, abra una ventana del símbolo del sistema,
vaya al directorio donde ha extraído DynamoDBLocal.jar y escriba el comando
siguiente:

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -


sharedDb

Nota:

Si utiliza Windows PowerShell, asegúrese de delimitar el nombre del parámetro


o todo el nombre y el valor del siguiente modo:

java -D"java.library.path=./DynamoDBLocal_lib" -jar DynamoDBLocal.jar

DynamoDB procesa las solicitudes entrantes hasta que lo detiene. Para detener
DynamoDB, escriba Ctrl+C en la ventana del símbolo del sistema.

De manera predeterminada, DynamoDB usa el puerto 8000. Si el puerto 8000


no está disponible, este comando genera una excepción. Para obtener una lista
completa de opciones de tiempo de ejecución de DynamoDB, incluida -port,
escriba este comando:

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -help


5. Para poder tener acceso a DynamoDB mediante programación o a través de la
AWS Command Line Interface (AWS CLI), debe configurar sus credenciales para
permitir la autorización para sus aplicaciones. La versión de DynamoDB
descargable requiere credenciales para trabajar. Por ejemplo:
6. AWS Access Key ID: "fakeMyKeyId"
AWS Secret Access Key: "fakeSecretAccessKey"

Puede utilizar el comando aws configure de la AWS CLI para configurar las
credenciales.

Puede comenzar a escribir aplicaciones. Para obtener acceso a la instancia de


DynamoDB que se ejecuta localmente, use el parámetro --endpoint-url. Por
ejemplo, utilice el siguiente comando para enumerar las tablas DynamoDB:

aws dynamodb list-tables --endpoint-url http://localhost:8000

5. ASPECTOS DE PERFORMANCE, ESCALAMIENTO.

En DynamoDB se trabaja principalmente con tablas, elementos y atributos. Una tabla


es una colección de elementos y cada elemento es una colección de atributos.
DynamoDB utiliza claves principales para identificar de forma exclusiva cada uno de los
elementos de la tabla e índices secundarios para proporcionar mayor flexibilidad a la
hora de realizar consultas. Puede utilizar Flujos de DynamoDB para capturar los eventos
de modificación de datos en las tablas de DynamoDB.
5.1. Reglas de nomenclatura

Las tablas, los atributos y otros objetos de DynamoDB deben tener nombres. Los
nombres deben ser significativos y concisos.

A continuación, se indican las reglas de nomenclatura de DynamoDB:

 Todos los nombres deben codificarse mediante UTF-8 y distinguen entre


mayúsculas y minúsculas.
 Los nombres de las tablas y los índices deben tener entre 3 y 255 caracteres,
que solo pueden ser los siguientes:
 a-z
 A-Z
 0-9
 _ (guion bajo)
 - (guion)
 . (punto)
 Los nombres de los atributos deben tener entre 1 y 255 caracteres.

5.2. Tipos de datos

DynamoDB admite muchos tipos de datos para los atributos de una tabla. Se pueden
categorizar como se indica a continuación:

 Tipos escalares – Un tipo escalar es aquel que puede representar exactamente


un valor. Los tipos escalares son Number, String, Binary, Boolean y Null.
 Tipos de documentos – un tipo de documento puede representar una estructura
compleja con atributos anidados —como los que se encontraría en un
documento JSON. Los tipos de documentos son List y Map.
 Tipos de conjuntos – Un tipo de conjunto puede representar varios valores
escalares. Los tipos de conjuntos son String Set, Number Set y Binary Set.

Al crear una tabla o un índice secundario, debe especificar los nombres y los tipos de
datos de cada uno de los atributos de clave principal (clave de partición y clave de
ordenación). Además, cada atributo de clave principal debe definirse como de tipo
String, Number o Binary.

DynamoDB es una base de datos NoSQL sin esquema. Esto significa que, a excepción
de los atributos de clave principal, no tiene que definir atributos ni tipos de datos cuando
crea las tablas. En comparación, las bases de datos relacionales requieren que se
definan los nombres y los tipos de datos de cada columna al crear la tabla.

A continuación, se muestran las descripciones de cada tipo de datos, junto con ejemplos
en formato JSON.

Tipos escalares

Los tipos escalares son Number, String, Binary, Boolean y Null.

DynamoDB distribuye automáticamente los datos y el tráfico de las tablas entre un


número suficiente de servidores para satisfacer sus requisitos de almacenamiento y
desempeño, al mismo tiempo que mantiene un desempeño uniforme y rápido. Todos los
datos se almacenan en discos de estado sólido (SSD) y se replican automáticamente
en varias zonas de disponibilidad de una región de AWS, con objeto de ofrecer
prestaciones integradas de alta disponibilidad y durabilidad de los datos. Puede utilizar
tablas globales para mantener sincronizadas las tablas de DynamoDB entre las distintas
regiones de AWS.

5.3. Modo de capacidad de lectura/escritura

Amazon DynamoDB posee dos modos de capacidad de lectura/escritura para procesar


las lecturas y escrituras en las tablas:

 Bajo demanda
 Capacidad aprovisionada (valor predeterminado, apta para capa gratuita)

El modo de capacidad de lectura/escritura controla cómo se le cobrará el rendimiento


de lectura y escritura y cómo se administra la capacidad. Puede establecer el modo de
capacidad de lectura/escritura al crear una tabla y también modificarlo más adelante.

5.4. Partitions y distribución de datos

DynamoDB almacena los datos en las particiones. Una partición es una asignación de
almacenamiento a una tabla que se sustenta en discos de estado sólido (SSD) y se
replica automáticamente en varias zonas de disponibilidad de una región de AWS.
DynamoDB se encarga de todo lo que concierne a la administración de las particiones
—para que usted no tenga que ocuparse de ello.

Al crear una tabla, su estado inicial es CREATING. Durante esta fase, DynamoDB
asigna particiones suficientes a la tabla para que pueda satisfacer los requisitos de
rendimiento aprovisionado. Puede comenzar a escribir y leer datos en la tabla una vez
que su estado haya cambiado a ACTIVE.

DynamoDB asigna particiones adicionales a una tabla en las siguientes situaciones:

 Si aumenta los ajustes de rendimiento aprovisionado de la tabla de tal forma que


se supere el límite admitido por las particiones existentes.
 Si una partición existente se llena al límite de su capacidad y se requiere más
espacio de almacenamiento.

La administración de las particiones tiene lugar automáticamente en segundo plano y


es transparente para las aplicaciones. La tabla permanece disponible a lo largo del
proceso y responde en todo momento a los requisitos de rendimiento aprovisionado.

Un Global secondary index de DynamoDB también consta de particiones. Los datos de


un índice secundario global se almacenan de forma independiente de los datos de la
tabla base, pero las particiones de índices se comportan prácticamente igual que las
particiones de tablas.
6. USOS DE LA TECNOLOGÍA.

Amazon DynamoDB es un servicio de bases de datos NoSQL totalmente administrado


que ofrece un desempeño rápido y previsible, así como una escalabilidad óptima.
DynamoDB le permite trasladar a AWS las cargas administrativas que supone tener que
utilizar y escalar una base de datos distribuida, para que no tenga que preocuparse del
aprovisionamiento, la instalación y la configuración del hardware, ni tampoco de las
tareas de replicación, revisión del software o escalado de clústeres. Además,
DynamoDB ofrece el cifrado en reposo, que elimina la carga y la complejidad operativa
que conlleva la protección de información confidencial.

Con DynamoDB, puede crear tablas de base de datos capaces de almacenar y


recuperar cualquier cantidad de datos, así como de atender cualquier nivel de tráfico de
solicitudes. Puede escalar la capacidad de desempeño de las tablas para aumentarla o
reducirla sin tiempos de inactividad ni reducción del desempeño, así como utilizar la
consola de administración de AWS para monitorizar la utilización de recursos y las
métricas de desempeño.

Amazon DynamoDB proporciona una funcionalidad de backup bajo demanda. Le


permite crear backups completos de las tablas para una retención y archivado a largo
plazo con el objetivo de cumplir los requisitos de conformidad normativa.

Puede crear backups bajo demanda y habilitar recuperaciones a un momento dado en


las tablas de Amazon DynamoDB. La recuperación a un momento dado ayuda a
proteger las tablas de Amazon DynamoDB de operaciones accidentales de escritura o
eliminación. Con la recuperación a un momento dado, puede restaurar la tabla a
cualquier momento de los últimos 35 días.

DynamoDB permite eliminar automáticamente los elementos vencidos de las tablas,


para ayudarle a reducir el consumo de almacenamiento y el costo que suponen los datos
que ya no son pertinentes.

7. EMPRESAS Y/O ORGANIZACIONES QUE LA UTILIZAN.

 Precision Exams

Precision Exams ofrece exámenes académicos online y se centra en el mercado de


enseñanza secundaria de los Estados Unidos en los 50 estados. La empresa
necesitaba escalar su base de datos para garantizar una experiencia de prueba de
latencia baja, independientemente del volumen de pruebas realizándose en un
momento determinado. Al migrar a Amazon DynamoDB de una base de datos MySQL
personalizada, Precision Exams puede escalar para cumplir con las necesidades de sus
clientes, ya sean 100 o 1 000 lecturas por segundo. Asimismo, la empresa informa un
ahorro del 30 por ciento del coste de ejecución de la base de datos.
 Shazam

Shazam conecta a más de 200 millones de personas repartidas por más de 200 países
y en 33 idiomas con la música, los programas de televisión y las firmas que les
apasionan. Cada semana, otro millón y medio de personas curiosas se interesan por
Shazam. Todo ello hace que Shazam destaque como la empresa líder a escala mundial
en la búsqueda de contenido multimedia.

La aplicación móvil Shazam ayuda a los usuarios a identificar el contenido multimedia


que puede resultar de su interés, además de permitirles interactuar con dicho contenido.
Cuando escuchen una canción o vean un programa de televisión o un anuncio que les
guste, solo tienen que activar la aplicación para "etiquetarlo". Después de etiquetarlo,
se muestra la información relevante, como el título de la canción y del álbum, o bien el
nombre de un producto o de un programa de televisión. También se ofrece contenido
adicional como video, letras y otra información. Los seguidores tienen la opción de
compartir estas etiquetas en Facebook, Google+ y Twitter, así como de comprar música
en Amazon MP3 en la plataforma Android.

A fin de conseguir el éxito y satisfacer los picos de demanda previstos en el servicio


durante la campaña publicitaria de la Super Bowl, Shazam buscaba una tecnología de
la cloud como una forma de aumentar rápidamente la capacidad para cubrir el evento
deportivo televisado más importante del mundo.

Jason Titus, director técnico de Shazam, explica: “Tuvimos en cuenta a otros


proveedores de la cloud, los comparamos y evaluamos de qué manera podrían
satisfacer nuestras necesidades de capacidad. Al final, nos decantamos por Amazon
Web Services (AWS) porque ofrece la fiabilidad, la infraestructura de soporte y toda la
gama de servicios que necesitamos”.

La empresa confió principalmente en las instancias extragrandes cuádruples de


informática en clúster de Amazon Elastic Compute Cloud (Amazon EC2), que están
especialmente diseñadas para aplicaciones de computación de alto desempeño (HPC).
El tráfico se distribuyó por todas estas instancias con Elastic Load Balancing.
Amazon DynamoDB, en principio, sirvió como un almacén de datos secundario para
los logs de interacción y de actividad de los usuarios. No obstante, este nuevo servicio
de base de datos NoSQL se integró en el entorno de producción como el almacén de
datos principal cuando Shazam se percató de que podía soportar más de 500 000
escrituras por segundo. La empresa también utiliza Amazon Elastic
MapReduce (Amazon EMR) para el análisis de datos a gran escala que pueden requerir
más de 1 millón de escrituras por segundo.
 Xcaret

Cómo AWS contribuyó a que el grupo turístico mexicano XCaret digitalizara con éxito su
servicio de venta de millones de fotos utilizando servicios como Amazon Elastic Compute
Cloud, Amazon Aurora, Amazon Relational Database Service, AWS Lambda, Amazon Simple
Storage Service, Amazon DynamoDB, entre otros.

El CIO de Xcaret, Eduardo Vergara Eggleton, cuenta la forma en que AWS le permitió
pasar de un sistema analógico de venta de fotos a otro digital en tres meses. Apenas
puesto en marcha el sistema digital, los clientes descargaron 22 TB de fotos ofrecidas
en 4 diferentes tamaños y formatos para múltiples aplicaciones y dispositivos.

8. EJEMPLO DE DISEÑO DE ESQUEMA


En este ejemplo, se describe cómo se modelan los datos relacionales en Amazon
DynamoDB. El diseño de las tablas de DynamoDB se corresponde con el esquema
relacional de registro de pedidos que se describe en Modelos relacionales. Se ajusta
al Patrón de diseño de listas de adyacencia, que es un mecanismo habitual para
representar estructuras de datos relacionales en DynamoDB.
9. MANIPULACIÓN DE DATOS

 INSERT

 READ
 UPDATE

 DELETE
10. ACCESO A DATO CON JAVA U OTRO LENGUAJE DE
PROGRAMACIÓN.

Conexión de dynamoDB con Android:

Preparar

Antes de comenzar con la configuración, es importante decirte que para conectar AWS
DynamoDB, debes tener una cuenta de AWS y un estudio de Android.

Después de configurar tu cuenta de AWS y tu estudio de Android, debe obtener AWS


Mobile SDK para Android. Y cómo hago eso, bueno, hay tres maneras fáciles de hacerlo:

1. Usando Gradle

En su archivo build.gradle, agregará las siguientes dependencias como se muestra en el


siguiente ejemplo.

2. Importación de archivos Jar:


Para que puedas obtener los archivos Jar, debes descargar el SDK
http://aws.amazon.com/mobile/sdk donde verás la siguiente pantalla.
En la sección de Android, haz clic en el enlace Descargar SDK, y comenzará a descargar
automáticamente el archivo en su navegador. Luego, en el estudio de Android, agrega
el archivo descargado a tu carpeta / libs y sincroniza el proyecto, se actualizará
automáticamente.

3. Usando Maven

Este SDK que estamos tratando de descargar es compatible con Apache maven, que es
un software que puede ayudar a administrar la compilación de un proyecto. Cada
proyecto de maven contiene un pom.xml en el que puedes especificar los servicios que
deseas agregar a tu proyecto. Esto es útil porque solo agregas las dependencias que
necesitas, no todos los archivos jar.

Está bien, ahora que tienes el SDK instalado en tu proyecto, podemos continuar con la
configuración. El siguiente paso es bastante fácil, en tu AndroidManifest.xml agregarás
los permisos como se muestra en el siguiente ejemplo.

El último paso es que debes obtener tus credenciales de AWS.

De acuerdo, ahora que tienes configurado AWS SDK en tu proyecto, continuemos con la
conexión entre tu proyecto y tu base de datos almacenada en Amazon DynamoDB.
Creando una nueva tabla

Para crear una nueva tabla, necesitamos ingresar a la consola para dar un nombre a la
nueva tabla y seleccionar una clave primaria para los datos que se almacenarán en ella.
A continuación, haz clic en continuar y tendrás que elegir la capacidad de rendimiento
de la tabla (leer unidades de capacidad y escribir unidades de capacidad). En el siguiente
paso, puedes seleccionar un límite de solicitudes que, en caso de que pase, recibirás una
notificación por correo electrónico. Por último, haz clic en "crear tabla".

Vamos a hacerlo, ahora que tienes toda la configuración previa y la tabla creada, estás
listo para conectar DynamoDb a tu proyecto de Android. En primer lugar, debe importar
una biblioteca en su clase java, como se muestra en el siguiente ejemplo:

Ahora que tienes las importaciones, vas a agregar el código que se muestra a
continuación:

Lo que hace este código es que estamos creando credenciales de Amazon Cognito para
los permisos de acceso; a continuación, crearemos un objeto DynamoDbClient
utilizando las credenciales de Cognito creadas anteriormente como se muestra en el
siguiente ejemplo:

Y finalmente vas a crear una referencia de tabla como esta:


Ahora que tienes la referencia de la tabla, puedes crear, leer, editar y eliminar datos de
tu tabla:

Crear:

Actualizar:

Borrar:

Leer:
11. APLICACIÓN DE EJEMPLO (TEMA DE RESPONSABILIDAD
SOCIAL)

12. CONCLUSIONES

DynamoDB es un servicio de bases de datos NoSQL rápido y totalmente


gestionado que permite almacenar y recuperar de manera fácil y económica
cualquier cantidad de datos, así como atender cualquier nivel de tráfico de
solicitudes. Su rendimiento garantizado y una latencia de milisegundos de un solo
dígito lo convierten la opción ideal para aplicaciones de juegos, de tecnología
publicitaria, móviles y muchas otras aplicaciones.

DynamoDB ofrece un escalado óptimo del rendimiento y almacenamiento a través


de la API y de la sencilla consola de gestión, de tal forma que pueda ampliarlo o
reducirlo según sus necesidades.
Las tablas de DynamoDB no presentan esquemas fijos, y cada elemento puede
tener un número diferente de atributos. La existencia de diferentes tipos de datos
enriquece el modelo de datos. Los índices secundarios añaden flexibilidad a las
consultas que se pueden realizar, sin mermar el rendimiento.
El rendimiento, la fiabilidad y la seguridad están garantizados, gracias al
almacenamiento SSD y a la replicación automática en 3 direcciones. Amazon
DynamoDB utiliza métodos criptográficos probados para autenticar a los usuarios
de manera segura y prevenir el acceso no autorizado a los datos.

DynamoDB posee muchas ventajas con respecto a las distintas bases de datos
NoSQL, una de estas es que posee:
Escalabilidad: es un servicio diseñado para ofrecer rendimiento perfecto, la
escalabilidad es automática, quiere decir que no existe limite respecto a la cantidad
de datos.
Administración sencilla: es totalmente gestionado, solo se tiene que crear la base
de datos y el servicio se encargara del resto.
Flexibilidad: se puede consultar cualquier atributo con la utilización de índices
secundarios.
Rendimiento rápido y predecible: el promedio de latencias del servicio es en
milisegundos.
Tolerancia a fallos integrada: replica los datos de forma automática.
Sin esquemas: no tiene estructura fija.
Rentabilidad: ahorro en los costos, solo se paga por los recursos que se este
usando.
Seguridad: utiliza métodos criptográficos probados para autenticar a los usuarios.
Supervisión integrada: muestra métricas operativas case sobre su tabla.
Integración de Elastic MapReduce: permite a las empresas a realizar análisis
complejos de sus grandes conjuntos de datos.
DynamoDB puede realizar la conexión con diferentes lenguajes de programación,
por ejemplo java, node.js, Python, Ruby, .NET, Spring Boot.
DynamoDB posee sus propias bibliotecas para ofrecer mayor rendimiento a los
usuarios.

13. RECOMENDACIONES

DynamoDB es una base de datos alojado en la nube y tienes costos, se


recomienda leer los términos y las condiciones para el uso, para evitar futuras
molestias respecto al cobro por los servicios brindados.
DynamoDB al ser una base de datos de muy alto rendimiento respecto a la
latencia se recomienda usarlo para aplicaciones como los juegos, los de tecnología
publicitaria, para las aplicaciones móviles que contengan manejo de datos y para
muchas aplicaciones más.
DynamoDB cuenta con diversos servicios que contienen ciertas ventajas unos
sobre otro, se recomienda hacer un estudio previo para tomar la decisión de que
servicio se contratara.
DynamoDB al tener una arquitectura conocida, se recomienda hacer la conexión
con lenguajes de programación que tengan compatibilidad con la base de datos
Para el uso de DynamoDB se recomienda tener un conocimiento previo respecto a
base de datos relacionales, esto para tener ideas acerca del manejo de la sintaxis.
14. BIBLIOGRAFÍA

https://aws.amazon.com/es/solutions/case-studies/all/
https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/bp-modeling-
nosql-B.html

S-ar putea să vă placă și