Initial commit: SaveUrl project migration from Drive
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user