DWH & ETL (PostgreSQL)
Replicación controlada + transformaciones con procedimientos y logging por paso. Índices y vistas materializadas para baja latencia.
-- Ejemplo: procedimiento con logging por paso
CALL public.proc_month_bill_billdetail(0);
-- Resultado: INSERT INTO dw_logs_procedures
-- (procedure_name, step, rows_affected, duration_ms)
-- VALUES ('proc_month_bill_billdetail', 'upsert', 1247, 342);
Código fuente: Bill+Detail · Order+OrderProduct · Refresh MVs
Orquestación (de cron a n8n)
Reemplazo de cron por n8n: programaciones, reintentos, notificaciones y auditoría visual.
-- Pipeline ETL completo ejecutado por n8n
CALL public.proc_month_user_data(0);
CALL public.proc_month_business_all(0);
CALL public.proc_month_product_group(0);
CALL public.proc_month_order_orderproduct(0);
CALL public.proc_month_bill_billdetail(0);
CALL public.proc_refresh_all_views();
Workflow JSON: ver en GitHub
Dashboard
KPIs, comparativos y filtros sobre MVs (mv_ventas_dia/mes, mv_resumen_clientes_dia/mes). Datos anonimizados.
-- Vistas materializadas optimizadas para el dashboard
REFRESH MATERIALIZED VIEW CONCURRENTLY mv_ventas_dia;
REFRESH MATERIALIZED VIEW CONCURRENTLY mv_ventas_mes;
REFRESH MATERIALIZED VIEW CONCURRENTLY mv_resumen_clientes_dia;
REFRESH MATERIALIZED VIEW CONCURRENTLY mv_resumen_clientes_mes;