Resumen del Curso: Introducción a la Ingeniería de Datos - Módulo 4

Descripción

En esta cuarta semana del curso, se integran los conceptos aprendidos en las semanas anteriores sobre la recopilación de requisitos, el ciclo de vida de la ingeniería de datos y la arquitectura de datos. Se abordará un escenario práctico que incluye la definición de requisitos funcionales y no funcionales, así como la selección de herramientas y tecnologías para la implementación de sistemas en la nube.

Contenido

1. Recopilación de Requisitos

2. Marco de Trabajo para Ingenieros de Datos

El proceso se puede dividir en los siguientes pasos:

  1. Identificación de objetivos comerciales y necesidades de los interesados.
  2. Definición de requisitos del sistema.
  3. Selección de herramientas y tecnologías.
  4. Construcción y despliegue del sistema.

3. Detalles de Cada Paso

4. Ciclo de Vida de la Ingeniería de Datos

5. Principios de Buena Arquitectura de Datos

6. Objetivos de la Semana

Conclusión

Al final de esta semana, los participantes estarán equipados para traducir requisitos en un diseño arquitectónico y construir un sistema en la nube, aplicando las mejores prácticas y conceptos discutidos a lo largo del curso.

Próximos Pasos


Introducción a la Ingeniería de Datos - Módulo 3: Requisitos

Descripción

En este módulo, se exploran los aspectos fundamentales del marco de pensamiento de un ingeniero de datos, centrándose en la recopilación de requisitos y la jerarquía de necesidades que deben ser consideradas para el éxito de un proyecto de ingeniería de datos.

Jerarquía de Necesidades

La jerarquía de necesidades en el contexto de la ingeniería de datos se puede desglosar de la siguiente manera:

  1. Objetivos y Metas del Negocio
  2. Definen el éxito para la empresa.
  3. Ejemplos: crecimiento de ingresos, aumento de cuota de mercado, expansión de la base de usuarios.

  4. Necesidades de los Stakeholders

  5. Los stakeholders son los empleados que contribuyen a alcanzar los objetivos del negocio.
  6. Necesitan recursos, herramientas y gestión adecuada.
  7. Requieren sistemas de datos robustos.

  8. Requisitos del Sistema

  9. Se refiere a los requisitos que los sistemas de datos deben cumplir para satisfacer las necesidades de los stakeholders.
  10. Se dividen en:

Importancia de la Recopilación de Requisitos

Consejos para la Interacción con Líderes Empresariales

Próximos Pasos

En el siguiente video, se presentará a Matt Housley, un experto en la interacción con ejecutivos de C-suite, quien compartirá consejos sobre cómo comenzar en la ingeniería de datos y cómo involucrarse con líderes empresariales para resolver problemas de negocio.


Este resumen proporciona una visión general de los conceptos clave discutidos en el video sobre la recopilación de requisitos en la ingeniería de datos, destacando la importancia de alinear las necesidades de los stakeholders con los objetivos del negocio.


Introducción a la Ingeniería de Datos: Conversación con Matt Housley

Descripción

En este documento se resumen las ideas y conceptos discutidos en la conversación entre Joe y Matt Housley sobre la ingeniería de datos, su libro "Fundamentals of Data Engineering" y el curso relacionado. Se abordan temas como la motivación detrás del libro, el público objetivo, la importancia de los conceptos fundamentales y consejos para quienes desean ingresar al campo de la ingeniería de datos.

Motivación del Libro

Público Objetivo

Relación entre el Libro y el Curso

$## Consejos para Ingresar a la Ingeniería de Datos

  1. Aprender Conceptos Básicos de Datos: Familiarizarse con datos tabulares y su uso en análisis.
  2. Experimentar con Diferentes Herramientas: No limitarse a un solo conjunto de herramientas; adquirir experiencia general.
  3. Desarrollar un Marco Mental: Comprender cómo pensar como un ingeniero de datos para clasificar herramientas y tecnologías adecuadamente.

Conclusión

La conversación entre Joe y Matt destaca la importancia de tener una base sólida en conceptos de datos y la necesidad de un enfoque práctico para quienes desean ingresar al campo de la ingeniería de datos. La combinación del libro y el curso proporciona un camino claro para desarrollar las habilidades necesarias en este campo en crecimiento.

Tabla Resumen

Concepto Descripción
Motivación del Libro Abordar la falta de materiales educativos en ingeniería de datos.
Público Objetivo Técnicos que desean transitar a ingeniería de datos y gerentes de producto.
Relación Libro-Curso Complementariedad entre teoría y práctica.
Consejos para Nuevos Ingenieros Aprender conceptos básicos, experimentar con herramientas, desarrollar un marco mental.

Lista de Recursos

Este documento proporciona una visión general de la conversación y los temas tratados, ofreciendo un recurso útil para aquellos interesados en la ingeniería de datos.


Resumen de la Conversación con el CTO

Descripción

En este documento se presenta un resumen de la conversación entre un ingeniero de datos recién contratado y el CTO de una empresa de comercio electrónico. Se discuten los objetivos comerciales y las iniciativas tecnológicas que impactarán el trabajo del ingeniero de datos.

Objetivos de la Empresa

Desafíos Tecnológicos

Iniciativas Tecnológicas

  1. Refactorización del código: Se busca eliminar el código antiguo y mejorar la escalabilidad del sistema.
  2. Transición a un enfoque de streaming: Se planea cambiar de un enfoque basado en lotes a uno basado en streaming utilizando tecnologías como Kinesis y Kafka.

Herramientas y Tecnologías

Herramienta Descripción
Kinesis Versión nativa de Amazon para streaming.
Kafka Plataforma de streaming que se considerará para escalar ciertos pipelines.

Rol del Ingeniero de Datos

Objetivos de IA y Aprendizaje Automático

Conclusión

El ingeniero de datos tiene un papel crucial en la modernización de los sistemas y en la mejora de la calidad de los datos, lo que contribuirá al éxito de las iniciativas tecnológicas de la empresa. Se espera que el ingeniero adquiera habilidades en Kinesis y Kafka para gestionar y expandir las capacidades de streaming.


Este resumen proporciona una visión general de los temas discutidos en la conversación, destacando los objetivos, desafíos y el papel del ingeniero de datos en la empresa.


Resumen de la Conversación con el Equipo de Marketing

Descripción

En este documento se resumen las ideas y conceptos discutidos en la conversación entre un ingeniero de datos y un gerente de marketing de productos. Se abordan las necesidades y expectativas del equipo de marketing en relación con dos iniciativas clave: la creación de paneles de control (dashboards) para métricas de ventas de productos y un sistema de recomendaciones de productos.

Objetivos del Curso

Iniciativas Clave

  1. Dashboards de Ventas de Productos
  2. Visualización de métricas y tendencias de ventas.
  3. Necesidad de datos en tiempo real para capturar picos de demanda.

  4. Sistema de Recomendaciones de Productos

  5. Mejora de las recomendaciones personalizadas basadas en el historial de compras del cliente.

Elementos Clave en la Recopilación de Requisitos

  1. Estado Actual de los Sistemas
  2. Identificar sistemas existentes y problemas asociados.
  3. Acciones Planeadas por los Stakeholders
  4. Comprender cómo se utilizarán los datos.
  5. Identificación de Otros Stakeholders
  6. Conversaciones necesarias para obtener información adicional.

Detalles de la Conversación

Dashboards de Ventas

Sistema de Recomendaciones

Conclusiones

La conversación entre el ingeniero de datos y el gerente de marketing resalta la importancia de entender las necesidades específicas del equipo de marketing para desarrollar soluciones efectivas. Se identificaron áreas clave para mejorar tanto en los dashboards como en el sistema de recomendaciones, lo que permitirá a la empresa tomar decisiones más informadas y mejorar la retención de clientes.

Próximos Pasos


Este resumen proporciona una visión clara de las necesidades del equipo de marketing y los objetivos del ingeniero de datos en el contexto de la ingeniería de datos.


Resumen del Video: Desglosando la Conversación con Marketing

Descripción

En este video, se analiza la conversación mantenida con el departamento de marketing sobre sus necesidades. Se profundiza en la documentación de los requisitos recopilados, utilizando una jerarquía que permite visualizar la conexión entre los requisitos del sistema y los objetivos comerciales de alto nivel.

Objetivos Comerciales

Los objetivos comerciales identificados son: - Continuar con la trayectoria de crecimiento de la empresa. - Enfocarse en la retención y lealtad del cliente. - Expandirse a nuevos mercados y ofrecer nuevos productos. - Ser impulsados por datos en la toma de decisiones.

Necesidades de los Stakeholders

Los stakeholders considerados son: - Científico de datos. - Gerente de marketing de productos.

Necesidades Identificadas

  1. Tableros de análisis (Analytics Dashboards)
  2. Necesitan datos "en tiempo real" o "actuales".
  3. Desean ser notificados sobre picos de demanda para productos específicos.
  4. Se requieren actualizaciones horarias en los tableros.

Requisito Funcional: - El sistema de datos debe servir datos transformados que no tengan más de una hora de antigüedad.

  1. Sistema de recomendaciones (Recommender System)
  2. La solución actual muestra productos populares al momento de la compra.
  3. Se desea un sistema que ofrezca recomendaciones personalizadas basadas en el historial de navegación y compras del usuario.

Requisito Funcional: - El sistema debe proporcionar los datos de entrenamiento adecuados para el desarrollo del modelo de recomendación. - Debe ser capaz de ingerir, transformar y servir datos de usuario al modelo entrenado, y devolver los resultados del modelo (IDs de productos) a la plataforma de ventas.

Consideraciones sobre Requisitos Funcionales

Documentación de Requisitos Funcionales

Se han documentado dos requisitos funcionales básicos: 1. Proveer datos transformados con una antigüedad máxima de una hora para los tableros de análisis. 2. Proveer datos de entrenamiento y permitir la interacción entre el modelo de recomendación y la plataforma de ventas.

Próximos Pasos

En el próximo video, se abordará la documentación de requisitos no funcionales y se llevará a cabo una conversación con un ingeniero de software que mantiene la plataforma de ventas, que es el sistema fuente del cual se estará ingiriendo datos.


Este resumen proporciona una visión clara de las necesidades del departamento de marketing y cómo se traducen en requisitos funcionales para el sistema de datos.


Resumen de la Conversación con el Ingeniero de Software

Descripción

En este documento se resumen las ideas y conceptos discutidos en la conversación entre un ingeniero de datos y un ingeniero de software sobre la ingesta de datos desde una plataforma de ventas. Se abordan los desafíos comunes en el flujo de datos, la comunicación con los propietarios de sistemas de origen y las mejores prácticas para mitigar problemas relacionados con la disponibilidad de datos y cambios en el esquema.

Temas Clave

  1. Desafíos en la Ingesta de Datos
  2. La falta de disponibilidad de datos.
  3. Cambios en el esquema que rompen los scripts de procesamiento.

  4. Comunicación con Propietarios de Sistemas

  5. Importancia de establecer líneas de comunicación abiertas.
  6. Discusión sobre cómo anticipar y manejar interrupciones o cambios en los datos.

  7. Soluciones Propuestas

  8. Creación de una réplica de solo lectura de la base de datos de producción.
  9. Implementación de una API para acceder a los datos sin afectar el sistema de producción.

  10. Problemas Potenciales

  11. Mantenimiento de sistemas que puede causar retrasos en la entrega de datos.
  12. Fallos en servidores o centros de datos que pueden hacer que los datos no estén disponibles temporalmente.

  13. Cambios en el Esquema de la Base de Datos

  14. Necesidad de realizar cambios en el esquema debido a nuevas características o expansión de productos.
  15. Importancia de notificar con anticipación sobre cambios en el esquema para ajustar los pipelines de datos.

Tabla de Problemas y Soluciones

Problema Solución Propuesta
Datos no disponibles temporalmente Notificación automática a los usuarios de datos
Cambios en el esquema Notificación anticipada sobre cambios en el esquema
Acceso directo a la base de datos Configuración de una réplica de solo lectura y API

Lista de Recomendaciones

Conclusión

La colaboración entre ingenieros de datos y propietarios de sistemas es crucial para construir sistemas de datos robustos. La comunicación abierta y la planificación anticipada son fundamentales para mitigar problemas y asegurar un flujo de datos continuo y confiable. En el próximo video, se explorarán más a fondo los requisitos no funcionales del sistema.


Documentación de Requisitos No Funcionales

Descripción

En este documento se resumen las ideas y conceptos discutidos en el video "Documenting Nonfunctional Requirements" del curso de Introducción a la Ingeniería de Datos. Se abordan los requisitos no funcionales necesarios para los sistemas de datos, así como la importancia de documentarlos adecuadamente.

Conversación con el Ingeniero de Software

Durante la conversación con el ingeniero de software, se identificaron varios puntos clave:

Documentación de Requisitos

Formato Jerárquico

La documentación se organiza en un formato jerárquico que incluye:

  1. Objetivos del Negocio
  2. Necesidades de los Interesados
  3. Requisitos del Sistema

Requisitos Funcionales

Se han documentado dos requisitos funcionales:

Requisitos No Funcionales

Los requisitos no funcionales son características o atributos que el sistema debe tener para funcionar correctamente. A continuación se presentan algunos ejemplos:

Para los Tableros Analíticos

Para el Sistema de Recomendación

Resumen

Es fundamental entender los sistemas no solo en términos de su funcionalidad, sino también en cómo esa funcionalidad servirá a los interesados y a los objetivos finales del negocio. La documentación de requisitos no funcionales es crucial para garantizar que los sistemas de datos sean robustos y cumplan con las expectativas de rendimiento y confiabilidad.

Próximos Pasos

En el siguiente video, se resumirán los temas principales de esta lección antes de elegir herramientas y tecnologías basadas en los requisitos del sistema.


Resumen de la Recolección de Requisitos en Ingeniería de Datos

Descripción

En esta lección se aborda la importancia de la recolección de requisitos en la ingeniería de datos, enfatizando la necesidad de comprender cómo los sistemas que se construyen aportan valor a los interesados. Se discuten las mejores prácticas para identificar necesidades, documentar hallazgos y evaluar compromisos en el desarrollo de sistemas de datos.

Puntos Clave

  1. Identificación de Interesados:
  2. Antes de construir o modificar sistemas de datos, es crucial identificar a los interesados y entender sus necesidades en el contexto de los objetivos empresariales.
  3. Conversar con diversas personas en la organización, desde líderes hasta científicos de datos y ingenieros de software.

  4. Preguntas Abiertas:

  5. Realizar preguntas abiertas para comprender los sistemas actuales, problemas potenciales y las acciones que los interesados planean tomar con los datos.

  6. Documentación:

  7. Documentar todos los hallazgos es esencial para confirmar que el sistema propuesto satisfará las necesidades de los interesados y de la empresa.

  8. Requisitos Funcionales y No Funcionales:

  9. Una vez que se comprenden las necesidades, se deben redactar requisitos funcionales y no funcionales para el sistema.

  10. Evaluación de Compromisos:

  11. Es importante discutir con los interesados sobre las prioridades: características del sistema, tiempo de implementación o costo.
  12. Se introduce el concepto de Triángulo de Hierro en la gestión de proyectos, que incluye:

Triángulo de Hierro

Aspecto Descripción
Tiempo Duración del proyecto.
Alcance Extensión del trabajo a realizar.
Costo Presupuesto asignado.

Principios para Romper el Triángulo de Hierro

Conclusión

La recolección de requisitos es fundamental para el éxito en la ingeniería de datos. A través de la identificación de interesados, la documentación adecuada y la evaluación de compromisos, se pueden construir y mantener sistemas de datos de alta calidad dentro de un cronograma y presupuesto predecibles. En la próxima lección, se explorarán los costos y capacidades de diferentes herramientas y tecnologías para la construcción de sistemas.

¡Nos vemos en la próxima lección!


Recolección de Requisitos en Ingeniería de Datos

Descripción

En esta lección, se simula un proyecto desde la recolección de requisitos hasta la implementación, utilizando los conceptos aprendidos en el curso de Introducción a la Ingeniería de Datos. Aunque en la práctica este proceso puede llevar semanas, meses o incluso años, en esta actividad se realizará en un tiempo reducido.

Objetivos de la Lección

Plan de Actividades

  1. Revisión de la Conversación: Se presentará una conversación entre el ingeniero de datos y el científico de datos sobre un sistema de recomendación.
  2. Material Adicional: Se proporcionará la transcripción de la conversación para facilitar la revisión.

  3. Extracción de Requisitos:

  4. Se deberán identificar requisitos funcionales y no funcionales a partir de la conversación.
  5. Se completará un cuestionario para evaluar la comprensión de los requisitos.

  6. Exploración de Herramientas de AWS:

  7. Se presentarán diversas herramientas y servicios de AWS que pueden ser utilizados para implementar la solución.
  8. Se completará un segundo cuestionario para identificar qué herramientas satisfacen los requisitos del sistema de datos.

  9. Ejercicio Práctico en el Laboratorio:

  10. Se proporcionará un entorno de laboratorio con la infraestructura básica del sistema de recomendación.
  11. Se personalizará el sistema según las elecciones de herramientas realizadas en el cuestionario.

Consideraciones Finales

Este ejercicio es una simulación breve y limitada en comparación con la experiencia real de un ingeniero de datos. Sin embargo, es útil para imaginar el proceso de construcción de un sistema sin las restricciones habituales del entorno laboral.

Recursos

Conclusión

Se invita a los participantes a trabajar a través de los materiales de lectura y cuestionarios, y luego proceder a la práctica en el laboratorio para aplicar lo aprendido.


Resumen de la Conversación sobre el Sistema de Recomendación

Descripción

En esta conversación, se discuten los avances en el desarrollo de un sistema de recomendación basado en contenido para un equipo de marketing. Se abordan aspectos técnicos del modelo, la estructura de los datos de entrenamiento y las expectativas de rendimiento del sistema.

Proyectos en Curso

Detalles del Sistema de Recomendación

Proceso de Entrenamiento

Expectativas de Rendimiento

Escalabilidad

Tabla de Características del Sistema de Recomendación

Tipo de Característica Ejemplo de Atributos
Características del Usuario Número de cliente, Límite de crédito, Ciudad, Código postal, País
Características del Producto Código de producto, Cantidad en stock, Precio de compra, MSRP, Línea de producto, Escala de producto
Valor de Calificación Valor de 1 a 5 que representa la calificación del usuario para el producto

Conclusiones

La conversación destaca la importancia de un sistema de recomendación eficiente y escalable, que pueda adaptarse a las necesidades cambiantes del negocio y proporcionar recomendaciones relevantes a los usuarios en tiempo real. Se requiere una colaboración continua entre los equipos de marketing y desarrollo para asegurar el éxito del proyecto.


Servicios de AWS para Pipelines por Lotes

Descripción

En este documento se resumen los conceptos y herramientas discutidos en el video sobre servicios de AWS para el procesamiento de datos por lotes. Se abordan las decisiones tecnológicas necesarias para construir un sistema de datos, centrándose en las opciones de AWS para la ingesta, transformación y almacenamiento de datos.

Contenido

Introducción

Después de recopilar los requisitos del sistema, es crucial traducirlos en elecciones de herramientas y tecnologías. La elección de la tecnología adecuada depende de los requisitos específicos del proyecto, similar a elegir un vehículo para el transporte.

Comparación de Opciones

Se presentan dos vehículos como analogía para ilustrar la importancia de entender los requisitos: - Jumbo Jet - Rango: 10,000 millas náuticas - Velocidad máxima: 1,100 km/h - Capacidad: 250+ pasajeros - Costo: 70,000

La elección del vehículo depende de factores como la distancia, el número de pasajeros y el presupuesto.

Componentes del Sistema de Datos

Para el sistema de datos que se trabajará, se identifican dos componentes: por lotes y streaming. Este documento se centra en el procesamiento por lotes, específicamente en el paradigma de Extract, Transform, Load (ETL).

Proceso ETL

  1. Ingesta de datos: Obtener datos de un sistema fuente, como Amazon Relational Database Service (RDS).
  2. Transformación: Aplicar transformaciones para que los datos sean útiles para los científicos de datos.
  3. Carga: Almacenar los datos transformados y proporcionar acceso a ellos.

Opciones de Ingesta y Transformación

Existen varias maneras de implementar el proceso ETL en AWS:

Herramientas Serverless para Procesamiento por Lotes

  1. Amazon Glue ETL
  2. Ventajas: Descubrimiento automático de datos mediante crawlers, creación de un catálogo de datos, y una interfaz visual para diseñar pipelines.
  3. Ideal para proyectos que requieren conveniencia y facilidad de uso.

  4. Amazon EMR Serverless

  5. Ventajas: Mayor control sobre el procesamiento de datos, soporte para frameworks como Apache Spark y Hadoop.
  6. Ideal para análisis a gran escala y personalización.

Almacenamiento y Servicio de Datos

La elección del almacenamiento depende del caso de uso: - Amazon RDS: Para datos tabulares normalizados. - Amazon Redshift: Para consultas analíticas complejas en grandes conjuntos de datos, aunque a un costo más alto. - Amazon S3: Comúnmente utilizado como área de preparación, flexible y escalable, ideal para almacenar cualquier tipo de datos.

Conclusión

Este documento proporciona una visión general de las herramientas y servicios de AWS para el procesamiento de datos por lotes. En la próxima sesión, se explorarán las herramientas para el procesamiento de datos en streaming.

Tabla Resumen de Servicios

Servicio Ventajas Desventajas
AWS Lambda Ejecución en respuesta a eventos Limitaciones de tiempo y recursos
Amazon Glue ETL Descubrimiento automático y fácil de usar Menos control sobre el procesamiento
Amazon EMR Mayor control y flexibilidad Complejidad en la gestión
Amazon RDS Ideal para datos tabulares Costos variables
Amazon Redshift Potente para análisis complejos Costo elevado
Amazon S3 Flexible y escalable Puede requerir gestión adicional

Lista de Pasos para el Proceso ETL

  1. Ingesta de datos desde Amazon RDS.
  2. Transformación de datos utilizando Glue ETL o EMR.
  3. Carga de datos en Amazon S3 o RDS según el caso de uso.

Este resumen proporciona una base sólida para entender las opciones disponibles en AWS para el procesamiento de datos por lotes.


Servicios de AWS para Pipelines de Streaming

Descripción

En este documento se resumen los conceptos y servicios de AWS relacionados con la construcción de pipelines de streaming, complementando lo aprendido sobre pipelines por lotes. Se explorarán las opciones disponibles en AWS para manejar datos en tiempo real, así como las mejores prácticas para su implementación.

Contenido

Introducción a los Datos de Streaming

Los datos de streaming pueden provenir de diversas fuentes, tales como: - Dispositivos IoT - Datos de clics de sitios web o aplicaciones móviles - Cambios en bases de datos mediante un proceso conocido como Change Data Capture (CDC)

Opciones para Ingesta de Datos de Streaming

  1. Instancias EC2:
  2. Permiten escribir scripts personalizados para realizar CDC o conectarse a fuentes de streaming.
  3. Requiere gestión de software, seguridad y complejidad de implementación.

  4. Funciones Lambda:

  5. Opción sin servidor para crear sistemas de streaming.
  6. Implica escribir código personalizado y puede tener limitaciones según el caso de uso.

Servicios de AWS para Streaming

A continuación, se presentan los principales servicios de AWS que soportan cargas de trabajo de streaming:

Servicio Descripción
Amazon Kinesis Data Streams Permite la ingesta de datos en tiempo real. Acepta datos en varios formatos (JSON, XML, etc.) y permite múltiples consumidores para procesar los datos.
Amazon Managed Streaming for Apache Kafka (MSK) Servicio gestionado que facilita la construcción y ejecución de aplicaciones que utilizan Apache Kafka para procesar datos de streaming. Soporta versiones de código abierto de Kafka.
Amazon Data Firehose Facilita la lectura de datos de un stream y su almacenamiento en destinos como S3 o Redshift, sin necesidad de escribir código personalizado.

Comparación entre Kinesis y MSK

Uso de Amazon Data Firehose

Conclusión

Existen múltiples servicios en AWS que facilitan la implementación de pipelines de streaming. Es importante evaluar el caso de uso específico para elegir la herramienta adecuada. En el próximo ejercicio práctico, se aplicarán estos conceptos para implementar un pipeline de batch y streaming.

Próximos Pasos

¡Diviértete y nos vemos en el próximo curso!


Implementación del Pipeline por Lotes para un Sistema de Recomendación

Descripción

En este documento se resumen los pasos para implementar un pipeline por lotes y de streaming para un sistema de recomendación, utilizando AWS. Se detallan las herramientas y procesos necesarios para preparar los datos de entrenamiento y almacenar las salidas del sistema de recomendación.

Contenido

Objetivos del Laboratorio

  1. Implementar el pipeline por lotes para proporcionar datos de entrenamiento a los científicos de datos.
  2. Configurar una base de datos vectorial para almacenar las salidas del sistema de recomendación.
  3. Implementar el pipeline de streaming que utiliza el sistema de recomendación entrenado y la base de datos vectorial para generar recomendaciones de productos.

Diagrama de Arquitectura

El laboratorio se centra en la arquitectura del pipeline por lotes, que transforma los datos y los prepara para el entrenamiento del sistema de recomendación.

Recursos Necesarios

Pasos para la Implementación

  1. Conexión a la Base de Datos
  2. Utilizar el comando para obtener el endpoint de la base de datos.
  3. Conectar a la base de datos usando MySQL con las credenciales adecuadas.

bash mysql -h <endpoint> -u admin -p

  1. Exploración de la Tabla de Calificaciones
  2. Ejecutar una consulta para obtener las primeras 20 filas de la tabla de calificaciones.

sql SELECT * FROM ratings LIMIT 20;

  1. Configuración de Terraform
  2. Instalar Terraform y definir variables ambientales.
  3. Crear los recursos necesarios para el pipeline por lotes, incluyendo Glue ETL y el S3 bucket.

bash ./setup.sh cd terraform terraform init terraform plan terraform apply

  1. Ejecución del Trabajo de Glue
  2. Iniciar el trabajo de Glue para transformar los datos.

bash aws glue start-job-run --job-name <nombre_del_trabajo>

  1. Verificación de Datos en S3
  2. Comprobar que el bucket S3 contiene los datos de entrenamiento en la carpeta ratings_ml_training.

Organización de los Archivos de Terraform

Los archivos de Terraform se organizan en módulos. Cada módulo contiene los recursos necesarios para una parte específica del laboratorio. Asegúrate de declarar los módulos en el archivo principal de Terraform.

Estructura de la Tabla de Calificaciones

Número de Cliente Código de Producto Calificación
1 A123 5
2 B456 4
3 C789 3

Conclusión

Hasta este punto, hemos transformado los datos de calificaciones en un formato adecuado para entrenar el sistema de recomendación. En la siguiente parte del laboratorio, se configurará una base de datos vectorial para almacenar las salidas del modelo de recomendación.

Próximos Pasos


Configuración de la Base de Datos Vectorial

Descripción

En este documento se resumen los pasos para configurar una base de datos vectorial que almacenará las salidas de un modelo de recomendación. Se abordarán los elementos clave del proceso, incluyendo la interacción con un bucket de S3, la creación de la base de datos y la carga de embeddings.

Contenido

1. Introducción

En esta sección, se configurará una base de datos vectorial que almacenará los resultados de un modelo de recomendación previamente entrenado. Los datos transformados se encuentran en un bucket de S3, que es compartido con los científicos de datos.

2. Estructura del Bucket S3

El bucket de S3 contiene tres carpetas principales: - embeddings: Contiene los embeddings de usuarios y productos. - models: Almacena el modelo entrenado que se utilizará para inferencias. - scalers: Incluye los objetos utilizados en la pre-procesamiento del entrenamiento.

Archivos en la Carpeta de Embeddings

En la carpeta de embeddings, se encuentran dos archivos CSV: - item_embeddings.csv: Embeddings de los productos. - user_embeddings.csv: Embeddings de los usuarios.

Estos embeddings se utilizarán para encontrar productos similares a los que un usuario ha agregado a su carrito de compras.

3. Creación de la Base de Datos Vectorial

Para crear la base de datos vectorial, se seguirán los siguientes pasos:

  1. Modificar Archivos de Configuración:
  2. Abrir el archivo main.tf y descomentar la sección que declara el módulo de la base de datos vectorial.
  3. Abrir el archivo outputs.tf y descomentar las variables de salida del módulo de la base de datos vectorial.

  4. Crear Recursos:

  5. Ejecutar los siguientes comandos en la terminal: bash terraform init terraform plan terraform apply
  6. Confirmar la creación de recursos. La creación de la base de datos PostgreSQL puede tardar alrededor de siete minutos.

  7. Obtener Credenciales:

  8. Copiar el nombre de host o endpoint de la base de datos.
  9. Ejecutar comandos para obtener el nombre de usuario y la contraseña, que están marcados como sensibles.

4. Carga de Embeddings en la Base de Datos

Para cargar los embeddings en la base de datos vectorial, se realizarán los siguientes pasos:

  1. Abrir el Archivo SQL:
  2. Navegar a la carpeta SQL y abrir el archivo SQL correspondiente.
  3. Especificar el nombre del bucket de S3 en las sentencias SELECT.

  4. Conectar a la Base de Datos:

  5. Ejecutar el comando para conectarse a la base de datos, reemplazando el host con el nombre de host obtenido anteriormente.
  6. Ingresar la contraseña cuando se solicite.

  7. Ejecutar Sentencias SQL:

  8. Ejecutar las sentencias SQL del script de embeddings.
  9. Listar las tablas disponibles para verificar que los embeddings se hayan cargado correctamente.

5. Conclusión

Una vez que se ha configurado la base de datos vectorial y se han cargado los embeddings del modelo, se procederá a la siguiente parte del laboratorio, que se centrará en el pipeline de streaming para pasar datos de usuarios y productos al sistema de recomendación.

Tabla Resumen de Pasos

Paso Descripción
1. Modificar Archivos Descomentar secciones en main.tf y outputs.tf.
2. Crear Recursos Ejecutar comandos de Terraform para crear la base de datos.
3. Obtener Credenciales Copiar el endpoint, nombre de usuario y contraseña.
4. Cargar Embeddings Especificar el bucket en el archivo SQL y ejecutar las sentencias.
5. Verificar Carga Listar tablas para confirmar la carga de embeddings.

Notas Finales

En el próximo video, se explorará la parte del pipeline de streaming que se utilizará para pasar datos al sistema de recomendación y almacenar las recomendaciones en un bucket de S3.


Implementación del Pipeline de Streaming

Descripción

En este documento se resumen los pasos necesarios para implementar un pipeline de streaming utilizando un sistema de recomendación y una base de datos vectorial. Se describen los componentes arquitectónicos, la configuración de variables ambientales y el proceso de carga de datos en un bucket de S3.

Diagrama Arquitectónico

El flujo de trabajo del streaming se compone de los siguientes elementos:

Proceso de Implementación

  1. Configuración de la Lambda Function:
  2. Acceder al servicio Lambda en la consola de AWS.
  3. Seleccionar la función Lambda que contiene "model inference" en su nombre.
  4. Ir a la pestaña de configuración y seleccionar "variables ambientales".
  5. Editar y agregar el host de la base de datos, el nombre de usuario y la contraseña.
  6. Guardar los cambios.

  7. Implementación del Pipeline de Streaming:

  8. Descomentar la sección final en el archivo main.tf que declara un módulo de streaming.
  9. Hacer lo mismo en el archivo de salidas.
  10. Ejecutar los siguientes comandos de Terraform: bash terraform init terraform plan terraform apply
  11. Nota: Terraform no creará Kinesis Data Streams ya que ya está proporcionado como un recurso del laboratorio.

  12. Verificación de la Carga de Datos:

  13. Buscar el bucket de S3 que contiene las recomendaciones.
  14. Verificar que los datos están particionados por año, mes, día y hora para facilitar la localización.

  15. Revisión de Logs:

  16. Buscar el servicio Lambda y seleccionar la función de transformación.
  17. Ir a la pestaña de monitorización y ver los logs de CloudWatch para revisar el rendimiento de la función.

Notas Finales

Recursos Adicionales

¡Ahora es tu turno de intentar este laboratorio!