Almacenamiento: Módulo 3

Kinesis Data Stream - SQS - DMS

Bootcamp AI
5 min readJun 17, 2020

Kinesis Data Stream

Es un servidor de streaming de datos en tiempo real con un alto nivel de escalabilidad y durabilidad. El proceso que realiza consiste en ingerir una gran cantidad de datos, los almacena de forma duradera y los pone a disposición para el consumo.

Se usa para logs de aplicaciones, métricas del servidor, Iot, soluciones de Big Data entre otros. La Data se replica en 3 zonas de disponibilidad. Los steams son divididos en shards los cuales poseen un periodo de retención de horas hasta 7 días, al tener esta estructura múltiples aplicaciones pueden consumir los datos

Posee 500 Shard aprovisionados, en caso de necesitar más se necesita realizar una solicitud de AWS, los productores poseen 1MB/s por shard aprovisionado mientras que los consumidores existen dos tipos:

  • Consumidores compartidos: posee pocos consumidores con una latencia de 200ms y un costo bajo
  • Consumidores mejorados: posee hasta 20 consumidores con una latencia de 70ms y un costo alto

Laboratorio

  1. Ingestando datos de un Open Data a Kinesis Data Streams mediante el SDK de AWS
  2. Entrar a la consola de AWS.
  3. Ir al servicio de Kinesis Data Streams, clic en Create secuencia de datos
  4. Crear el stream con el nombre de bicimad, y luego siguiente y otra vez siguiente.
  5. En el campo Number of fragmentos ingresamos 1 y clic en Crear secuencia de datos.
  6. Entramos a la EC2 que hemos creado
  7. Data Analytics en AWS
  8. Entramos a la EC2 que hemos creado

Ejecutar los siguientes comandos en el terminal del linux:

pip3 install pytz — user

pip3 install requests — user

pip3 install wget — user

pip3 install pandas –user

python3 write-kinesis-stream.py

9. Abrir otro terminal, y ejecutar siguiente comando en otra pestaña:

python3 read-kinesis-stream.py

10. Eliminar el Kinesis Data Streams bicimad para que AWS no nos cobre por el shard aprovisionado por hora.

SQS

Es un servicio de colas de mensajes el cual permite desacoplar y ajustar la escala de micro servicios, sistemas de distribución y aplicaciones sin servidor. Elimina los gastos asociados con la gestión y el funcionamiento del middleware orientados a mensajes.

SQS nos ofrece los siguientes beneficios:

  • Seguridad
  • Durabilidad
  • Disponibilidad
  • Escalabilidad
  • Fiabilidad

En SQS podemos encontrar dos tipos de cola:

  • Las colas estándar

Admiten un numero casi ilimitado de transacciones por segundo. Los mensajes se entregan al menos una vez, en ocasiones se pueden entregar varias copias. En ocasiones el mensaje se entrega en orden distinto al que se enviaron.

  • Las colas FIFO

Pueden admitir hasta 3000 mensajes por segundo. Los mensajes se envían y permanecen disponibles hasta que el cliente los procesa o los elimina, se conserva el estricto orden en que se envían y reciben los mensajes

Laboratorio

  1. Creando colas estándar y FIFO

2. Entrar a la instancia EC2 y ejecutar los siguientes comandos en linux

Instalación de NodeJS

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

. ~/.nvm/nvm.sh

nvm install node

npm install aws-sdk

3. Copiar todos estos archivos en la ruta /home/ec2-user

create-sqs.js

send-message-sqs.js

create-sqs-fifo.py

send-message-fifo.py

read-sqs-fifo.py

Creación de cola tipo estándar

4. Ejecutar el siguiente comando:

node create-sqs.js

node send-message-sqs.js

5. Ingresamos a la consola de AWS y nos vamos al servicio de SQS

6. Marcamos la cola sqs-registro y opción Acciones -> Ver Mensajes

7. clic en Comenzar el sondeo de mensajes

Creación de cola tipo FIFO

8. Ejecutemos el siguiente comando:

python3 create-sqs-fifo.py

9. Enviemos varios mensajes a la cola FIFO, simulación de compra de entradas

python3 send-message-fifo.py

10.Leamos lo que contiene la cola y eliminemos el mensaje

python3 read-sqs-fifo.py

DMS

Es un servicio en la nube que nos facilita la migración de bases de datos relacionales, almacenes de datos, bases de datos NoSQL y otros tipos de almacen de datos. Puede replicar los cambios en curso para mantener las fuentes sincronizadas. Se pueden cambiar los motores de las bases de daos para traducir su esquema de base de datos a la nueva plataforma.

DMS Schema Conversion Tool convierte el esquema de su base de datos de un motor a otro como los siguientes ejemplos:

  • Ejemplo de OLTP: (SQL Server u Oracle) a MySQL, PostgreSQL, Aurora
  • Ejemplo de OLAP: (Teradata u Oracle) a Amazon Redshift
  • Puede usar AWS SCT para crear puntos finales y tareas de AWS DMS

Migración de datos homogénea

Migración heterogénea

Autores:

  • Michelle Herrera
  • Cristian Moyano
  • Lui Moyano
  • Edwin Rodríguez

Revisa los siguientes post

Módulo 1: Data Analytics en AWS

Módulo 2: Ingesta de datos Kinesis Data Firehose

Módulo 4: Procesamiento — AWS IOT CORE

Conoce más: bootcampai.org/aws-big-data

--

--

No responses yet