Proceso ETL con MySQL, MongoDB, AWS y Análisis de Datos con Python.

Ver proyecto en GitHub


Proyecto en GitHub


Descripción general del proyecto

En este proyecto, exploraremos el proceso de Extracción, Transformación y Carga (ETL) de datos utilizando tecnologías como MySQL, MongoDB, AWS y Python. Comenzaremos descargando un conjunto de datos de una plataforma que ofrece datos gratuitos para desarrolladores. Este conjunto de datos servirá como punto de partida para nuestro análisis y procesamiento de datos. El proceso de ETL implicará la extracción de datos de múltiples fuentes, incluidos archivos TXT, bases de datos MongoDB y archivos almacenados en Amazon S3. Utilizaremos Python para manipular y transformar los datos según sea necesario, preparándolos para su carga en nuestras bases de datos relacionales en MySQL. Este proyecto y la documentación de este repositorio se centran más en el proceso de extracción, transformación y carga de datos a las bases de datos tanto OLTP como OLAP que se han diseñado, así como en las configuraciones para desplegar el proyecto. Sin embargo, para llevar a cabo esta carga de datos, ha sido necesario realizar una recolección y análisis de datos previos para poder modelar adecuadamente las bases de datos tanto OLTP como OLAP. Si se necesita más información sobre el proceso de análisis para llevar a cabo el modelamiento y construcción de la base de datos, pueden visitar un proyecto en GitHub que tiene el paso a paso para la creación de la base de datos relacional. Repositorios en GitHub: - PostgreSQL Modelado y Carga de Datos. - Modelado, Carga de Datos con SQL Server y Análisis de Datos con SQL Server.

Requisitos previos - Tecnologías utilizadas

Antes de ejecutar este proyecto, asegúrese de tener instaladas las siguientes herramientas:

  • Python versión 3.10.6
  • MySQL 8.0.34 o superior
  • MongoDB
  • Cuenta grautita o de pago en AWS

  • Arquitectura de Flujo de Datos



    Estructura del proyecto


    El proyecto está organizado en varios directorios, cada uno con un propósito específico:


  • arquitectura: Contiene modelos de datos para la base de datos OLTP y OLAP. Aquí se definen las estructuras de tablas y relaciones para almacenar los datos de manera transaccional y analítica.

  • config: En este directorio se encuentran las credenciales de acceso a servicios en la nube y la configuración de bases de datos. Es importante mantener esta información segura y separada del código fuente.

  • data: A quí se almacenan los archivos de datos utilizados en el proyecto. Estos archivos pueden provenir de diversas fuentes y serán procesados y cargados en la base de datos durante el proceso ETL.

  • database: Contiene clases y funciones para manejar la conexión a la base de datos MySQL y ejecutar consultas SQL, así como scripts para la creación de tablas y otros objetos de la base de datos. También incluye conexiones a los servicios de almacenamiento S3 y la base de datos NoSQL MongoDB.

  • log_error_proceso: Este directorio almacena archivos de registro de errores del proceso. Es útil para identificar y solucionar problemas durante la ejecución del proceso ETL.

  • mysql_script: Aquí se encuentran scripts para la creación de bases de datos en MySQL. Estos scripts son utilizados para configurar el entorno de base de datos antes de ejecutar el proceso ETL.


  • Archivos de proceso ETL

    Los archivos proceso_etl_OLTP.py y proceso_etl_OLAP.py contienen la lógica necesaria para realizar el proceso ETL (Extract, Transform, Load) en los modelos OLTP y OLAP, respectivamente. proceso_etl_OLTP.py:

  • Lee datos de diversas fuentes en dataframes.
  • Realiza transformaciones según las reglas de negocio.
  • Carga los datos transformados en la base de datos OLTP configurada.

  • proceso_etl_OLAP.py:

  • Lee datos de diversas fuentes en dataframes.
  • Realiza transformaciones para generar cubos de datos.
  • Carga los datos transformados en la base de datos OLAP configurada.
  • Asegúrate de revisar y configurar adecuadamente los archivos configuracion.py, proceso_etl_OLTP.py y proceso_etl_OLAP.py antes de ejecutar el proyecto.

  • Modelo de Datos Relacional - OLTP

    Después de analizar los archivos TXT del proyecto, se estructuró la base de datos y se crearon los scripts necesarios para las tablas de los modelos OLTP y OLAP. Estos scripts se encuentran en el directorio mysql_script y son utilizados para configurar el entorno de base de datos en MySQL antes de ejecutar el proceso ETL.


    Modelo de Datos para Análisis - OLAP


    Repositorio del Proyecto en GitHub

    Para obtener más detalles sobre cada uno de los pasos y configuraciones, junto con la documentación completa del proceso, puede visitar el Repositorio del Proyecto en GitHub, el cual contiene todas las fuentes necesarias para desplegar el proyecto.