{"id":30209060,"url":"https://github.com/marcosach/tp-infra","last_synced_at":"2026-04-17T05:03:03.212Z","repository":{"id":308896053,"uuid":"1034136757","full_name":"MarcosACH/tp-infra","owner":"MarcosACH","description":"Este repositorio contiene todos los archivos que componen al trabajo práctico final de la materia Infraestructura para la Ciencia de Datos de la Licenciatura en Ciencia de Datos (UNSAM).","archived":false,"fork":false,"pushed_at":"2025-08-08T13:43:56.000Z","size":642,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-08T15:25:44.321Z","etag":null,"topics":["bigquery","buckets","datamart","datawarehouse","etl","gcp","gcs","pipelines","python","sql"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarcosACH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-07T22:58:28.000Z","updated_at":"2025-08-08T13:47:43.000Z","dependencies_parsed_at":"2025-08-08T15:25:46.429Z","dependency_job_id":"6716e85d-e095-4c22-b8fe-45b68a58bebf","html_url":"https://github.com/MarcosACH/tp-infra","commit_stats":null,"previous_names":["marcosach/tp-infra"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/MarcosACH/tp-infra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcosACH%2Ftp-infra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcosACH%2Ftp-infra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcosACH%2Ftp-infra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcosACH%2Ftp-infra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarcosACH","download_url":"https://codeload.github.com/MarcosACH/tp-infra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcosACH%2Ftp-infra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31915900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bigquery","buckets","datamart","datawarehouse","etl","gcp","gcs","pipelines","python","sql"],"created_at":"2025-08-13T19:01:03.084Z","updated_at":"2026-04-17T05:03:03.176Z","avatar_url":"https://github.com/MarcosACH.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TP Final - Infraestructura para Ciencia de Datos\n\n**Universidad Nacional de San Martín (UNSAM)**\n**Licenciatura en Ciencia de Datos**\n\n*Integrantes:* Lucas Golchtein, Marcos Achaval, Ludmila Cáceres, Iván Vergara\n\n---\n\n## Descripción del Proyecto\n\nEste proyecto implementa una **arquitectura completa de datos** que incluye:\n\n- **Generación de datos sintéticos** de ventas para distribuidoras\n- **Pipeline ETL** para procesar datos desde Storage hasta Data Marts\n- **Data Warehouse** con esquema estrella\n- **Data Marts especializados** por área de negocio\n\n## Arquitectura\n\n```\n📁 Datos Raw (Google Cloud Storage)\n    ↓\n📊 Dataset RAW (BigQuery)\n    ↓\n🏢 Data Warehouse (BigQuery)\n    ↓\n📈 Data Marts (BigQuery)\n    ├── Marketing\n    ├── Logística  \n    └── Finanzas\n```\n\n## Estructura del Proyecto\n\n```\ntp-infra/\n├── 📁 src/                          # Código fuente\n│   ├── crear_raw.py                 # Carga datos RAW\n│   ├── crear_data_warehouse.py      # Construye DWH\n│   ├── crear_data_marts.py          # Construye Data Marts\n│   └── generador_de_archivos.ipynb  # Generación de datos\n├── 📁 config/                       # Configuración\n│   └── config.py                    # Variables centralizadas\n├── 📁 docs/                         # Documentación\n│   ├── der_estrella_dwh.mermaid     # Diagrama DER\n│   ├── diagrama_flujo_informacion.drawio # Diagrama de flujo\n│   ├── especificación.xlsx          # Especificaciones del proyecto\n│   └── presentación_final.pdf       # Presentación del TP\n├── .env.example                     # Plantilla de configuración\n├── .gitignore                       # Archivos ignorados\n├── requirements.txt                 # Dependencias Python\n└── README.md                        # Este archivo\n```\n\n## Configuración\n\n### 1. Prerrequisitos\n\n- **Python 3.8+**\n- **Cuenta de Google Cloud Platform**\n- **Proyecto en GCP con BigQuery habilitado**\n- **Bucket en Google Cloud Storage**\n\n### 2. Instalación\n\n```bash\n# Clonar repositorio\ngit clone https://github.com/MarcosACH/tp-infra.git\ncd tp-infra\n\n# Instalar dependencias\npip install -r requirements.txt\n\n# Configurar credenciales\ncp .env.example .env\n# Editar .env con tus credenciales reales\n```\n\n### 3. Configurar Credenciales\n\n1. **Crear archivo `.env`** desde la plantilla:\n\n   ```bash\n   cp .env.example .env\n   ```\n2. **Descargar credenciales de GCP**:\n\n   - Ve a Google Cloud Console\n   - IAM \u0026 Admin → Service Accounts\n   - Crea/descarga archivo JSON de credenciales\n3. **Completar `.env`**:\n\n   ```bash\n   GCP_PROJECT_ID=tu-proyecto-gcp\n   GCP_BUCKET_NAME=tu-bucket-datos\n   GOOGLE_APPLICATION_CREDENTIALS=./config/tu-archivo-credenciales.json\n   ```\n\n## Uso\n\n### Generar Datos Sintéticos\n\n1. Abrir `src/generador_de_archivos.ipynb`\n2. Configurar parámetros (días, distribuidores, clientes)\n3. Ejecutar todas las celdas\n4. Los datos se suben automáticamente a Google Cloud Storage\n\n### Ejecutar Pipeline Completo\n\n```bash\ncd src\npython crear_raw.py              # 1. Cargar datos RAW\npython crear_data_warehouse.py   # 2. Construir DWH  \npython crear_data_marts.py       # 3. Construir Data Marts\n```\n\n## Datasets Generados\n\n### RAW Layer\n\n- `archivos_maestro` - Información de clientes y sucursales\n- `archivos_stock` - Inventario por producto y fecha\n- `archivos_ventaclientes` - Transacciones de ventas\n\n### Data Warehouse\n\n- **Dimensiones**: `dim_cliente`, `dim_producto`, `dim_fecha`, `dim_sucursal`\n- **Hechos**: `fact_ventas`, `fact_stock`\n\n### Data Marts\n\n- **Marketing**: Análisis de ventas por cliente, producto y región\n- **Logística**: Optimización de rutas y distribución geográfica\n- **Finanzas**: Control de ingresos, costos y deudas\n\n## Tecnologías Utilizadas\n\n- **Python 3.8+** - Lenguaje principal\n- **Google Cloud BigQuery** - Data Warehouse\n- **Google Cloud Storage** - Almacenamiento de archivos (Bucket)\n- **Pandas** - Manipulación de datos\n- **Faker** - Generación de datos sintéticos\n- **Jupyter Notebooks** - Análisis exploratorio\n\n## Equipo\n\n**Grupo 2 - Infraestructura para Ciencia de Datos**\nUniversidad Nacional de San Martín (UNSAM)\n*Integrantes:* Lucas Golchtein, Marcos Achaval, Ludmila Cáceres, Iván Vergara\n\n## Licencia\n\nEste proyecto es parte del trabajo práctico final de la materia Infraestructura para Ciencia de Datos.\n\n---\n\n## Ayuda y Solución de Problemas\n\n### Error de Credenciales\n\n```bash\n# Verificar que el archivo .env existe y tiene las variables correctas\ncat .env\n```\n\n### Error de Permisos en GCP\n\n- Verificar que el Service Account tiene permisos de BigQuery Admin\n- Verificar que el Service Account tiene permisos de Storage Admin\n\n### Error de Dependencias\n\n```bash\n# Reinstalar dependencias\npip install -r requirements.txt --upgrade\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcosach%2Ftp-infra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcosach%2Ftp-infra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcosach%2Ftp-infra/lists"}