74 lines
2.5 KiB
Markdown
74 lines
2.5 KiB
Markdown
# 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)
|
|
|