Documente Academic
Documente Profesional
Documente Cultură
Profesor:
Espinoza Domínguez, Robert
Trabajo presentado para el curso de Base de Datos III
Lima
2019
Contenido
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.
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.
Inicie DynamoDB
En el uso de CMD java -jar DynamoDBLocal.jar
Detener DynamoDB
En el uso de CMD Ctrl+C
4. IMPLEMENTACIÓN INTERNA
Importante:
Nota:
DynamoDB procesa las solicitudes entrantes hasta que lo detiene. Para detener
DynamoDB, escriba Ctrl+C en la ventana del símbolo del sistema.
Puede utilizar el comando aws configure de la AWS CLI para configurar las
credenciales.
Las tablas, los atributos y otros objetos de DynamoDB deben tener nombres. Los
nombres deben ser significativos y concisos.
DynamoDB admite muchos tipos de datos para los atributos de una tabla. Se pueden
categorizar como se indica a continuación:
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
Bajo demanda
Capacidad aprovisionada (valor predeterminado, apta para capa gratuita)
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.
Precision Exams
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.
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.
INSERT
READ
UPDATE
DELETE
10. ACCESO A DATO CON JAVA U OTRO LENGUAJE DE
PROGRAMACIÓN.
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.
1. Usando Gradle
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.
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:
Crear:
Actualizar:
Borrar:
Leer:
11. APLICACIÓN DE EJEMPLO (TEMA DE RESPONSABILIDAD
SOCIAL)
12. CONCLUSIONES
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
https://aws.amazon.com/es/solutions/case-studies/all/
https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/bp-modeling-
nosql-B.html