Fundamentos de ETL con Python: Extracción, Transformación y Carga de Datos
Clase 24 de 24 • Curso de ETL e ingesta de datos con Python
Contenido del curso
Técnicas Efectivas de Transformación de Datos
- 5
Lectura y Exploración de Archivos CSV con Pandas en Python
00:00 min - 6
Manejo de Archivos Excel con Pandas para Procesos ETL
00:00 min - 7
Ingesta de Datos desde APIs con Python
00:00 min - 8
Conexión y consulta de bases de datos en Python con SQLite3 y SQLAlchemy
00:00 min - 9
Series y DataFrames en Pandas: Diferencias y Usos Prácticos
00:00 min - 10
Métricas Clave en el Perfilado de Datos para Análisis de Calidad
00:00 min - 11

Limpieza de Datos en Python con Pandas
08:04 min - 12
Filtrado, Selección y Transformación de Datos con Pandas
00:00 min - 13
Agrupación y Resumen de Datos con Pandas
00:00 min - 14

Manipulación Avanzada de Datos con Python y Pandas
09:06 min
Carga de Datos y Proyecto Final
- 15
Exportación de DataFrames a CSV con Pandas paso a paso
00:00 min - 16
Gestión de Datos: Carga Completa vs. Carga Incremental en Python
00:00 min - 17
Partición de Datos en Archivos CSV con Pandas
00:00 min - 18

Carga Incremental de Datos en Archivos Excel con Python
05:10 min - 19

Importación de la Base de Datos Sakila en MySQL Workbench
04:52 min - 20

Transformaciones de Datos ETL con Python y MySQL
04:18 min - 21

Transformaciones de Datos con Python y SQL
13:38 min - 22

Buenas prácticas y errores comunes en procesos ETL
04:17 min - 23

Carga y Validación de Datos en Sakila ETL con Python y SQL
06:29 min - 24

Fundamentos de ETL con Python: Extracción, Transformación y Carga de Datos
Viendo ahora
¿Cómo se crea una base de datos y tablas en MySQL?
El proceso de creación de una base de datos y sus tablas es crucial en el manejo de datos, especialmente cuando se trata de proyectos ETL (Extract, Transform, Load). En este ejercicio, hemos usado MySQL junto con Python para demostrar cómo se puede automatizar esta tarea.
Primero, verificamos si la base de datos existe y, si no es así, la creamos. Usamos el siguiente comando SQL:
CREATE DATABASE IF NOT EXISTS Akila; USE Akila;
Una vez creada la base de datos, procedemos a la creación de las tablas. Por ejemplo, la tabla actor transformado con su llave primaria y campos personalizados:
CREATE TABLE IF NOT EXISTS actor_transformado ( actor_id INT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), description TEXT );
Esta tabla almacenará transformaciones hechas sobre nuestros datos de actores, especificando campos como first_name y last_name.
¿Cómo ejecutamos las consultas SQL usando Python?
Para garantizar la integridad del proceso, Python ofrece herramientas que facilitan la conexión con bases de datos SQL, como MySQL Connector y SQLAlchemy. Aquí se explica cómo manejar estas operaciones en Python.
Conexión al servidor: Primeramente, establecemos la conexión al servidor de base de datos y creamos un cursor. import mysql.connector
conn = mysql.connector.connect( host="tu_host", user="tu_usuario", password="tu_contraseña", database="Akila" ) cursor = conn.cursor()
Ejecutar las consultas: Tanto para crear la base de datos como las tablas, ejecutamos las consultas con el cursor.
cursor.execute("CREATE DATABASE IF NOT EXISTS Akila;") cursor.execute("USE Akila;") cursor.execute(""" CREATE TABLE IF NOT EXISTS actor_transformado ( actor_id INT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), description TEXT ); """)
Confirmar cambios y cerrar conexión: Después de ejecutar las consultas, confirmamos los cambios y cerramos la conexión. conn.commit() cursor.close() conn.close()
¿Cómo validar la carga y transformación de los datos con Python?
Una vez creadas las tablas, la carga de datos se realiza usando Pandas y SQLAlchemy. Este proceso recopila los datos, los transforma según necesidades y los guarda en las tablas SQL.
Conectar y cargar datos: Usamos pandas para leer y transformar datos, luego los cargamos a nuestras tablas con `SQLAlchemy. from sqlalchemy import create_engine import pandas as pd
engine = create_engine('mysql+mysqlconnector://tu_usuario:tu_contraseña@tu_host/Akila') df = pd.DataFrame({ 'actor_id': [1, 2], 'first_name': ['John', 'Jane'], 'last_name': ['Doe', 'Doe'], 'description': ['Actor principal', 'Actor secundario'] }) df.to_sql('actor_transformado', engine, if_exists='replace', index=False)`
Validar carga de datos: Validamos usando queries SQL para asegurar que los datos estén correctamente cargados.
query = "SELECT * FROM actor_transformado;" df_result = pd.read_sql(query, engine) print(df_result)
Este proceso cautiva cómo utilizar la programación para gestionar bases de datos de manera eficiente. Además, al terminar el ejercicio, es una excelente práctica verificar manualmente los datos en MySQL para garantizar que todo esté en su lugar. ¿Has logrado ejecutar este proyecto? ¿Qué retos enfrentaste? ¡Cuéntanos en los comentarios para que podamos ayudarte! Sigue adelante, cada paso cuenta en tu proceso de aprendizaje.