Aportes 4

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

La ingesta de datos desde bases de datos es una tarea esencial en proyectos de **ETL** y análisis de datos. Con Python, puedes conectarte a bases de datos populares como **MySQL**, **PostgreSQL**, **SQLite**, **SQL Server**, entre otras, utilizando bibliotecas como `pymysql`, `psycopg2`, o `sqlite3`, junto con `pandas` para manipular los datos. ### **1. Instalación de bibliotecas necesarias** Primero, asegúrate de instalar las bibliotecas necesarias según el tipo de base de datos: * **MySQL**: `pip install pymysql` * **PostgreSQL**: `pip install psycopg2` * **SQL Server**: `pip install pyodbc` * **SQLite**: Biblioteca integrada en Python Adicionalmente, instala `sqlalchemy` y `pandas` para trabajar con conexiones y manipulación de datos. pip install sqlalchemy pandas ### **2. Crear una conexión a la base de datos** El primer paso es establecer una conexión utilizando el **string de conexión** adecuado para tu base de datos. #### **a. MySQL** from sqlalchemy import create\_engine \# String de conexión: MySQL engine = create\_engine("mysql+pymysql://usuario:contraseña@host/nombre\_base\_datos") \# Probar conexión connection = engine.connect() print("Conexión exitosa a MySQL") #### **b. PostgreSQL** from sqlalchemy import create\_engine \# String de conexión: PostgreSQL engine = create\_engine("postgresql+psycopg2://usuario:contraseña@host/nombre\_base\_datos") \# Probar conexión connection = engine.connect() print("Conexión exitosa a PostgreSQL") #### **c. SQLite** from sqlalchemy import create\_engine \# Conexión a un archivo SQLite engine = create\_engine("sqlite:///nombre\_base\_datos.sqlite") \# Probar conexión connection = engine.connect() print("Conexión exitosa a SQLite") ### **3. Consultar datos desde la base de datos** Una vez establecida la conexión, puedes ejecutar una consulta SQL para obtener datos y cargarlos en un **DataFrame** con **pandas**. import pandas as pd \# Consulta SQL query = "SELECT \* FROM nombre\_tabla" \# Leer datos desde la base de datos a un DataFrame df = pd.read\_sql(query, engine) \# Mostrar los primeros registros print(df.head()) ### **4. Guardar los datos procesados (opcional)** Puedes guardar los datos procesados en un nuevo archivo: \# Guardar los datos en un archivo CSV df.to\_csv("datos\_procesados.csv", index=False) \# Guardar los datos en un archivo Excel df.to\_excel("datos\_procesados.xlsx", index=False) ### **5. Manejo de errores comunes** 1. **Error de conexión**: * Verifica el string de conexión (usuario, contraseña, host, puerto, nombre de la base de datos). * Revisa si el servidor de la base de datos está activo. 2. **Error en la consulta SQL**: * Asegúrate de que la tabla y las columnas mencionadas en la consulta existan. * Valida la sintaxis SQL. 3. **Dependencias faltantes**: * Instala las bibliotecas necesarias (`sqlalchemy`, `pymysql`, etc.). ### **6. Ejemplo práctico** Supongamos que tienes una base de datos MySQL con una tabla llamada `empleados`: from sqlalchemy import create\_engine import pandas as pd \# Conexión a MySQL engine = create\_engine("mysql+pymysql://usuario:contraseña@localhost/mi\_base\_datos") \# Consulta SQL query = "SELECT nombre, edad, salario FROM empleados" \# Leer datos en un DataFrame df = pd.read\_sql(query, engine) \# Mostrar los datos print(df) \# Guardar en CSV df.to\_csv("empleados.csv", index=False) print("Datos guardados en empleados.csv") ### **7. Cerrar la conexión** Es importante cerrar la conexión después de procesar los datos: connection.close() print("Conexión cerrada.")
Hola. consulta, y las credenciales de la base de datos?, cadena de conexión?... no veo nada de eso en el ejemplo...
ORM: (Object Relational Mapping, es una técnica de programación que permite la interacción entre bases de datos relacionales y lenguajes de programación orientado a objetos. Un ORM permite que accedamos indirectamente a la base de datos sin utilizar código SQL para gestionar la persistencia de los datos o realizar consultas.
La ingesta de datos desde bases de datos es un proceso fundamental en la ingeniería de datos. Utilizando Python, puedes conectar con bases de datos a través de librerías como `sqlite3` para bases SQLite o `SQLAlchemy`, que permite un enfoque orientado a objetos. Esto incluye definir esquemas, gestionar conexiones y realizar migraciones. Una vez que te conectas, puedes ejecutar consultas SQL y almacenar los resultados en variables para manipularlos, por ejemplo, convirtiéndolos en un DataFrame de Pandas con la función `read_sql()`. Es crucial cerrar la conexión tras finalizar para optimizar recursos.
undefined