RUNBOOK — job-ingesta-salesforce-catalogo¶
Dos jobs con el mismo procedimiento. Reemplazar vN por v4 o v5.
| Dato | v4 | v5 |
|---|---|---|
| Job (panel) | salesforce_catalogo_v4 |
salesforce_catalogo_v5 |
| Programación | 0 8 * * * |
0 14 * * * |
| Comando | .venv/bin/python -m ingesta_salesforce_catalogo v4 |
… v5 |
| Id de auditoría | ID08 - PY_RECIBE_SALESFORCE_ATHENAS_DIARIO |
ID08 - PY_RECIBE_SALESFORCE_METIS_DIARIO |
| Escribe en | ATHENAS: stg.stg_bi_salesforce_catalogo, ods.SP_SALESFORCE_CATALOGO_BI, ods.tbl_control_procesos |
METIS: dwh_bronze.…, dwh_silver.SP_…, dwh_silver.tbl_control_procesos |
| Duración esperada | ~3 min (según el log; ≈ 184 mil filas) | ~3 min |
| Timeout | 20 min (propuesto) | 20 min (propuesto) |
| Logs | /var/log/dabra/salesforce_catalogo_v4/<fecha_hora>.log |
/var/log/dabra/salesforce_catalogo_v5/… |
| Datos | /var/lib/dabra/salesforce_catalogo_v4/{input,tmp} (ZIP y .pdv; ≈ 280 MB, se vacían tras un éxito) |
idem …_v5 |
| Código | Significado | Acción |
|---|---|---|
| 0 | Success o No Data (no se tocó la base; el correo lo indica) |
— |
| 1 | Falló la descarga, la lectura, la carga, el SP o la auditoría | Ver log y correo; reejecutar |
| 2 | Configuración faltante | Revisar .env (v4 exige SALESFORCE_DB_ATHENAS, v5 SALESFORCE_DB_METIS) |
python -m ingesta_salesforce_catalogo vN --dry-run # seguro: no carga, no audita, no avisa
python -m ingesta_salesforce_catalogo vN # real
python -m ingesta_salesforce_catalogo vN --recrear-staging # SOLO si el feed cambió de columnas/tipos
Reproceso: seguro. La tabla de aterrizaje se vacía y se vuelve a cargar en una sola transacción, y el SP vuelve a transformar. Cada ejecución real inserta una fila de auditoría y envía correo.
Si falló la carga a staging: la transacción se revierte y la tabla conserva los datos de la última carga buena; el SP no corre. Si el error dice que las columnas del feed no coinciden: avisar a quien mantiene el SP y, cuando esté listo, reejecutar con --recrear-staging (recrea la tabla con la estructura nueva).
Rollback: no existe. Las tablas finales las modifica el SP; la corrección es reejecutar.
Problemas conocidos: no hay protección contra ejecuciones solapadas fuera de una_sola_instancia del panel. Un fallo de correo solo deja WARNING; un fallo de auditoría hace terminar el job en 1 aunque el SP haya corrido.
Fuente: repositorio job-ingesta-salesforce-catalogo, versión 44c4764. Página generada con tools/publicar_docs.py.