Curso de Ingeniería de Datos - Semana 2
Descripción
En esta segunda semana del curso, profundizaremos en el proceso de ingesta de datos, que es fundamental para el trabajo de un ingeniero de datos. A lo largo de la semana, analizaremos diferentes patrones de ingesta, tanto por lotes como en streaming, y realizaremos prácticas para aplicar lo aprendido.
Contenido de la Semana 1
- Conexión e interacción con sistemas fuente: Se revisó cómo conectarse a diferentes sistemas fuente, que no son controlados directamente por los ingenieros de datos.
- Ingesta de datos: Se introdujo el concepto de ingesta de datos, que implica obtener datos sin procesar de diversas fuentes.
Fuentes de Datos
Las fuentes de datos pueden incluir:
- Bases de datos
- APIs
- Conjuntos de archivos
- Sistemas de streaming
Actividades Realizadas
Durante la semana 1, se llevaron a cabo las siguientes actividades:
1. Ingesta de datos desde una base de datos MySQL de Amazon RDS a un almacenamiento S3 mediante un trabajo de ETL de AWS Glue.
2. Ingesta de datos desde AWS Kinesis Data Streams utilizando Kinesis Firehose para enviar eventos a un bucket de S3.
3. Solución de problemas comunes de conexión a bases de datos.
Objetivos de la Semana 2
Esta semana se enfocará en:
- Patrones de ingesta: Análisis detallado de patrones de ingesta por lotes y streaming.
- Requisitos de ingesta: Conversaciones con un analista de marketing y un ingeniero de software para identificar requisitos específicos para la ingesta de datos.
Temas a Tratar
- Ingesta por lotes desde una API REST: Identificación de requisitos y características.
- Ingesta de streaming: Revisión de características de la carga útil de datos, tasas de eventos y configuración de la canalización de transmisión.
Laboratorios
Los laboratorios de esta semana incluirán:
- Ingesta por lotes desde una API REST.
- Ingesta de streaming desde un registro de servidor web.
Conclusión
Acompáñame en el siguiente video para comenzar con las actividades de esta semana y profundizar en la ingesta de datos.
Resumen del Curso: Procesamiento de Datos por Lotes y por Flujo
Descripción
En este curso, se exploran las diferencias entre el procesamiento de datos por lotes y por flujo, conceptos fundamentales para los ingenieros de datos. Se discuten las características de la ingesta de datos, las herramientas disponibles y las mejores prácticas para trabajar con diferentes fuentes de datos.
Conceptos Clave
Procesamiento por Lotes vs. Procesamiento por Flujo
- Procesamiento por Lotes: Ingesta de datos en unidades definidas, como un conjunto de registros o un intervalo de tiempo.
- Procesamiento por Flujo: Ingesta de datos en tiempo real, uno a uno, sin límites predefinidos.
Ingesta de Datos
- Los datos se generan como un flujo continuo de eventos.
- La ingesta puede ser:
- Por Lotes: Agrupando datos en intervalos de tiempo, tamaño o número de registros.
- Por Flujo: Procesando datos a medida que se generan.
Ejemplos de Límites en la Ingesta
- Por Tamaño: Ingesta de datos en fragmentos de 10 GB.
- Por Número de Registros: Ingesta de cada 1000 eventos.
- Por Tiempo: Ingesta diaria o semanal de datos.
Herramientas y Tecnologías
- Conectores: JDBC, ODBC para bases de datos.
- Ingesta Sin Servidor: AWS Glue ETL.
- APIs: Conexiones basadas en protocolos específicos, con limitaciones en la cantidad de datos y frecuencia de llamadas.
Consideraciones para la Ingesta
- No existe un estándar universal para el intercambio de datos a través de APIs.
- Se recomienda utilizar bibliotecas de clientes de API y plataformas de conexión de datos gestionadas para simplificar el proceso.
Tabla de Comparación: Procesamiento por Lotes vs. Procesamiento por Flujo
| Característica |
Procesamiento por Lotes |
Procesamiento por Flujo |
| Frecuencia de Ingesta |
Periódica (diaria, semanal) |
Continua (en tiempo real) |
| Tamaño de Datos |
Grandes volúmenes en una sola unidad |
Datos individuales a medida que se generan |
| Herramientas |
Herramientas de microprocesamiento |
Sistemas de transmisión y colas de mensajes |
| Ejemplos de Uso |
Informes semanales, análisis de grandes datos |
Monitoreo en tiempo real, análisis de eventos |
Recomendaciones
- Para la ingesta de datos de APIs, utilizar soluciones existentes siempre que sea posible.
- Para archivos, considerar protocolos de transferencia como SFTP o SCP.
- Para datos de IoT, configurar colas de mensajes para la ingesta.
Casos Prácticos
- Ingesta por lotes desde una API.
- Ingesta en streaming desde Kinesis.
Conclusión
La elección entre procesamiento por lotes y por flujo depende del caso de uso y del sistema de origen. Es fundamental entender las herramientas y técnicas disponibles para optimizar la ingesta de datos en diferentes contextos.
Para más información, se recomienda revisar el artículo de lectura que sigue a este video y participar en la próxima lección sobre la ingesta de datos externos desde una API.
Resumen del Curso de Especialización en Ingeniería de Datos
Descripción
En este primer curso de la especialización, se recopilan requisitos a partir de conversaciones con diversas partes interesadas en una empresa de comercio electrónico ficticia. Se discuten las necesidades de datos para un sistema de recomendación y se exploran factores externos que pueden influir en los hábitos de compra de los clientes.
Participantes Clave
| Rol |
Nombre |
| Científico de Datos |
No mencionado |
| Director de Datos |
No mencionado |
| Gerente de Marketing |
No mencionado |
| Ingeniero de Software |
Joe |
| Analista de Marketing |
Colleen |
Objetivos del Proyecto
- Expansión a Nuevos Mercados: La empresa busca crecer en diferentes regiones.
- Aumento de la Retención de Clientes: Mejorar la fidelización de los clientes existentes.
- Desarrollo de un Sistema de Recomendación: Configuración de una canalización de datos para recomendaciones personalizadas.
Conversación Clave
Durante una conversación entre Joe (ingeniero de datos) y Colleen (analista de marketing), se discuten las siguientes ideas:
- Factores Externos: Se considera que las emociones de los clientes (felicidad, tristeza, etc.) pueden influir en sus decisiones de compra.
- Música y Compras: Se propone investigar la música que escuchan los clientes en diferentes regiones y su relación con las ventas de productos.
- Uso de API de Spotify: Colleen menciona la posibilidad de utilizar la API pública de Spotify para obtener datos sobre tendencias musicales.
Consideraciones sobre la Ingesta de Datos
- Ingesta de Datos de Terceros: Es fundamental para el proyecto, ya que se necesita información externa para analizar junto con los datos de ventas.
- Proceso de Ingesta: Se debe considerar un proceso de ingesta por lotes, dependiendo de los objetivos del análisis.
- Almacenamiento y Entrega: La forma en que se almacenarán y entregarán los datos dependerá de las necesidades del analista.
Próximos Pasos
- En el siguiente video, se explorarán las ventajas y desventajas de los paradigmas de procesamiento de datos:
- ETL (Extracción, Transformación, Carga)
- ELT (Extracción, Carga, Transformación)
- También se discutirá la conexión y la ingesta de datos de una API REST.
Conclusión
Este curso establece las bases para entender la importancia de la ingesta de datos y cómo los diferentes factores pueden influir en el comportamiento del consumidor. La colaboración entre ingenieros de datos y analistas de marketing es crucial para el éxito del proyecto.
Resumen del Curso sobre Ingesta de Datos: ETL vs ELT
Descripción
En este curso, se discuten los métodos de ingesta de datos, específicamente los patrones ETL (Extract, Transform, Load) y ELT (Extract, Load, Transform). Se analiza su aplicabilidad en el contexto de un proyecto de análisis de ventas de productos, donde se incorporan datos externos a través de una API de terceros.
Contenido
Objetivos del Proyecto
- Incorporar datos externos en el análisis de ventas.
- Enfocarse en tendencias históricas y potencialmente en datos actuales.
- Extraer datos de una API de terceros con limitaciones en la frecuencia y cantidad de datos.
Métodos de Ingesta de Datos
| Método |
Descripción |
Ventajas |
Desventajas |
| ETL |
Extrae datos, los transforma y luego los carga en un destino. |
- Control sobre los datos transformados. - Eficiencia en almacenamiento. |
- Requiere planificación detallada. - Puede ser lento en comparación con ELT. |
| ELT |
Extrae datos y los carga sin transformación, permitiendo transformaciones posteriores. |
- Implementación más rápida. - Flexibilidad en el análisis de datos. |
- Riesgo de crear un "pantano de datos" si no se gestiona adecuadamente. |
Comparación de ETL y ELT
- ETL: Popular desde los años 80 y 90, se utilizaba debido a las limitaciones de almacenamiento y computación. Se enfoca en transformar los datos antes de cargarlos.
- ELT: Surge con el almacenamiento en la nube, permitiendo almacenar grandes volúmenes de datos sin procesar y realizar transformaciones posteriormente. Esto ofrece flexibilidad, pero puede llevar a la acumulación desorganizada de datos.
Consideraciones para la Ingesta de Datos
- La ingesta de datos de una API generalmente resulta en datos semiestructurados (ej. JSON) o no estructurados (ej. textos, imágenes).
- Para el análisis exploratorio, el enfoque ELT puede ser más adecuado, ya que permite una mayor flexibilidad en las transformaciones.
Riesgos de la Ingesta de Datos
- Pantano de Datos: Acumulación desorganizada de datos que se vuelve difícil de gestionar y utilizar. Es crucial establecer objetivos claros y gestionar los datos adecuadamente para evitar esta situación.
Conclusión
Ambos métodos, ETL y ELT, son válidos para la ingesta de datos, pero la elección depende de los objetivos del proyecto y la naturaleza de los datos. En el caso del análisis de marketing, el enfoque ELT parece ser el más adecuado debido a la flexibilidad que ofrece en las transformaciones de datos.
Próximos Pasos
En el siguiente video, se explorará cómo trabajar con una API como fuente de datos, lo que será fundamental para la ingesta de datos en el proyecto de análisis de ventas.
Resumen del Mandato de API en Amazon
Descripción
En este documento se resumen los conceptos clave del mandato de API emitido por Jeff Bezos en 2002, que transformó la forma en que los equipos de Amazon y otras organizaciones intercambian datos y servicios. Se explican las características de las API, su importancia en el desarrollo de software y su uso en la actualidad.
Mandato de API
- Origen: Correo electrónico de Jeff Bezos a todos los empleados de Amazon en 2002.
- Objetivo: Establecer un estándar para la comunicación entre equipos mediante interfaces de servicio (API).
- Problema a resolver: La falta de un método uniforme para el intercambio de datos y servicios, que generaba ineficiencias.
Características de las API
- Interfaz de servicio: Permite a los equipos proporcionar datos y funciones a otros equipos de manera predecible.
- Desarrollo desde cero: Todas las API debían ser creadas desde cero para ser públicas para desarrolladores externos.
- Fundamento de AWS: Sentó las bases para el desarrollo de Amazon Web Services y la forma en que las empresas comparten datos y servicios.
Definición de API
Una API (Interfaz de Programación de Aplicaciones) es un conjunto de reglas y especificaciones que permite la comunicación y el intercambio de datos mediante programación.
Ejemplos de uso de API
- Aplicaciones de redes sociales: Obtienen y muestran datos de servidores web.
- Comercio electrónico: Facilitan transacciones entre sitios web y sistemas de pago.
- Ingeniería de datos: Conexión y extracción de datos de diversas fuentes, como servicios web y plataformas en la nube.
Tipos de API
- API REST:
- Basadas en el Protocolo de Transferencia de Hipertexto (HTTP).
- Funcionan mediante solicitudes y respuestas, similar a la navegación web.
Interacción con API REST
- Al hacer clic en un enlace, se envía una solicitud HTTP a un servidor, que responde con el recurso solicitado.
- Con una API REST, se envía una solicitud HTTP para un recurso específico y la API responde según el contenido de la solicitud.
Escenario Común
- Analistas de marketing: Desean analizar datos de plataformas de terceros (ej. Spotify) a través de una API.
- Ingenieros de datos: Acceden a sistemas de origen para extraer datos, ya sean internos o externos.
Conclusión
Familiarizarse con el uso de API es esencial para los ingenieros de datos. La mejor manera de aprender es a través de la práctica, lo que se abordará en el próximo laboratorio.
Tabla Resumen
| Concepto |
Descripción |
| Mandato de API |
Establecer un estándar para la comunicación entre equipos. |
| API |
Conjunto de reglas para la comunicación y el intercambio de datos. |
| API REST |
Tipo de API que utiliza HTTP para la comunicación. |
| Ejemplos de uso |
Redes sociales, comercio electrónico, ingeniería de datos. |
| Escenario común |
Acceso a datos de plataformas de terceros mediante API. |
Lista de Recursos
Resumen del Laboratorio de Interacción con la API de Spotify
Descripción
En este laboratorio, aprenderás a interactuar con la API de Spotify para extraer datos, comprender la paginación y enviar solicitudes de API que requieren autorización. Se requiere una cuenta de Spotify para obtener las credenciales necesarias para acceder a la API.
Contenido del Laboratorio
1. Introducción a las APIs
- API (Interfaz de Programación de Aplicaciones): Conjunto de reglas y protocolos para interactuar con servicios web.
- API RESTful: Estilo arquitectónico que utiliza solicitudes HTTP para acceder y manipular recursos.
2. Tipos de Solicitudes HTTP
| Método |
Descripción |
| GET |
Recupera un recurso. |
| POST |
Crea un nuevo recurso. |
| PUT |
Modifica o reemplaza un recurso. |
| DELETE |
Elimina un recurso. |
3. Autenticación y Tokens de Acceso
- Necesitarás un ID de cliente y un secreto de cliente para obtener un token de acceso.
- El token de acceso es válido por una hora y se utiliza para autenticar las solicitudes a la API.
4. Estructura de Respuestas
- Las respuestas de la API se devuelven en formato JSON.
- Ejemplo de códigos de estado:
400: Solicitud incorrecta.
404: Recurso no encontrado.
5. Creación de una Cuenta de Spotify
- Regístrate en Spotify.
- Crea una aplicación en el panel de control de desarrolladores.
- Obtén el ID de cliente y el secreto de cliente.
6. Interacción con la API
- Utiliza el paquete
requests en Python para realizar solicitudes a la API.
- Ejemplo de solicitud GET:
```python
import requests
url = "https://api.spotify.com/v1/albums/{id}"
headers = {"Authorization": "Bearer {accessToken}"}
response = requests.get(url, headers=headers)
```
7. Paginación
- La API devuelve resultados en fragmentos. Utiliza los parámetros
offset y limit para controlar la paginación.
- Ejemplo de paginación:
- Comienza con
offset=0 y limit=20.
- Para obtener más resultados, incrementa el
offset.
8. Funciones del Laboratorio
- Completar funciones para realizar solicitudes paginadas a la API.
- Extraer información de nuevos lanzamientos de álbumes y sus pistas.
9. Recomendaciones
Conclusión
Al finalizar el laboratorio, tendrás experiencia práctica en la interacción con APIs, específicamente con la API de Spotify, y comprenderás conceptos clave como la autenticación, la paginación y el manejo de respuestas en formato JSON.
Análisis de la Ingesta de Streaming en Sistemas de Recomendación
Descripción
En este documento se resumen los conceptos clave discutidos en una conversación entre un ingeniero de software y un estudiante sobre la ingesta de datos en tiempo real para un sistema de recomendación de productos. Se abordan aspectos técnicos sobre la configuración de la ingesta de datos, el formato de los mensajes y la capacidad de procesamiento.
Contenido
1. Introducción a la Ingesta de Streaming
- La ingesta de streaming permite recibir datos de actividad de los usuarios en tiempo real desde un sitio web.
- Se registran eventos en el servidor web, incluyendo:
- Métricas de rendimiento del sistema.
- Errores y anomalías.
- Actividad de los usuarios (clics en botones, navegación, compras).
2. Separación de Datos
- Se propone separar los registros de eventos relacionados con la actividad de los usuarios de las métricas internas del sistema.
- Los datos de actividad se pueden enviar a un tema de Kafka o a una transmisión de Kinesis.
3. Formato y Velocidad de los Mensajes
- Formato de Mensajes: Los mensajes se graban en formato JSON, incluyendo:
- Identificador de sesión.
-
Información del cliente (ubicación, actividad de navegación).
-
Tamaño de Mensajes: Generalmente, los mensajes rondan unos cientos de bytes.
-
Velocidad de Mensajes:
- Un usuario puede generar varios eventos por minuto.
- En horas punta, se pueden tener hasta 10,000 usuarios, lo que podría traducirse en aproximadamente 1,000 eventos por segundo.
4. Estimación de Capacidad
- Se estima que la ingesta de datos podría ser de menos de 1 MB por segundo, lo cual es manejable para Kinesis, que puede gestionar cientos de MB por segundo.
5. Retención de Mensajes
- Se discute la configuración del tiempo de retención de mensajes en la transmisión.
- Se sugiere mantener los mensajes durante un día para permitir la posibilidad de reproducir la transmisión en caso de errores.
6. Consideraciones Finales
- Es importante considerar posibles interrupciones en la canalización de datos, como cambios de esquema.
- La conversación concluye con la decisión de proceder a construir el sistema de ingesta de datos.
Tabla Resumen de Parámetros
| Parámetro |
Valor Estimado |
| Tamaño de Mensaje |
Cientos de bytes |
| Eventos por Segundo |
Hasta 1,000 |
| Ingesta Total |
Menos de 1 MB/s |
| Retención de Mensajes |
1 día |
| Tamaño Total en un Día |
Hasta 100 GB (en caso de alta carga) |
Conclusión
Este análisis proporciona una visión general de cómo se puede configurar la ingesta de streaming para un sistema de recomendación de productos, destacando la importancia de la separación de datos, el formato de los mensajes y la capacidad de procesamiento. En el siguiente video, se explorarán más detalles sobre la ingesta de streaming.
Resumen del Curso sobre Sistemas de Transmisión
Descripción
En la primera semana del curso, se abordaron los sistemas de transmisión, centrándose en las colas de mensajes y las plataformas de transmisión de eventos. Se discutió cómo estos sistemas funcionan como fuentes de datos y se introdujeron conceptos clave relacionados con la ingesta de datos en tiempo real.
Contenido
1. Sistemas de Transmisión
- Colas de Mensajes:
- Funcionan como un búfer para entregar mensajes de un productor a un consumidor de forma asincrónica.
-
Operan bajo el principio FIFO (Primero en entrar, primero en salir).
-
Plataformas de Transmisión de Eventos:
- Almacenan mensajes de forma persistente en un registro que solo se puede adjuntar.
- Permiten la reproducción y re-procesamiento de mensajes.
2. Ejemplos de Plataformas
- Amazon Kinesis: Utilizado en el laboratorio del curso.
- Apache Kafka: Se usó como ejemplo para explicar conceptos y establecer paralelismos con Kinesis.
3. Funcionamiento de Apache Kafka
- Productores de Eventos: Envían mensajes a un clúster de Kafka.
- Consumidores de Eventos: Extraen mensajes del clúster.
Temas y Particiones
- Temas: Categorías que contienen colecciones de eventos relacionados.
- Particiones: Registros que contienen secuencias ordenadas de mensajes. Permiten un flujo de mensajes más eficiente.
4. Comparación con Kinesis
- En Kinesis, los conceptos son similares, pero se utilizan "transmisiones" en lugar de "temas" y "fragmentos" en lugar de "particiones".
5. Grupos de Consumidores
- Los consumidores se agrupan y pueden suscribirse a uno o más temas.
- Cada partición se asigna a un único consumidor del grupo, permitiendo una distribución eficiente del trabajo.
6. Persistencia de Mensajes
- Los mensajes se conservan durante un período configurable, permitiendo a los consumidores reproducir y re-procesar mensajes según sea necesario.
7. Ejemplo Práctico
- Las acciones de los usuarios en un sitio web se registran como mensajes y se envían a un flujo de datos de Kinesis o a un tema de Kafka.
- Se puede monitorear el registro del servidor web como un productor de eventos.
8. Captura de Datos de Cambio (CDC)
- Permite transmitir cambios de datos a la canalización para mantener la sincronización con la base de datos de origen.
Conclusión
En la próxima sesión, se explorarán los detalles de las transmisiones de datos de Amazon Kinesis, que se utilizarán como herramienta de ingesta de transmisiones en el laboratorio. Posteriormente, se realizará un recorrido por el último laboratorio antes de que los participantes creen su propia solución de ingesta de streaming.
Tabla Resumen de Conceptos
| Concepto |
Descripción |
| Cola de Mensajes |
Búfer para entrega asincrónica de mensajes (FIFO). |
| Plataforma de Eventos |
Almacena mensajes de forma persistente, permite reproducción. |
| Productores |
Envían mensajes a un clúster (Kafka/Kinesis). |
| Consumidores |
Extraen mensajes del clúster. |
| Temas |
Categorías de eventos en Kafka. |
| Particiones |
Registros ordenados de mensajes en Kafka. |
| Grupos de Consumidores |
Agrupación de consumidores para consumir mensajes de particiones. |
| Persistencia de Mensajes |
Conservación de mensajes por un tiempo configurable. |
Este resumen proporciona una visión general de los conceptos clave discutidos en la primera semana del curso sobre sistemas de transmisión.
Introducción a Amazon Kinesis Data Streams
En este documento, se presenta un resumen sobre el funcionamiento de Amazon Kinesis Data Streams, un servicio de transmisión de datos en tiempo real que permite la ingesta y procesamiento de grandes volúmenes de datos. Se comparará con Apache Kafka y se explicarán conceptos clave, así como las capacidades y modos de operación de Kinesis.
Conceptos Clave
- Productores: Son las aplicaciones que envían datos a la transmisión.
- Consumidores: Son las aplicaciones que leen los datos de la transmisión.
- Transmisión: Es el flujo de datos donde se almacenan los registros.
Estructura de Kinesis Data Streams
Un flujo de Kinesis se compone de múltiples fragmentos (shards), que son las unidades de capacidad del flujo. Cada fragmento tiene las siguientes características:
- Operaciones de lectura: Cada fragmento puede soportar hasta 5 operaciones de lectura por segundo, con una velocidad máxima de lectura de 2 MB/s.
- Operaciones de escritura: Un productor puede escribir hasta 1000 registros por segundo, con una velocidad máxima de escritura de 1 MB/s.
Tabla de Capacidades de Fragmentos
| Tipo de operación |
Límite por fragmento |
| Lecturas por segundo |
5 operaciones |
| Velocidad de lectura |
2 MB/s |
| Registros por segundo |
1000 registros |
| Velocidad de escritura |
1 MB/s |
Modos de Operación
Kinesis Data Streams ofrece dos modos de operación:
- Modo Bajo Demanda:
- Escalado automático de fragmentos.
- Se cobra solo por el uso.
-
Ideal para aplicaciones con tráfico variable.
-
Modo Aprovisionado:
- Se especifica la cantidad de fragmentos necesarios.
- Requiere gestión manual del escalado.
- Útil para aplicaciones con tráfico predecible.
Clave de Partición y Números de Secuencia
Cada registro enviado a la transmisión incluye:
- Clave de partición: Determina en qué fragmento se coloca el registro.
- Número de secuencia: Asignado por Kinesis para mantener el orden de los registros.
Ejemplo de Clave de Partición
En un flujo de transacciones de comercio electrónico, se podría usar el ID de cliente como clave de partición, lo que agruparía todas las transacciones de un cliente en el mismo fragmento.
Consumo de Datos
Los consumidores pueden leer datos de los fragmentos. Existen dos modos de lectura:
- Salida de Ventilador Compartida: Los consumidores compiten por la capacidad de lectura.
- Ventilación Mejorada: Cada consumidor puede leer a la capacidad total del fragmento, evitando problemas de capacidad.
Integración con Otros Servicios
Kinesis Data Streams permite la integración con otros servicios de AWS, como:
- AWS Lambda
- Amazon Managed Service for Apache Flink
- AWS Glue
Esto permite crear flujos de trabajo de procesamiento de datos en tiempo real más complejos.
Conclusión
Amazon Kinesis Data Streams es una herramienta poderosa para la ingesta y procesamiento de datos en tiempo real. Su flexibilidad en los modos de operación y la capacidad de escalar automáticamente lo hacen ideal para aplicaciones con diferentes patrones de tráfico. En el próximo laboratorio, se aplicarán estos conceptos en la práctica.
¡Buena suerte y diviértete en tu aprendizaje sobre Kinesis!
Resumen del Laboratorio de Streaming con Kinesis Data Streams
Descripción
En este laboratorio, se explorará el uso de Kinesis Data Streams y Kinesis Data Firehose para implementar una canalización de streaming que procesa eventos de usuarios en línea. Se trabajará en dos partes: la primera parte se centrará en la interacción básica entre un productor y un consumidor, y la segunda parte se enfocará en la implementación de una canalización de ETL (Extracción, Transformación y Carga) para procesar datos de clientes.
Contenido del Laboratorio
Parte 1: Interacción con Kinesis Data Streams
- Creación de un Kinesis Data Stream:
-
Se creará un flujo de datos que actuará como un enrutador entre un productor y un consumidor.
-
Scripts de Python:
- Productor:
- Envía un registro de datos en formato JSON que incluye detalles de la sesión del usuario (ID de sesión, número de cliente, ciudad, país, historial de navegación).
- Utiliza Boto3 para interactuar con Kinesis.
- Se ejecuta desde la terminal con dos argumentos: nombre del flujo de datos y cadena JSON.
-
Consumidor:
- Lee registros del flujo de datos y los imprime en la terminal.
- También utiliza Boto3 y recorre continuamente los fragmentos del flujo de datos.
-
Ejecución de Scripts:
- Primero, se ejecuta el script del consumidor en un terminal.
- Luego, en otro terminal, se ejecuta el script del productor para enviar un registro al flujo de datos.
Parte 2: Canalización de ETL de Streaming
- Configuración de Flujos de Datos:
-
Se crearán dos flujos de datos de Kinesis para separar los registros de clientes de EE. UU. y clientes internacionales.
-
Transformación de Registros:
- Se implementará un script de consumidor que transformará los registros antes de enviarlos a los flujos de datos correspondientes.
-
Se añadirán tres campos a cada registro:
- Cantidad total de productos: Suma de las cantidades en el historial de navegación.
- Total en el carrito de la compra: Suma de las cantidades de productos en el carrito.
- Total de productos diferentes: Número de productos en el historial de navegación.
-
Ejecución del Script de Transformación:
- El script se ejecutará especificando el flujo de datos de origen y los flujos de datos de destino.
- Los registros transformados se enviarán a los flujos de Kinesis correspondientes, y Kinesis Firehose entregará automáticamente los datos a los buckets de S3.
Resumen de Tareas
| Tarea |
Descripción |
| Crear Kinesis Data Stream |
Configurar un flujo de datos para la transmisión. |
| Ejecutar script de consumidor |
Leer registros del flujo de datos. |
| Ejecutar script de productor |
Enviar registros al flujo de datos. |
| Configurar flujos de datos de ETL |
Separar registros de clientes de EE. UU. e internacionales. |
| Implementar transformación |
Añadir campos adicionales a los registros. |
| Ejecutar script de transformación |
Procesar y enviar registros a flujos de datos correspondientes. |
Conclusión
Este laboratorio proporciona una comprensión práctica de cómo utilizar Kinesis Data Streams y Kinesis Data Firehose para crear una canalización de streaming efectiva. Al finalizar, se espera que los participantes tengan una mejor comprensión de la transmisión de eventos y el procesamiento de datos en tiempo real.
Resumen de la Fase de Ingestión en la Ingeniería de Datos
Descripción
Esta semana se ha abordado la fase de ingesta del ciclo de vida de la ingeniería de datos, centrándose en los patrones de ingesta por lotes y transmisión. Se discutieron herramientas y se implementaron soluciones prácticas para ambos tipos de ingesta.
Contenido
Conceptos Clave
Métodos de Ingestión
| Método |
Descripción |
| ETL (Extract, Transform, Load) |
Extrae datos, los transforma y luego los carga en el sistema de destino. |
| ELT (Extract, Load, Transform) |
Extrae datos y los carga primero, luego se realizan las transformaciones. |
Laboratorios Prácticos
- Laboratorio de Ingesta de Datos de API:
- Se extrajeron datos de una API pública.
-
Se practicaron conceptos como:
- Conexión
- Autenticación
- Paginación
-
Laboratorio de Ingesta de Streaming:
- Se configuró la ingesta de datos desde una transmisión de Kinesis.
- Se utilizó Python para:
- Configurar un consumidor.
- Realizar transformaciones instantáneas.
- Enviar mensajes a dos transmisiones distintas para un sistema de recomendación.
Reflexiones Finales
A través de los laboratorios y conceptos discutidos, se ha ampliado el conocimiento sobre la ingesta de datos. La próxima semana se explorarán las operaciones de datos, incluyendo:
- Calidad de los datos
- Automatización
- Supervisión
- Infraestructura como código
Conclusión
La ingesta de datos es una fase crítica en la ingeniería de datos, y comprender sus diferentes enfoques y herramientas es esencial para construir sistemas eficientes y efectivos. ¡Nos vemos la próxima semana para profundizar en las operaciones de datos!
Resumen de la Fase de Ingestión en la Ingeniería de Datos
Descripción
Esta semana se ha abordado la fase de ingesta del ciclo de vida de la ingeniería de datos, centrándose en los patrones de ingesta por lotes y transmisión. Se discutieron herramientas y se implementaron soluciones prácticas para ambos tipos de ingesta.
Contenido
Conceptos Clave
Métodos de Ingestión
| Método |
Descripción |
| ETL (Extract, Transform, Load) |
Extrae datos, los transforma y luego los carga en el sistema de destino. |
| ELT (Extract, Load, Transform) |
Extrae datos y los carga primero, luego se realizan las transformaciones. |
Laboratorios Prácticos
- Laboratorio de Ingesta de Datos de API:
- Se extrajeron datos de una API pública.
-
Se practicaron conceptos como:
- Conexión
- Autenticación
- Paginación
-
Laboratorio de Ingesta de Streaming:
- Se configuró la ingesta de datos desde una transmisión de Kinesis.
- Se utilizó Python para:
- Configurar un consumidor.
- Realizar transformaciones instantáneas.
- Enviar mensajes a dos transmisiones distintas para un sistema de recomendación.
Reflexiones Finales
A través de los laboratorios y conceptos discutidos, se ha ampliado el conocimiento sobre la ingesta de datos. La próxima semana se explorarán las operaciones de datos, incluyendo:
- Calidad de los datos
- Automatización
- Supervisión
- Infraestructura como código
Conclusión
La ingesta de datos es una fase crítica en la ingeniería de datos, y comprender sus diferentes enfoques y herramientas es esencial para construir sistemas eficientes y efectivos. ¡Nos vemos la próxima semana para profundizar en las operaciones de datos!