← Back to list

ETL Process with MySQL and Data Analytics using Python

En este proyecto se implementa un proceso ETL (Extract, Transform, Load) utilizando Python, Pandas, SQLAlchemy y MySQL, aplicándolo a un…

Carlos Alexandro Vera Torres · 2025-12-19 03:44 · 0 claps · 3.2 min read
#etl #dwh #bds #mysql #python
Open on Medium ↗
Wiki topics: GRW · Growth & Analytics 🔧 · Data Engineering

ETL Process with MySQL and Data Analytics using Python

En este proyecto se implementa un proceso ETL (Extract, Transform, Load) utilizando Python, Pandas, SQLAlchemy y MySQL, aplicándolo a un conjunto de datos relacionado con películas, participantes y premios. El objetivo es integrar información proveniente de múltiples fuentes, transformarla y cargarla en un Data Warehouse, para posteriormente dejarla lista para análisis.

Tecnologías Utilizadas

  • Python 3
  • Pandas
  • SQLAlchemy
  • MySQL
  • Jupyter Notebook

Configuración del Entorno

Proceso ETL

Se establece la conexión usando SQLAlchemy y importamos la libreria Pandas.

Extract

Generamos una consulta SQL con múltiples JOIN para obtener información consolidada de películas, géneros y participantes:

Extracción desde archivo CSV

Se carga información adicional desde un archivo CSV que contiene premios asociados a películas:

Transformación de Datos

Durante esta etapa se realizan varias transformaciones para asegurar la calidad y coherencia de los datos.

  • Conversión de tipos de datos

  • Renombrado de Columnas

  • Integración de fuentes (JOIN)

LOAD

Se crea una nueva conexión hacia la base de datos del Data Warehouse:

Asi mismo, realizamos una nueva conexion a la BD dw_netflix en las cuales se aplica:

  • Ajuste de nombres para modelo dimensional
  • Eliminacion de campos

Luego se cargan los datos transformados en la tabla dimensional dimMovie usando to_sql() :

Validamos que se insertaron correctamente los 3 registros.

Así mismo aplicamos el proceso de ETL para el resto de dimensiones

Extract — dimUser

Transform— dimUser

LOAD — dimUser

Por ultimo vamos a realizar la carga de la tabla Hechos (FactWatchs)

  • Usamos como base la data de users y movie_data_final de los campos userID, movieID.

  • Realizamos un CROSS join para generar datos multiples

  • Generamos datos Random y calculamos los segundos entre las fecha con numeros aleatorios

  • Aplicamos funciones personalizadas (apply) para generar datos sintéticos sobre una tabla de eventos (watchs_data) y generando columnas rating y timestamp.

Realizamos la carga a la tabla hechos.

Validamos los 60 registros insertados correctamente.

Conclusión

En este proyecto se implementó un proceso ETL completo utilizando Python, Pandas, SQLAlchemy y MySQL, integrando datos desde múltiples fuentes y transformándolos para su carga en un esquema dimensional. Además, se generaron datos sintéticos para simular eventos reales de interacción entre usuarios y contenido, dejando la información lista para análisis y futuras visualizaciones.


메타데이터
post_id
5a92504bb8ec
slug
etl-process-with-mysql-and-data-analytics-using-python-5a92504bb8ec
url
https://medium.com/@carlosalexandrov/etl-process-with-mysql-and-data-analytics-using-python-5a92504bb8ec
canonical_url
https://medium.com/@carlosalexandrov/etl-process-with-mysql-and-data-analytics-using-python-5a92504bb8ec
author_url
https://medium.com/@carlosalexandrov
status
ok
fetched_at
2026-06-12 22:02:08