Saltar a contenido

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.