Este proyecto tiene como objetivo procesar y transferir datos de compras de dos compañías ficticias. A lo largo del documento se detallan los procedimientos de instalación, ejecución y pruebas necesarias.
Asegúrate de tener instalados los siguientes componentes:
Sigue estos pasos para ejecutar la aplicación dentro de un contenedor Docker.
git clone https://github.com/mtumalan/NT-database.git
cd NT-databasedocker-compose up --buildEsto iniciará un contenedor con PostgreSQL y un servicio de procesamiento de datos.
docker psDeberías ver los servicios postgres_db y data_processor corriendo.
Los datos proporcionados en el dataset se almacenan en PostgreSQL, utilizando el esquema definido en init.sql.
Se utilizó PostgreSQL porque es la base de datos con la que he estado trabajando últimamente y considero que ofrece varias ventajas en la integración con Python, especialmente con SQLAlchemy y Pandas, lo que facilita la manipulación de datos y su almacenamiento eficiente.
El archivo load_data.py es el encargado de extraer la data para la base de datos, limpiarla, extraerla en .csv y crear la vista daily_transactions.
Formato de Exportación
Se eligió CSV porque:
- Es ligero y ampliamente compatible con bases de datos y hojas de cálculo.
- Facilita el análisis y transformación de datos en herramientas externas.
Para cumplir con el esquema definido en init.sql, se realizan las siguientes transformaciones en data_processor:
- Se eliminaron valores no válidos en company_id (por ejemplo, "*******").
- Se reemplazaron valores NaN en company_id con "unknown_company".
- Se asignó 0 a amount cuando estaba vacío.
- Se eliminaron registros con fechas inválidas en created_at.
- Se convirtió amount a tipo numérico (float) para evitar errores en cálculos.
- Se convirtieron created_at y updated_at a tipo datetime para manejar fechas correctamente.
- Se eliminaron valores amount fuera del rango de [1, 10,000,000] para evitar errores en el análisis.