Universidad Nacional de San Martín (UNSAM) Licenciatura en Ciencia de Datos
Integrantes: Lucas Golchtein, Marcos Achaval, Ludmila Cáceres, Iván Vergara
Este proyecto implementa una arquitectura completa de datos que incluye:
- Generación de datos sintéticos de ventas para distribuidoras
- Pipeline ETL para procesar datos desde Storage hasta Data Marts
- Data Warehouse con esquema estrella
- Data Marts especializados por área de negocio
📁 Datos Raw (Google Cloud Storage)
↓
📊 Dataset RAW (BigQuery)
↓
🏢 Data Warehouse (BigQuery)
↓
📈 Data Marts (BigQuery)
├── Marketing
├── Logística
└── Finanzas
tp-infra/
├── 📁 src/ # Código fuente
│ ├── crear_raw.py # Carga datos RAW
│ ├── crear_data_warehouse.py # Construye DWH
│ ├── crear_data_marts.py # Construye Data Marts
│ └── generador_de_archivos.ipynb # Generación de datos
├── 📁 config/ # Configuración
│ └── config.py # Variables centralizadas
├── 📁 docs/ # Documentación
│ ├── der_estrella_dwh.mermaid # Diagrama DER
│ ├── diagrama_flujo_informacion.drawio # Diagrama de flujo
│ ├── especificación.xlsx # Especificaciones del proyecto
│ └── presentación_final.pdf # Presentación del TP
├── .env.example # Plantilla de configuración
├── .gitignore # Archivos ignorados
├── requirements.txt # Dependencias Python
└── README.md # Este archivo
- Python 3.8+
- Cuenta de Google Cloud Platform
- Proyecto en GCP con BigQuery habilitado
- Bucket en Google Cloud Storage
# Clonar repositorio
git clone https://github.com/MarcosACH/tp-infra.git
cd tp-infra
# Instalar dependencias
pip install -r requirements.txt
# Configurar credenciales
cp .env.example .env
# Editar .env con tus credenciales reales-
Crear archivo
.envdesde la plantilla:cp .env.example .env
-
Descargar credenciales de GCP:
- Ve a Google Cloud Console
- IAM & Admin → Service Accounts
- Crea/descarga archivo JSON de credenciales
-
Completar
.env:GCP_PROJECT_ID=tu-proyecto-gcp GCP_BUCKET_NAME=tu-bucket-datos GOOGLE_APPLICATION_CREDENTIALS=./config/tu-archivo-credenciales.json
- Abrir
src/generador_de_archivos.ipynb - Configurar parámetros (días, distribuidores, clientes)
- Ejecutar todas las celdas
- Los datos se suben automáticamente a Google Cloud Storage
cd src
python crear_raw.py # 1. Cargar datos RAW
python crear_data_warehouse.py # 2. Construir DWH
python crear_data_marts.py # 3. Construir Data Martsarchivos_maestro- Información de clientes y sucursalesarchivos_stock- Inventario por producto y fechaarchivos_ventaclientes- Transacciones de ventas
- Dimensiones:
dim_cliente,dim_producto,dim_fecha,dim_sucursal - Hechos:
fact_ventas,fact_stock
- Marketing: Análisis de ventas por cliente, producto y región
- Logística: Optimización de rutas y distribución geográfica
- Finanzas: Control de ingresos, costos y deudas
- Python 3.8+ - Lenguaje principal
- Google Cloud BigQuery - Data Warehouse
- Google Cloud Storage - Almacenamiento de archivos (Bucket)
- Pandas - Manipulación de datos
- Faker - Generación de datos sintéticos
- Jupyter Notebooks - Análisis exploratorio
Grupo 2 - Infraestructura para Ciencia de Datos Universidad Nacional de San Martín (UNSAM) Integrantes: Lucas Golchtein, Marcos Achaval, Ludmila Cáceres, Iván Vergara
Este proyecto es parte del trabajo práctico final de la materia Infraestructura para Ciencia de Datos.
# Verificar que el archivo .env existe y tiene las variables correctas
cat .env- Verificar que el Service Account tiene permisos de BigQuery Admin
- Verificar que el Service Account tiene permisos de Storage Admin
# Reinstalar dependencias
pip install -r requirements.txt --upgrade