Initial commit: SaveUrl project migration from Drive

This commit is contained in:
Antigravity Migration Agent
2026-05-09 14:20:17 -04:00
commit 9f799c9398
16 changed files with 1439 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
# Instalación local (desarrollo / diagnóstico)
## Objetivo
Aunque el flujo está pensado para ejecutarse en Airflow, esta guía sirve para:
- reproducir fallos fuera del scheduler
- validar conectividad a FTP/SQL/Kafka
- ejecutar pruebas manuales de parsing de URLs
## Requisitos
- Windows (PowerShell) o Linux/macOS con Python 3.x
- Driver ODBC para SQL Server (recomendado: **ODBC Driver 18 for SQL Server**)
- Acceso de red a:
- servidor FTP (`FTP_000oqta_SERVER`)
- SQL Server (`DB_MSSQ_SERVER`)
- Kafka (`BOOTSTRAP_SERVERS` o `BOOTSTRAP_SERVERS_DOCKER`, según corresponda)
## Crear entorno virtual
En PowerShell:
```powershell
cd d:\ProgramGLM\SaveUrl
python -m venv env
.\env\Scripts\Activate.ps1
python -m pip install --upgrade pip
```
## Instalar dependencias
El código importa al menos:
- `requests`
- `pyodbc`
- `kafka` (librería `kafka-python` / `kafka-python-ng`)
- `apache-airflow` (porque `SaveUrl.py` usa `airflow.models.Variable`)
Instalación típica (ajusta según tu entorno):
```powershell
pip install requests pyodbc kafka-python apache-airflow
```
> Nota: instalar Airflow localmente en Windows puede ser complejo. Si tu objetivo es **solo** ejecutar localmente, considera ejecutar en un contenedor Linux o adaptar temporalmente el código para leer variables desde `os.getenv`/`.env`. Esta documentación **no modifica** el código.
## Variables para ejecución local
El `SaveUrl.py` actual lee configuración desde **Airflow Variables** (`Variable.get`). Para ejecutar fuera de Airflow tienes 2 opciones:
1. **Ejecutar dentro de un entorno Airflow** (recomendado) y definir las Variables.
2. **Crear un “shim” local**: arrancar un script wrapper que inicialice Airflow y cargue Variables. (Esto depende de cómo esté configurado tu Airflow local).
Por eso, para validación local rápida sin Airflow, lo más útil suele ser:
- probar funciones aisladas (FTP/SQL) en un REPL, o
- ejecutar dentro de un contenedor Airflow/Composer donde ya existan las Variables.
## Ejecución manual (si ya estás dentro de Airflow)
Si Airflow ya está instalado/configurado y el archivo está en el path correcto, puedes invocar:
```powershell
python -c "from SaveUrl import run_save_url; run_save_url()"
```
## Verificación mínima
- **FTP**: confirma que existe el path base esperado: `FTP_BASE_PATH` + `<code_folder>`
- **SQL**: valida conexión ODBC al servidor y permisos de INSERT/SELECT sobre `URL_FTP`
- **Kafka**: valida que el broker esté accesible y el topic `executions_logs` exista (o que el broker permita auto-create)