esvdev_logo

Data Engineering 6 - Extracción y Carga de Datos con Python

Publicado: mié, 7/1/2026

| Actualizado: mié, 7/1/2026

Una guía de librerías que no vas a querer perderte

Introducción

Cuando hablamos de Data Engineering, gran parte del trabajo empieza siempre en el mismo lugar: conectarse a un sistema y traer datos.

En Python, esto se resuelve con librerías que funcionan como “traductores” entre nuestro código y esos sistemas. ¿Qué librerías tenemos disponibles para extraer datos de una fuente y luego cargarlos en el destino elegido?

En este post vamos a repasar las librerías mas populares y una breve descripción de cada una. Ideal si te estás familiarizando con el rol, venís de otro rol como backend y estás buscando transicionar a Data Engineering o tan solo querés profundizar en el ecosistema de Python. Vamos al grano.

Drivers de bases de datos

Esta categoría involucra a todas aquellas librerías que nos permiten comunicarnos con bases de datos desde Python.

Podemos entender a un driver como un “traductor” que se encarga de facilitarnos la conexión con una base de datos, encapsulando y abstrayendo múltiples operaciones intermedias para que nosotros podamos concentrarnos únicamente en qué queremos decirle a la base de datos objetivo, y no en cómo hacerlo a bajo nivel.

Un driver requiere el uso de credenciales de autenticación (por ejemplo, usuario y contraseña, certificados, llaves privadas para conexiones vía SSH, entre otros) para crear una conexión. Una vez establecida dicha conexión —que en términos prácticos suele ser un objeto, es decir, una instancia de una clase provista por la librería— podemos:

Independientemente del enfoque que elijamos (SQL directo u ORM), en líneas generales podremos:

Te comparto 4 librerías que muy probablemente necesites utilizar en algún punto de tu carrera:

SDKs para proveedores Cloud

Muchos proveedores de nube pública, como AWS, GCP y Azure, cuentan con su propio SDK (Software Development Kit) que nos permite interactuar de forma programática con los servicios que ofrecen. En otras palabras, podemos crear, modificar y eliminar recursos desde nuestro lenguaje de programación favorito, en lugar de hacerlo exclusivamente a través de la interfaz web.

En el contexto de pipelines de datos, estos SDK suelen utilizarse para extraer datos desde servicios de almacenamiento de objetos como S3 (AWS) o Cloud Storage (GCP) y, luego del procesamiento o transformación correspondiente, cargarlos nuevamente en el mismo servicio o en otro distinto. Un patrón común es almacenar los datos crudos y los datos procesados en rutas diferentes dentro del mismo bucket (por ejemplo, distintos prefijos en S3), aunque también es habitual cargar los resultados finales en servicios como RDS (bases de datos gestionadas en AWS) o Azure SQL Database.

A continuación, un breve repaso de cómo se organiza el acceso a estos servicios en cada proveedor:

APIs

Muchos sistemas exponen datos mediante APIs. Es por ello que las APIs son consideradas en la lista de source systems (sistemas fuente), lugares desde donde debemos extraer datos para transformación y posterior carga.

En términos generales, al comunicarnos con una API lo que hacemos es enviar una petición HTTP (por ejemplo, GET, POST, PUT, etc.), acompañada de ciertos parámetros, encabezados y, en algunos casos, un cuerpo (body). Como respuesta, la API nos devuelve los datos solicitados, habitualmente en formatos como JSON o XML.

Archivos

Este apartado puede subdividirse en dos grandes grupos: archivos locales (los que tenés en tu computadora o en el filesystem del entorno donde corre tu código) y archivos que deben extraerse desde o cargarse hacia servidores que utilizan protocolos como FTP y/o SFTP.

Archivos locales

Recomendación: si vas a lidiar frecuentemente con archivos Excel, pandas puede alivianarte bastante el proceso.

A través de métodos como read_excel, podés importar los datos del archivo directamente a un DataFrame, una estructura en memoria que ofrece muchas abstracciones y utilidades para trabajar con datos tabulares.

Internamente, pandas se apoya en varias de las librerías mencionadas anteriormente. Mediante el argumento engine de read_excel, podés alternar entre distintos motores de lectura.

Esto resulta muy útil para implementar estrategias de fallback: por ejemplo, si openpyxl no logra parsear un archivo, podés capturar la excepción y volver a intentar usando calamine como motor alternativo.

Servidores FTP/SFTP

Estos servidores se utilizan típicamente para proveer o intercambiar datos con clientes o terceros fuera de tu compañía. Como Data Engineer, es bastante común tener que conectarse a este tipo de servidores para extraer datos de un cliente, realizar procesos de transformación y limpieza, y luego devolver el resultado ya sea en una ruta específica del mismo servidor o cargándolo en un data warehouse como Snowflake para su posterior análisis.

Hay varios puntos importantes a tener en cuenta al trabajar con este tipo de servidores:

Conclusión

Como vimos, existen muchas librerías en Python para extracción y carga de datos. El truco es elegir la herramienta adecuada para la situación correcta.

Además, está bueno saber que Python de por sí viene equipado con librerías para distintos escenarios, por lo que salir corriendo a instalar librerías de terceros no siempre tiene que ser la mejor alternativa.

¿Crees que falta alguna librería para agregar? ¿Hay algo que debería corregir? Escribime por X o LinkedIn (links en footer), siempre estoy atento a cualquier feedback que puedan darme. La idea no es demostrar quién sabe más, sino llegar a las conclusiones correctas mediante información precisa.

Próximamente, vamos a charlar sobre cómo abordar el proceso de transformación de datos en Python a través de librerías.

PD: te odio Excel.

Este contenido salió primero en mi newsletter “El Ingeniero Consciente”, varios días antes de publicarse como blog post. ¿Te gustaría recibir este tipo de material antes que nadie, directo en tu correo y totalmente gratis? ¡Sumate con este enlace!

Tags:

#python #data-engineering

Elias Velazquez photo

Escrito por:

Elias Velazquez

Data Engineer | Developer | Musico | Nerd de yerbas varias