# 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` + `` - **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)