Skip to content

Proceso ETL desarrollado en Python. Descarga de dataset en csv, normalización y limpieza de datos, creación de una base de datos local y carga final de los datos. Automatización del proceso con la librería Prefect.

Notifications You must be signed in to change notification settings

alvaroggomez/etl_pipeline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 ETL Pipeline con Pandas y SQLAlchemy

Este proyecto es un primer acercamiento al procesamiento de datos con Python, enfocado en la práctica de técnicas de ETL (Extract, Transform, Load).

🚀 Descripción

El proyecto se compone de tres partes principales:

1️⃣ Configuración base de datos
Definición y creación de las tablas de la base de datos

2️⃣ Proceso ETL
Parte principal del proyecto cuyo flujo de trabajo es el siguiente:

  • Lectura de datos de archivos CSV
  • Limpieza y transformación de los datos. Eliminación de valores nulos, renombre de columnas, transformación de ciertos valores, creación de nuevo atributo, etc.
  • Carga de datos limpios en la base de datos PostgreSQL

3️⃣ Ejecución de consultas
Analizar y extraer información relevante. Se incluyen algunas queries como ejemplo.

📂 Sobre los datos

Los datos utilizados en este proyecto provienen de este dataset. Está compuesto por respuestas de personas encuestadas e incluye una variedad de atributos personales y psicológicos (ocupación, días al año en casa, cambios de humor, estrés creciente ...).
Esta información permite explorar cómo distintos factores personales y psicológicos se relacionan entre sí, y puede ser útil para analizar temáticas relacionadas con la salud mental.

🛠️ Tecnologías usadas

  • Python 🐍
  • PostgreSQL 🗄️
  • Pandas.
  • Prefect.
  • SQLAlchemy.

⚙️ Instalación

*Desarrollado en entorno Windows utilizando Visual Studio

  1. Descargar PostgreSQL. Una vez instalado, se puede usar pgAdmin para gestionar la base de datos.

  2. Clonar el repositorio.
    git clone https://github.com/alvaroggomez/etl_pipeline.git

  3. Crear entorno virtual. Recomendable para manejar las dependencias del proyecto sin interferir con otras configuraciones del sistema.
    python3 -m venv env

  4. Instalar las dependencias.
    pip install -r requirements.txt

  5. Crear archivo .env en la raíz del proyecto basado en el archivo .env.example. Recomendable seguir el ejemplo y crear una carpeta para los csvs a leer y otra donde se guardarán los csvs ya leidos y tranformados.

  6. Comprobar que se establece una conexión con la base de datos.
    python .py

  7. Crear tablas necesarias en la base de datos. Para ello es necesario ejecutar el archivo create_tables.py
    python create_tables.py

Una vez se ha configurado todo el proyecto, se podrá ejecutar el flujo ETL
python main.py

Si se desea hacer consultas se puede iniciar el archivo queries.py
python queries.py

📝 Archivos

  • main.py: Contiene el flujo principal de procesamiento de datos (ETL).
  • create_tables.py: Creación de las tablas de la base de datos.
  • data_processing.py: Lee, limpia y transforma los datos de los archivos CSV.
  • load_data.py: Carga los datos tranformados en la base de datos.
  • archivo_hash.py: Funciones para comprobar si un archivo ya se ha procesado previamente. En caso negativo, le asigna un hash.
  • queries.py: Consultas para analizar los datos.
  • conexion_db.py: Archivo para comprobar que se ha establecido la conexion con la base de datos.
  • .env.example: Variables necesarias como las credenciales de la base de datos y las rutas de los archivos.
  • requirements.txt: Lista de dependencias del proyecto.
  • MentalHealthDataset.csv: Dataset usado en este proyecto

About

Proceso ETL desarrollado en Python. Descarga de dataset en csv, normalización y limpieza de datos, creación de una base de datos local y carga final de los datos. Automatización del proceso con la librería Prefect.

Topics

Resources

Stars

Watchers

Forks

Languages