ETL Bitcoin

Este proyecto consiste en un análisis exploratorio de datos (EDA) aplicado a un conjunto de ventas globales con el objetivo de identificar patrones, correlaciones y oportunidades de negocio en distintos mercados.

Trabajo realizado

 

Este proyecto implementa un pipeline completo de ETL para monitorear el precio de Bitcoin en tiempo real. Utiliza datos obtenidos desde la API pública de CoinGecko, y los procesa para almacenarlos en una base de datos PostgreSQL. El pipeline está completamente dockerizado, lo que permite su ejecución en cualquier entorno de manera consistente mediante docker compose, incluyendo la base de datos, la extracción, transformación, carga y automatización del proceso.

Características principales del proyecto:

- Extracción de datos: Se conecta a la API de CoinGecko y recupera tickers de múltiples exchanges. Si la API falla, el sistema genera datos simulados automáticamente para no interrumpir el proceso.

- Transformación: Se procesan los datos crudos para agregarlos por minuto, calculando métricas como precios mínimo, máximo, promedio ponderado por volumen, precios de apertura/cierre, volumen total y número de exchanges únicos.

- Carga: Los datos transformados se insertan en una tabla PostgreSQL asegurando que no haya duplicados por timestamp. Se verifica la existencia previa de registros con la misma marca de tiempo para mantener integridad.

- Automatización: El pipeline se puede ejecutar de forma automática cada cierto tiempo (por ejemplo, cada 2 minutos) gracias al módulo schedule.

Módulos organizados:

  • extract.py: Lógica de extracción de datos reales o simulados.

  • transform.py: Agregación y limpieza de datos.

  • load.py: Inserción en PostgreSQL.

  • models.py: Definición del esquema de base de datos.

  • main.py: Orquestador principal del ETL.

  • scheduler.py: Automatización periódica del proceso.

  • Docker: Se incluye un Dockerfile y docker-compose.yml para levantar todos los servicios con un solo comando.

Crea tu propia página web con Webador