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…
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