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

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

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

Ingesta de Datos

Ejemplos de Límites en la Ingesta

Herramientas y Tecnologías

Consideraciones para la Ingesta

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

Casos Prácticos

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

Conversación Clave

Durante una conversación entre Joe (ingeniero de datos) y Colleen (analista de marketing), se discuten las siguientes ideas:

  1. Factores Externos: Se considera que las emociones de los clientes (felicidad, tristeza, etc.) pueden influir en sus decisiones de compra.
  2. 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.
  3. 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

Próximos Pasos

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

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

Consideraciones para la Ingesta de Datos

Riesgos de la Ingesta de Datos

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

Características de las API

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

Tipos de API

Interacción con API REST

Escenario Común

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

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

4. Estructura de Respuestas

5. Creación de una Cuenta de Spotify

  1. Regístrate en Spotify.
  2. Crea una aplicación en el panel de control de desarrolladores.
  3. Obtén el ID de cliente y el secreto de cliente.

6. Interacción con la API

url = "https://api.spotify.com/v1/albums/{id}" headers = {"Authorization": "Bearer {accessToken}"} response = requests.get(url, headers=headers) ```

7. Paginación

8. Funciones del Laboratorio

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

2. Separación de Datos

3. Formato y Velocidad de los Mensajes

4. Estimación de Capacidad

5. Retención de Mensajes

6. Consideraciones Finales

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

2. Ejemplos de Plataformas

3. Funcionamiento de Apache Kafka

Temas y Particiones

4. Comparación con Kinesis

5. Grupos de Consumidores

6. Persistencia de Mensajes

7. Ejemplo Práctico

8. Captura de Datos de Cambio (CDC)

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

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:

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:

  1. Modo Bajo Demanda:
  2. Escalado automático de fragmentos.
  3. Se cobra solo por el uso.
  4. Ideal para aplicaciones con tráfico variable.

  5. Modo Aprovisionado:

  6. Se especifica la cantidad de fragmentos necesarios.
  7. Requiere gestión manual del escalado.
  8. Útil para aplicaciones con tráfico predecible.

Clave de Partición y Números de Secuencia

Cada registro enviado a la transmisión incluye:

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:

Integración con Otros Servicios

Kinesis Data Streams permite la integración con otros servicios de AWS, como:

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

  1. Creación de un Kinesis Data Stream:
  2. Se creará un flujo de datos que actuará como un enrutador entre un productor y un consumidor.

  3. Scripts de Python:

  4. Productor:
  5. Consumidor:

  6. Ejecución de Scripts:

  7. Primero, se ejecuta el script del consumidor en un terminal.
  8. 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

  1. Configuración de Flujos de Datos:
  2. Se crearán dos flujos de datos de Kinesis para separar los registros de clientes de EE. UU. y clientes internacionales.

  3. Transformación de Registros:

  4. Se implementará un script de consumidor que transformará los registros antes de enviarlos a los flujos de datos correspondientes.
  5. Se añadirán tres campos a cada registro:

  6. Ejecución del Script de Transformación:

  7. El script se ejecutará especificando el flujo de datos de origen y los flujos de datos de destino.
  8. 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

  1. Laboratorio de Ingesta de Datos de API:
  2. Se extrajeron datos de una API pública.
  3. Se practicaron conceptos como:

  4. Laboratorio de Ingesta de Streaming:

  5. Se configuró la ingesta de datos desde una transmisión de Kinesis.
  6. Se utilizó Python para:

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:

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

  1. Laboratorio de Ingesta de Datos de API:
  2. Se extrajeron datos de una API pública.
  3. Se practicaron conceptos como:

  4. Laboratorio de Ingesta de Streaming:

  5. Se configuró la ingesta de datos desde una transmisión de Kinesis.
  6. Se utilizó Python para:

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:

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!