Sie sind auf Seite 1von 19

UNIVERSIDAD PRIVADA DE TACNA

FACULTAD DE INGENIERIA
Escuela Profesional de Ingeniería de Sistemas

AMAZON WEB SERVICES DYNAMODB


Curso: Base de Datos I

Docente: Ing. Carlos Ruiz Cancino

Integrantes:
Mamani Maquera, Jorge Luis (2016055236)

Tacna – Perú
2018
Amazon Web Services DynamoDB

INDICE GENERAL

INTRODUCCION ................................................................................................................................ 4

AMAZON WEB SERVICES DYNAMODB........................................................................................... 5

I. OBJETIVOS ................................................................................................................................ 5

1.1 General ................................................................................................................................ 5

1.2 Especificos .......................................................................................................................... 5

II. AMAZON DYNAMODB ............................................................................................................... 5

2.1 ¿Qué es Amazon DynamoDB? ............................................................................................... 6

2.2 Capacidades de DynamoDB ................................................................................................... 6

III. FUNCIONAMIENTO.................................................................................................................... 7

3.1 Componentes básicos de DynamoDB .................................................................................... 7

3.1.1. Tablas, elementos y atributos. .............................................................................................. 7

3.1.2. Clave principal ...................................................................................................................... 7

3.1.3. Índices secundarios . ............................................................................................................ 9

3.1.4. Flujos de DynamoDB . ........................................................................................................ 10

3.2 API de DynamoDB ................................................................................................................ 10

3.2.1. Plano de control. ................................................................................................................. 11

3.2.2. Plano de datos. ................................................................................................................... 11

3.2.3. Flujos de DynamoDB. ......................................................................................................... 12

IV. DISEÑO NOSQL PARA DYNAMODB ...................................................................................... 12

4.1 Diferencias entre el diseño de datos relacionales y NoSQL ................................................. 13

4.2 Dos conceptos clave del diseño NoSQL ............................................................................... 13

4.3 Aproximación al diseño NoSQL ............................................................................................ 14

V. VENTAJAS ............................................................................................................................... 15

5.1 Rendimiento A Cualquier Escala .......................................................................................... 15

5.2 Totalmente Administrado ...................................................................................................... 15

5.3 Adecuado Para Uso Comercial ............................................................................................. 15

2
Amazon Web Services DynamoDB

CONCLUSIONES.............................................................................................................................. 16

RECOMENDACIONES ..................................................................................................................... 17

BIBLIOGRAFIA ................................................................................................................................. 18

WEBGRAFIA ................................................................................................................................... 119

3
Amazon Web Services DynamoDB

INTRODUCCION

Amazon es una organización que ha aprendido operar su plataforma que es la confiabilidad y


escalabilidad de un sistema depende de cómo se gestiona su estado de aplicación. Amazon
utiliza una arquitectura altamente descentralizada, ligeramente acoplada, orientada a
servicios, que consta de cientos de servicios. En este entorno, existe una necesidad particular
de tecnologías de almacenamiento que estén siempre disponibles.
Para cumplir con las necesidades de fiabilidad y escala, Amazon ha desarrollado una serie de
tecnologías de almacenamiento, de las cuales Amazon Simple Storage Service (también
disponible fuera de Amazon y conocida como Amazon S3) es probablemente la más conocida.
Este documento presenta el diseño e implementación de DynamoDB, otra tienda de datos
distribuidos escalable y altamente disponible construida para la plataforma de Amazon.
DynamoDB se utiliza para administrar el estado de los servicios que tienen requisitos de
confiabilidad muy altos y necesitan un control estricto sobre las compensaciones entre
disponibilidad, consistencia, rentabilidad y rendimiento.
Hay muchos servicios en la plataforma de Amazon que solo necesitan acceso de clave
primaria a un almacén de datos. Para muchos servicios, como los que ofrecen listas de
mejores vendedores, carritos de compras, preferencias del cliente, gestión de sesiones, rango
de ventas y catálogo de productos, el patrón común de uso de una base de datos relacional
generaría ineficiencias y limitaría la escala y la disponibilidad. DynamoDB proporciona una
interfaz de clave primaria simple para cumplir con los requisitos de estas aplicaciones.
DynamoDB usa una síntesis de técnicas bien conocidas para lograr la escalabilidad y la
disponibilidad: los datos se dividen y se replican usando el hash consistente, y la consistencia
se facilita mediante el control de versiones de objetos. La coherencia entre las réplicas durante
las actualizaciones se mantiene mediante una técnica de quórum y un protocolo de
sincronización de réplica descentralizada. DynamoDB emplea un protocolo de membresía y
detección de fallas distribuida basada en chismes. DynamoDB es un sistema completamente
descentralizado con una necesidad mínima de administración manual. Los nodos de
almacenamiento se pueden agregar y eliminar de DynamoDB sin necesidad de particionar o
redistribuir manualmente.
En el último año, DynamoDB ha sido la tecnología de almacenamiento subyacente para una
serie de servicios básicos en la plataforma de comercio electrónico de Amazon.

4
Amazon Web Services DynamoDB

AMAZON WEB SERVICES DYNAMODB


I. OBJETIVOS
1.1. GENERAL:
- Capacidades de Amazon DynamoDB en detalle.
- Casos de bases de datos No relacionales (NoSQL) Databases.
- Funcionalidades de Amazon DynamoDB.

1.2. ESPECIFICOS:
- Aprender las capacidades de Amazon DynamoDB en detalle.
- Mejores casos de uso para bases de datos No relacionales (NoSQL) Databases.
- Descubrir las últimas funcionalidades incorporadas a Amazon DynamoDB.

II. AMAZON DYNAMODB


Es un servicio de datos NoSQL que ofrece un rendimiento rápido gracias al almacenamiento
de datos en discos de estado sólido (SSD ‘solid-state drive’). Cuenta además con una amplia
infraestructura que replica los datos entre los distintos servidores repartidos por todo el mundo
con la intención de ampliar las zonas de disponibilidad (AWS, 2012).
El objetivo de DynamoDB consiste en ofrecer una escalabilidad perfecta, así como un
rendimiento rápido y predecible. Del mismo modo, gestiona automáticamente la distribución
de los datos y de la carga de trabajo entre un número suficiente de servidores como para
satisfacer sus necesidades respecto de la escalabilidad. No existe ningún límite en cuanto a
la cantidad de datos que puede almacenar en una tabla, y además puede aumentar la
capacidad al nivel que necesite. El modelo de consulta de datos es simple, las operaciones en
un elemento de datos se identifican por una clave y se almacena como un objeto binario.
Amazon DynamoDB es una buena alternativa para quienes desean tasas de velocidad de
procesamiento muy altas y donde se lleguen a generar terabytes de datos (AWS, 2012).
Uno de los requisitos de diseño clave para DynamoDB es que se debe escalar de forma
incremental. Esto requiere un mecanismo para dividir dinámicamente los datos sobre el
conjunto de nodos, es decir, los anfitriones de almacenamiento, en el sistema. El esquema de
partición de DynamoDB se basa en “hashing consistent” que se encargar de distribuir la
carga entre los hosts de almacenamiento múltiples. En el hashing adecuado, el rango de salida
de una función hash se trata como un espacio circular fijo o “anillo”, es decir, el mayor valor
hash se envuelve alrededor para el menor valor hash. A cada nodo en el sistema se le asigna
un valor aleatorio dentro de este espacio que representa su “posición” en el anillo. Cada
elemento de datos identificado por una clave es asignado a un nodo con una correspondiente
clave de hashing para que el elemento de datos pueda ceder su posición en el anillo, y luego
rotar el anillo hacia la derecha para encontrar el primer nodo con una posición mayor de la
posición del elemento. Por lo tanto, cada nodo se convierte en responsable de la región en el
anillo entre ella y su nodo predecesor en el anillo. La principal ventaja de hashing consistent
es que la salida o llegada de un nodo solo afecta a sus vecinos inmediatos, y así los otros
nodos no se verán afectados (Amazon’s Dynamo, 2007).

5
Amazon Web Services DynamoDB

2.1 ¿Qué es Amazon DynamoDB?


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
delegar las cargas administrativas que supone
tener que utilizar y escalar bases de datos
distribuidas, para que no tenga que preocuparse del provisionamiento, la instalación ni la
configuración del hardware, ni tampoco de las tareas de replicación, aplicación de parches de
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.
2.2 Capacidades de DynamoDB

- 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.

- 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. Para obtener más información, consulte Backup y
restauración bajo demanda para 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. Para obtener más información, consulte Tiempo de vida.

- 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.

6
Amazon Web Services DynamoDB

III. FUNCIONAMIENTO
3.1. Componentes básicos de DynamoDB
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.

3.1.1. Tablas, elementos y atributos

A continuación, se indican los componentes básicos de DynamoDB:

 Tablas: al igual que otros sistemas de administración de bases de datos, DynamoDB almacena datos
en tablas. Una tabla es una colección de datos. Por ejemplo, consulte la tabla de ejemplo
denominada People, que puede utilizar para almacenar información de contacto personal sobre
amigos, familiares u otras personas de interés. También podría utilizar una tabla Cars para
almacenar información sobre los vehículos que conducen las personas.
 Elementos: cada tabla contiene cero o más elementos. Un elemento es un grupo de atributos que
puede identificarse de forma exclusiva entre todos los demás elementos. En una tabla People, cada
elemento representa a una persona. En una tabla Cars, cada elemento representa un vehículo. Los
elementos de DynamoDB son similares en muchos aspectos a las filas, los registros o las tuplas de
otros sistemas de bases de datos. En DynamoDB, no existe ningún límite respecto al número de
elementos que pueden almacenarse en una tabla.
 Atributos: cada elemento se compone de uno o varios atributos. Un atributo es un componente
fundamental de los datos, que no es preciso dividir más. Por ejemplo, un elemento de una
tabla People contiene los atributos PersonID, LastName, FirstName, etc. En una tabla Department,
un elemento podría tener atributos tales como DepartmentID, Name,Manager, etc. En DynamoDB,
los atributos se parecen en muchos aspectos a los campos o columnas en otros sistemas de bases
de datos.

3.1.2. Clave principal

Al crear una tabla, además de asignarle un nombre, debe especificar su clave principal. La clave
principal identifica de forma única a cada elemento de la tabla, de manera que no puede haber dos
elementos con la misma clave.

7
Amazon Web Services DynamoDB

DynamoDB admite dos tipos distintos de clave principal:

 Clave de partición: una clave principal simple que consta de un solo atributo denominado clave de
partición.
DynamoDB utiliza el valor de clave de partición como información de entrada a una función hash
interna. El resultado de la función hash determina la partición (almacenamiento físico interno de
DynamoDB) donde se almacenará el elemento.
En una tabla que solo tiene una clave de partición, no puede haber dos elementos que tengan el
mismo valor de clave de partición.
La tabla People descrita en Tablas, elementos y atributos es un ejemplo de una tabla con una
clave principal simple (PersonID). Puede obtener acceso a cualquier elemento de la
tabla People directamente al proporcionar el valor de PersonId de dicho elemento.
 Clave de partición y clave de ordenación: este tipo de clave se denomina clave principal
compuesta y consta de dos atributos. El primer atributo es la clave de partición y el segundo,
la clave de ordenación.
DynamoDB utiliza el valor de clave de partición como información de entrada a una función hash
interna. El resultado de la función hash determina la partición (almacenamiento físico interno de
DynamoDB) donde se almacenará el elemento. Todos los elementos con la misma clave de
partición se almacenan en posiciones contiguas, ordenados según el valor de la clave de
ordenación.
En una tabla que tenga una clave de partición y una clave de ordenación, es posible que dos
elementos tengan el mismo valor de clave de partición. Sin embargo, esos dos elementos deben
tener valores de clave de ordenación distintos.
La tabla Music descrita en Tablas, elementos y atributos es un ejemplo de una tabla con una clave
principal compuesta (Artist y SongTitle). Puede obtener acceso a cualquier elemento de la
tabla Music directamente al proporcionar los valores de Artist y SongTitle de dicho elemento.
Una clave principal compuesta ofrece más flexibilidad a la hora de consultar datos. Por ejemplo, si
proporciona el valor de Artist, DynamoDB recupera todas las canciones de ese intérprete. Para
recuperar solo un subconjunto de canciones de un intérprete determinado, proporcione un valor
de Artist y un intervalo de valores de SongTitle.

8
Amazon Web Services DynamoDB

3.1.3. Índices secundarios

Puede crear uno o varios índices secundarios en una tabla. Un índice secundario le permite
consultar los datos de la tabla usando una clave alternativa, además de realizar consultas basadas
en la clave principal. DynamoDB no requiere que se usen índices; sin embargo, estos ofrecen a las
aplicaciones mayor flexibilidad a la hora de consultar los datos. Después de crear un índice
secundario en una tabla, podrá leer los datos en el índice prácticamente de la misma forma que en
la tabla.

DynamoDB admite dos tipos de índices:

 Global secondary index: índice con una clave de partición y una clave de ordenación que pueden
diferir de las claves de la tabla.
 Índice secundario local: índice que tiene la misma clave de partición que la tabla, pero una clave
de ordenación distinta.

Puede definir hasta 5 índices secundarios globales y 5 índices secundarios locales por cada tabla.

3.1.4. Flujos de DynamoDB

Flujos de DynamoDB es una característica opcional que captura los eventos de modificación de
datos que se producen en las tablas de DynamoDB. Los datos de estos eventos aparecen en la
secuencia prácticamente en tiempo real y en el orden en que se han producido.

Cada evento se representa mediante un registro de secuencia. Si habilita una secuencia en una
tabla, Flujos de DynamoDB escribe un registro de secuencia cada vez que se produzcan los
siguientes eventos:

 Se agrega un nuevo elemento a la tabla: la secuencia captura una imagen del elemento completo,
incluidos todos sus atributos.
 Se actualiza un elemento: la secuencia captura las imágenes de "antes" y "después" de los
atributos del elemento que se han modificado.
 Se elimina un elemento de la tabla: la secuencia captura una imagen del elemento completo antes
de eliminarlo.

Cada registro de secuencia también contiene el nombre de la tabla, la marca temporal del evento y
otros metadatos. Los registros de secuencia tienen una vida útil de 24 horas; después, se eliminan
automáticamente de la secuencia.

9
Amazon Web Services DynamoDB

Puede utilizar Flujos de DynamoDB conjuntamente con AWS Lambda para crear un disparador; es
decir, un código que se ejecute automáticamente cada vez que aparezca un evento de interés en
una secuencia. Por ejemplo, tomemos una tabla Customers que contiene la información de clientes
de una compañía. Supongamos que desea enviar un mensaje de correo electrónico de bienvenida
a cada nuevo cliente. Podría habilitar una secuencia en esa tabla y, a continuación, asociar la
secuencia con una función Lambda. La función Lambda se ejecutaría cada vez que apareciese un
nuevo registro en la secuencia, pero solamente procesaría los nuevos elementos agregados a la
tabla Customers. Para cualquier elemento que tuviera el atributo EmailAddress, la función Lambda
podría invocar Amazon Simple Email Service (Amazon SES) para que enviase un mensaje de
correo electrónico a esa dirección.

3.2. API de DynamoDB

Para trabajar con Amazon DynamoDB, la aplicación debe utilizar algunas operaciones de API
sencillas. Dynamo ofrece operaciones por organizadas categorías:

 Plano de control
 Plano de datos
 Flujos de DynamoDB

3.2.1. Plano de control

Las operaciones del plano de control permiten crear y administrar tablas de DynamoDB. También
permiten usar índices, secuencias y otros objetos que dependen de las tablas.

 CreateTable: crea una nueva tabla. Si lo prefiere, puede crear uno o varios índices
secundarios y habilitar Flujos de DynamoDB para la tabla.
 DescribeTable: devuelve información sobre una tabla, como su esquema de clave principal,
ajustes de desempeño, información de índices, etc.
 ListTables: devuelve los nombres de todas las tablas en una lista.
 UpdateTable: modifica los ajustes de una tabla o sus índices, crea o elimina nuevos índices
en una tabla o modifica los ajustes de Flujos de DynamoDB de una tabla.
 DeleteTable: elimina de DynamoDB una tabla y todos los objetos que dependen de ella.

10
Amazon Web Services DynamoDB

3.2.2 Plano de datos

Las operaciones del plano de datos permiten llevar a cabo acciones de creación, lectura, actualización
y eliminación (también denominadas operaciones CRUD, por sus siglas en inglés) con los datos de
una tabla. Algunas de las operaciones del plano de datos permiten también leer datos de un índice
secundario.

Creación de datos
 PutItem: escribe un solo elemento en una tabla. Debe especificar los atributos de clave
principal, pero no es preciso especificar otros atributos.
 BatchWriteItem: escribe hasta 25 elementos en una tabla. Resulta más eficiente que llamar
a PutItem varias veces, porque la aplicación solo tiene que completar un único recorrido de
ida y vuelta para escribir todos los elementos. También puede usar BatchWriteItem para
eliminar varios elementos de una o varias tablas.
Lectura de datos
 GetItem: recupera un solo elemento de una tabla. Es preciso especificar la clave principal del
elemento que se desea recuperar. Puede recuperar la totalidad del elemento o solo un
subconjunto de sus atributos.
 BatchGetItem: recupera hasta 100 elementos de una o varias tablas. Resulta más eficiente
que llamar a GetItem varias veces, porque la aplicación solo tiene que completar un único
recorrido de ida y vuelta para leer todos los elementos.
 Query: recupera todos los elementos que tienen una clave de partición determinada. Debe
especificar el valor de clave de partición. Puede recuperar la totalidad de los elementos o solo
un subconjunto de sus atributos. De forma opcional, puede aplicar una condición a los valores
de la clave de ordenación de tal forma que solo se recupere un subconjunto de los datos que
tienen la misma clave de partición. Puede utilizar esta operación en una tabla, siempre y
cuando esta tenga tanto una clave de partición como una clave de ordenación. También
puede utilizar esta operación en un índice, siempre y cuando este tenga tanto una clave de
partición como una clave de ordenación.
 Scan: recupera todos los elementos de la tabla o el índice especificados. Puede recuperar la
totalidad de los elementos o solo un subconjunto de sus atributos. Si lo desea, puede aplicar
una condición de filtrado para devolver solamente aquellos valores que le interesan y
descartar los demás.
Actualización de datos
 UpdateItem: modifica uno o varios atributos de un elemento. Es preciso especificar la clave
principal del elemento que se desea modificar. Puede agregar nuevos atributos, así como
modificar o eliminar los existentes. También puede realizar actualizaciones condicionales, de
11
Amazon Web Services DynamoDB

tal forma que la actualización solamente se lleve a cabo cuando se cumpla una condición
definida por el usuario. Si lo desea, puede implementar un contador atómico, que incrementa
o disminuye el valor de un atributo numérico sin interferir con las demás solicitudes de
escritura.
Eliminación de datos
 DeleteItem: elimina un solo elemento de una tabla. Es preciso especificar la clave principal
del elemento que se desea eliminar.
 BatchWriteItem: elimina hasta 25 elementos de una o varias tablas. Resulta más eficiente
que llamar a DeleteItem varias veces, porque la aplicación solo tiene que completar un único
recorrido de ida y vuelta para eliminar todos los elementos. También puede
usar BatchWriteItem para añadir varios elementos a una o varias tablas.

3.2.3 Flujos de DynamoDB

Las operaciones de Flujos de DynamoDB permiten habilitar o deshabilitar una secuencia en una tabla
y obtener acceso a los registros de modificación de datos contenidos en una secuencia.

 ListStreams: devuelve una lista de todas las secuencias o solamente la secuencia de una
tabla concreta.
 DescribeStream: devuelve información sobre una secuencia, como su nombre de recurso de
Amazon (ARN) y sobre dónde puede comenzar la aplicación a leer los primeros registros de la
secuencia.
 GetShardIterator: devuelve un iterador de fragmentos, que es una estructura de datos que la
aplicación utiliza para recuperar los registros de la secuencia.
 GetRecords: recupera uno o varios registros de secuencia mediante el iterador de
fragmentos especificado.

IV. Diseño NoSQL para DynamoDB

Los sistemas de bases de datos NoSQL como Amazon DynamoDB utilizan modelos alternativos de
administración de datos; por ejemplo, pares clave-valor o almacenamiento de documentos. Al pasar
de un sistema de administración de bases de datos relacionales (RDBMS) a un sistema de bases de
datos NoSQL como DynamoDB, es importante conocer las principales diferencias y los enfoques de
diseño específicos.

12
Amazon Web Services DynamoDB

4.1. Diferencias entre el diseño de datos relacionales y NoSQL

Los sistemas de bases de datos relacionales (RDBMS) y las bases de datos NoSQL tienen diferentes
ventajas y desventajas:

 En RDBMS, los datos se pueden consultar de manera flexible, pero las consultas son
relativamente costosas y no escalan bien cuando hay mucho tráfico (consulte Primeros pasos
para modelar datos relacionales en DynamoDB).
 En una base de datos NoSQL como DynamoDB, existe un número limitado de métodos para
consultar los datos; si se utiliza cualquier otro método diferente a estos, resultará más costoso
y lento realizar las consultas.

Estas diferencias hacen que el diseño de las bases de datos sea muy diferente entre los dos sistemas:

 En RDBMS, el diseño busca la flexibilidad sin preocuparse por los detalles o el rendimiento de
la implementación. Por lo general, la optimización de consultas no afecta al diseño del
esquema, pero la normalización es muy importante.
 En DynamoDB, el esquema se diseña específicamente para que las consultas más habituales
y más importantes resulten lo más rápidas y económicas posible. Las estructuras de datos se
ajustan a los requisitos específicos de los casos de uso de la organización.

4.2. Dos conceptos clave del diseño NoSQL

El diseño NoSQL requiere un modo de pensar distinto al diseño de RDBMS. En un sistema RDBMS,
puede empezar a crear un modelo de datos normalizados sin pensar en los patrones de acceso.
Posteriormente, podrá ampliar este modelo cuando surjan nuevos requisitos sobre preguntas y
consultas. Puede organizar cada tipo de datos en su propia tabla.

El diseño NoSQL es diferente:

 En DynamoDB, por el contrario, el esquema no debe empezar a diseñarse hasta que no se


sepa qué preguntas será necesario responder. Es esencial conocer los problemas del negocio
y los costos iniciales de los casos de uso de la aplicación.
 En una aplicación de DynamoDB, debe mantenerse el menor número de tablas posible. La
mayoría de las aplicaciones bien diseñadas solo necesitan una tabla.

13
Amazon Web Services DynamoDB

4.3. Aproximación al diseño NoSQL

El primer paso para diseñar la aplicación de DynamoDB es identificar los patrones de consulta
específicos que el sistema debe satisfacer.

En particular, antes de empezar, es importante entender tres propiedades fundamentales de los


patrones de acceso de la aplicación:

 Tamaño de los datos: saber cuántos datos se almacenarán y solicitarán a la vez ayudará a
determinar el método más eficaz para particionarlos.
 Forma de los datos: en lugar de dar forma a los datos al procesar las consultas (como ocurre
en los sistemas RDBMS), las bases de datos NoSQL organizan los datos de modo que la
forma que tienen en la base de datos se corresponde con la que se va a consultar. Este es un
factor crucial para aumentar la velocidad y la escalabilidad.
 Velocidad de los datos: DynamoDB escala aumentando el número de particiones físicas
disponibles para procesar las consultas y distribuyendo eficazmente los datos entre esas
particiones. Conocer de antemano cuáles pueden ser las cargas de consulta máximas ayuda
a determinar cómo deben particionarse los datos para hacer un uso óptimo de la capacidad de
E/S.

Después de identificar los requisitos de consulta específicos, puede organizar los datos con arreglo a
los principios generales que rigen el rendimiento:

 Agrupar los datos relacionales. Cuando hace 20 años se investigaba cómo optimizar las
tablas de direccionamiento, se descubrió que la "cercanía de referencias" era el factor más
importante para acelerar el tiempo de respuesta y consistía en mantener los datos
relacionados reunidos en el mismo lugar. Esto sigue siendo aplicable a los sistemas NoSQL
actuales, donde mantener los datos relacionales cerca unos de otros tiene un impacto
determinante en los costos y el rendimiento. En lugar de distribuir los elementos de datos
relacionados entre diferentes tablas, en los sistemas NoSQL deben mantenerse lo más juntos
posible.
Como regla general, en una aplicación de DynamoDB, debe mantenerse el menor número de
tablas posible. Tal y como se remarcó anteriormente, la mayoría de las aplicaciones bien
diseñadas solo necesitan una tabla, a menos que exista una razón específica para usar
varias.
Puede haber excepciones, como los casos en los que hay implicados datos de serie temporal
de gran volumen o conjuntos de datos que tienen diferentes patrones de acceso, pero se trata
14
Amazon Web Services DynamoDB

de casos excepcionales. Normalmente, basta una sola tabla con índices invertidos para
permitir que, a través de consultas simples, se creen y recuperen las estructuras de datos
jerárquicas y complejas que necesita la aplicación.
 Utilizar un orden de clasificación. Los elementos relacionados pueden agruparse y
consultarse de forma eficaz si su diseño de claves hace que se ordenen juntos. Esta es una
estrategia importante en el diseño NoSQL.
 Distribuir consultas. También es importante que no haya una gran cantidad de consultas
concentradas en la misma parte de la base de datos, donde podría sobrepasarse la capacidad
de E/S. En su lugar, debe diseñar claves de datos que distribuyan el tráfico lo más
uniformemente posible entre las particiones y eviten la creación de "puntos calientes".
 Utilizar índices secundarios globales. Si crea índices secundarios globales específicos,
puede permitir el uso de diferentes consultas en la tabla principal, lo que sigue siendo rápido y
relativamente económico.

Estos principios generales se traducen en unos patrones de diseño comunes que puede utilizar para
modelar los datos de forma eficaz en DynamoDB.

V. VENTAJAS
5.1. Rendimiento A Cualquier Escala

DynamoDB proporciona respuestas consistentes y de menos de 10 milisegundos en cualquier


tamaño. Cree aplicaciones con un rendimiento y almacenamiento virtualmente ilimitados.
Agregar un caché de memoria reduce el tiempo de respuesta de milisegundos a microsegundos
sin cambiar la aplicación.

5.2. Totalmente Administrado

DynamoDB es una base de datos sin servidor que se ajusta automáticamente a la expansión o
reducción de la capacidad de entrega y proporciona protección continua para los datos de
respaldo. DynamoDB permite que sus aplicaciones distribuidas globalmente accedan
rápidamente a datos nativos al reescribir tablas en múltiples regiones AWS.

5.3. Adecuado Para Uso Comercial

Diseñado para cargas de trabajo críticas. Sus datos están protegidos por encriptación y se
garantiza que son confiables según los acuerdos de nivel de servicio. Puede tomar el control
total de sus formularios con un control de acceso más granular, herramientas de monitoreo
integradas y soporte para conexiones privadas a través de VPN.

15
Amazon Web Services DynamoDB

CONCLUSIONES

En lo relativo a las bases de datos, los servicios ofertados por AWS son de los más populares
dentro del mercado de la infraestructura como servicio y el almacenamiento como servicio,
generando año tras año un crecimiento en sus activos y brindando beneficios a diferentes
organizaciones alrededor del mundo. El gran éxito de Amazon radica en la flexibilidad y en la
variedad de productos, tecnologías y precios que disponen dentro de su catálogo. En cuanto
a las tecnologías de bases de datos, AWS trabaja tanto con sistemas relacionales y como no
relacionales, destacándose así productos como Amazon RDS, Amazon SimpleDB y Amazon
DynamoDB, lo que garantiza una transición segura y confiable entre un sistema y otro a la
hora de realizar cambios en la forma de almacenar los datos, sin tener que preocuparse por
tener que cambiar de proveedor o de compartir la información a terceros.

Es de gran importancia asesorarse y valorar cuidadosamente el impacto que la adopción de


modelos como la IaaS tendrá en la organización, así como establecer un acuerdo de nivel de
servicio detallado con el proveedor para gestionar adecuadamente el modelo y conseguir las
máximas ventajas sin incurrir en ningún tipo de riesgo para el negocio. De igual manera, es
necesario conocer la tecnología de los sistemas de bases de datos y las posibilidades
económicas que se tiene, para así poder escoger el mejor producto que ayude a la
productividad de la organización sin generar pérdidas económicas y de información.

16
Amazon Web Services DynamoDB

RECOMENDACIONES

Utilizar el servicio de migración de bases de datos de AWS para migrar datos de una
base de datos relacional a una tabla de Amazon DynamoDB.

17
Amazon Web Services DynamoDB

BIBLIOGRAFIA

- http://revistas.udistrital.edu.co/ojs/index.php/revcie/article/view/6500/9185

18
Amazon Web Services DynamoDB

WEBGRAFIA

- https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/HowItWorks.Cor
eComponents.html
- https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/Introdu
ction.html
- https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/HowItWorks.
CoreComponents.html
- https://read.acloud.guru/why-amazon-dynamodb-isnt-for-everyone-and-how-to-decide-
when-it-s-for-you-aefc52ea9476
- https://aws.amazon.com/es/dynamodb/
- https://aws.amazon.com/tw/dynamodb/
- https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/bp-general-
nosql-design.html
- https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/bp-general-
nosql-design.html#bp-general-nosql-design-vs-relational
- https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/dynamodb-
dg.pdf
- http://sitiobigdata.com/index.php/2018/01/19/que-es-amazon-dynamodb/
- https://es.slideshare.net/JavierdelaRosaFernan/dynamodb-anlisis-del-paper
- https://aws.amazon.com/es/dynamodb/faqs/

19

Das könnte Ihnen auch gefallen