Jobs
La página de Jobs es tu centro operativo para gestionar todos los jobs de procesamiento de datos en tu modelo. Aquí puedes ver todo lo que se ha ejecutado, se está ejecutando o está programado para ejecutarse en el futuro. Es como un panel de control para todas tus operaciones de datos.
Vista general de la página
┌──────────────────────────────────────────────────────────────────────┐
│ Página de Jobs │
│ ┌──────────────────┬─────────────────┐ ┌─────────────────────────┐ │
│ │ Jobs recientes │ Programados │ │ Nuevo job ⊕ • Ordenar ▾ │ │
│ └──────────────────┴─────────────────┘ └─────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Estado | Nombre | Tipo | Regla | ... │ │
│ │ ● | volcado tap→sink │ │
│ │ ○ | descubrimiento nocturno │ │
│ └──────────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘| Área de la interfaz | Qué muestra | Cómo interactuar |
|---|---|---|
Pestañas (Jobs recientes, Jobs programados) | Filtran tu vista entre jobs recientes y jobs programados futuros. | Haz clic en las pestañas para cambiar entre vistas. |
Barra de herramientas (Nuevo job, Ordenar) | Acciones principales para crear nuevos jobs o ordenar los existentes. | Usa el botón Nuevo job para crear una nueva tarea de procesamiento de datos. |
| Tabla de jobs | Tabla que muestra todos tus jobs de procesamiento de datos con su estado y detalles. | Haz clic en cualquier encabezado de columna para filtrar resultados. Haz clic en el nombre de un job para ver detalles. |
Columnas de la tabla de jobs
| Columna | Valor de ejemplo | Qué muestra |
|---|---|---|
Estado | Indicador en ejecución o marca de completado | Estado actual del job. |
Nombre | tap-a-s3 (2024-05-06 01:00) | Nombre descriptivo del job. Haz clic para ver registros detallados. |
Modelo (solo vista del proyecto) | Datos de clientes | A qué modelo de datos pertenece este job. |
Tipo | volcado, carga, bombeo, descubrir, escanear, rollback | Qué tipo de operación realiza el job. |
Regla | Anonimizar PII | Si aplica, qué regla se aplicó a tus datos. |
Creado por | juan.gomez | Quién inició el job. |
Información | Iniciado: 12:21 • Duración: 00:03:18 o Próximo: 07/24/2024 22:00 | Cuándo se inició/terminó el job o cuándo está programado para ejecutarse. |
Acciones | ⋮ menú con acciones disponibles | Acciones contextuales basadas en el estado actual del job. |
Estado de los jobs
| Estado | Qué significa | Qué puedes hacer |
|---|---|---|
en cola | Job aceptado y esperando para iniciar. | Cancelar si es necesario, de lo contrario esperar a que comience. |
en ejecución | Job actualmente procesando datos. | Monitorear el progreso a través de la página de detalles; cancelar si es necesario. |
completado | Job terminado y todas las entidades que debía procesar completadas. | Ver resultados o repetir si es necesario. |
fallido | Una entidad falló, el job terminó con un error, se atascó, se canceló o se interrumpió. | Reiniciar para reanudarlo (jobs dump, pump y load) o volver a ejecutarlo desde el principio. |
programado | Job configurado para ejecutarse en un tiempo futuro. | Editar o cancelar el tiempo programado. |
Cuándo un job cuenta como completado
Un job está completado solo cuando todas las entidades que debía procesar están completadas en el sink. Termina fallido, nunca completado, cuando:
- una entidad falló, o seguía en ejecución cuando el job terminó
- el job terminó con un error (por ejemplo, se perdió la conexión con el origen o con el sink)
- el job se atascó: sin progreso ni heartbeat durante
jobs.stallTimeoutSecsegundos (900 por defecto,0desactiva la comprobación). El registro muestrajob stalled: no progress for N seconds - el job se canceló o se interrumpió (ver más abajo)
Continuar reportando después de fallar (Continue Streaming On Fail, en el panel Regla del Modal Nuevo Job, activado por defecto) solo decide si las demás entidades siguen cuando una falla. Activado, las entidades restantes se siguen procesando, y aun así el job termina fallido para que puedas reiniciarlo para las entidades que fallaron. Desactivado, el job se detiene en el primer fallo.
Los ajustes del servidor mencionados aquí se describen en Configuración de jobs.
Trabajando con jobs
Iniciar nuevos jobs
El botón Nuevo job (+) en la barra de herramientas abre el Modal Nuevo Job, que es la interfaz principal para crear nuevas tareas de procesamiento de datos. El modal proporciona una interfaz de configuración completa con las siguientes capacidades:
Características clave del Modal Nuevo Job:
- Panel Desde: Elige tu fuente (tap o dataset) con información de entorno y driver
- Panel Hasta: Enruta datos a sinks, taps, o crea nuevos datasets
- Panel Regla: Aplica reglas opcionales de transformación o anonimización
- Panel Opciones de carga: Ajusta tamaños de lote, modos de escritura y configuraciones de rendimiento
- Panel Programación: Elige entre ejecución inmediata, programación única, o pipelines recurrentes
Cómo usar:
- Haz clic en el botón Nuevo job (+) en la barra superior derecha
- Sigue los paneles paso a paso para configurar tu flujo de datos
- Elige ejecutar inmediatamente (Ejecutar ahora), programar para más tarde (Ejecutar después), o guardar como pipeline reutilizable
- Revisa los resúmenes de paneles colapsados para asegurarte de que todos los campos requeridos estén configurados
Para información detallada sobre todas las opciones disponibles y configuraciones, consulta la documentación completa del Modal Nuevo Job.
Gestionando jobs existentes
- Haz clic en cualquier nombre de job para ver sus detalles y registros
- Usa el menú de Acciones (⋮) para realizar acciones apropiadas al contexto como:
Cancelar jobs en cola o en ejecución
A veces puedes necesitar detener un job que está ejecutándose actualmente o esperando en la cola. Esto es útil cuando:
- Has iniciado un job por error
- Te das cuenta de que necesitas hacer cambios en la configuración antes de proceder
- El job está tardando más de lo esperado y bloquea otras operaciones
- Has identificado un problema que hace innecesario el job
Qué ocurre al cancelar:
- Un job en cola o programado no se ejecuta.
- Un job en ejecución deja de leer y escribir, y espera a que sus pasos finales restauren el sink (por ejemplo, que vuelvan a crear las constraints y triggers que desactivó) antes de terminar. En tablas grandes esto puede tardar. La espera acaba cuando esos pasos terminan, cuando no envían heartbeat durante
jobs.stallTimeoutSecsegundos, o trasjobs.finishTimeoutSecsegundos (24 horas por defecto). El job termina entoncesfallidocon el motivojob canceled. - Si no puedes esperar y el job sigue apareciendo en ejecución, cancélalo otra vez: termina en el acto, sin esperar a esos pasos. Estos pueden seguir ejecutándose en segundo plano, así que revisa el sink antes de reiniciar el job.
Importante: Cancelar no deshace lo que el job ya escribió. Las entidades que completó permanecen en el sink y las que estaban en curso quedan cargadas a medias. Reinicia el job para terminarlas, o vuelve a ejecutarlo.
Reiniciar jobs fallidos
Reiniciar está disponible para jobs dump, pump y load fallidos que ya no están en ejecución. Ejecuta de nuevo el mismo job, con el mismo nombre y configuración, y continúa desde donde se detuvo la última ejecución:
- Omite las entidades completadas.
- Las demás entidades se reanudan tras el último batch confirmado en el sink (su checkpoint), sin truncar el sink, cuando el número de filas del sink coincide con lo que registró el job. El registro muestra
resuming <entidad> after record N. - Las entidades que no pueden reanudarse empiezan de nuevo desde el principio, y el registro indica por qué (
cannot resume <entidad>, it starts over: ...). Ocurre, por ejemplo, cuando el recuento del sink no coincide, o cuando la tabla no se leyó en un orden estable. Consulta Bases de datos grandes para saber qué tablas pueden reanudarse. - Una entidad cargada en modo Append que no puede reanudarse falla en lugar de empezar de nuevo, porque volvería a cargar las filas que escribió la última ejecución. Vacíala, o cárgala con Truncate.
- El job conserva su diccionario: no se sobrescribe, así que los valores enmascarados en la ejecución anterior mantienen el mismo valor enmascarado.
- Un dump sigue escribiendo en el dataset que abrió la primera ejecución, así que las entidades que terminó permanecen ahí.
- Un load o pump sobre su propio tap con backup de rollback reutiliza el backup que hizo la primera ejecución, que guarda las tablas como estaban antes del job.
Un job cuyo worker sigue vivo no puede reiniciarse. Si acabas de cancelarlo y aún está restaurando el sink, el reinicio se rechaza con "El job sigue en ejecución: cancélalo y espera a que se detenga antes de reiniciarlo". Espera a que termine y vuelve a intentarlo.
Repetir jobs completados
Volver a ejecutar crea un job nuevo que empieza completamente desde el principio, reutilizando todas las configuraciones originales del job. No se reanuda nada de la ejecución anterior: un dump escribe en su dataset tal como se configuró (uno nuevo, salvo que sobrescriba o fusione un dataset existente), y un load sobre su propio tap hace un nuevo backup de rollback. ¿Por qué querrías hacer esto?
- Repetir la misma operación: Ejecutar exactamente el mismo análisis, descubrimiento o procesamiento de datos nuevamente con los mismos parámetros
- Actualizar datos: Obtener resultados actualizados basados en el estado actual de tus fuentes de datos
- Probar consistencia: Verificar que el job produce los mismos resultados cuando se ejecuta múltiples veces
- Aplicar a nuevos datos: Si tu fuente de datos ha sido actualizada, repetir el job para procesar la nueva información
Esta es una forma eficiente de repetir operaciones sin tener que reconfigurar todas las opciones.
Como el reinicio, volver a ejecutar se rechaza mientras el worker de la ejecución anterior sigue vivo, por ejemplo mientras un job cancelado restaura el sink: "El job sigue en ejecución: cancélalo y espera a que se detenga antes de volver a ejecutarlo".
Eliminar historial de jobs
Eliminar jobs completadas de tu lista de historial. Esta acción:
- Limpia tu lista de jobs para mejor organización
- Remueve jobs antiguas que ya no son relevantes
- Ayuda a mantener una vista enfocada en operaciones recientes y activas
Eliminar el historial de jobs solo remueve el registro de esta lista - no afecta ningún dato que fue procesado o creado por la job misma.
Descargar configuración de reglas como YAML
Exportar la configuración de reglas utilizada en una job como archivo YAML. Esto es útil cuando:
- Quieres compartir configuraciones de jobs con miembros del equipo
- Necesitas enviar detalles de configuración al soporte de Gigantics para solución de problemas
- Quieres replicar un problema o una configuración específica de job
- Necesitas auditar o documentar las reglas aplicadas a tus datos
- Estás migrando configuraciones entre ambientes
Jobs interrumpidos
Un job en ejecución pertenece al worker de jobs que lo ejecuta. Mientras el job se ejecuta, el worker renueva un lease sobre él cada jobs.heartbeatSec segundos (15 por defecto). Si el worker se detiene, el job termina como interrumpido:
| Qué ocurrió | Qué hace el job |
|---|---|
| Se detiene el servidor (SIGTERM o SIGINT, por ejemplo al reiniciar el servicio) | El worker detiene sus jobs en ejecución, espera hasta 10 segundos a que guarden su estado y los termina con el motivo job interrupted: worker stopped. |
| El worker murió (matado, caído, host apagado) | Los demás workers de jobs buscan cada minuto jobs cuyo worker ya no existe: su proceso no existe en el mismo host, no ha renovado el lease en jobs.leaseStaleSec segundos (300 por defecto) o nunca tomó el job. Terminan esos jobs con el motivo job interrupted: .... |
| Vuelve un worker que perdió su lease | Detiene el job sin volver a escribir en él: puede que ahora sea de otro worker. |
Por defecto un job interrumpido termina fallido, y puedes reiniciarlo. Con jobs.autoResume activado, los jobs dump, pump y load interrumpidos se ponen en cola para reanudarse desde sus checkpoints, como haría Reiniciar, hasta jobs.maxAutoResumes veces (3 por defecto). Después terminan fallido. El registro muestra job interrupted (<motivo>), resuming. Los demás jobs, como pipelines, discover y scan, siempre terminan fallido.
La búsqueda de workers muertos se hace en los workers de jobs. Si se detiene el único servidor, sus jobs se terminan cuando vuelve a arrancar. Consulta Configuración de jobs para estos ajustes.
Jobs programados
Las jobs pueden programarse para ejecutarse automáticamente de varias maneras:
| Método de programación | Qué hace |
|---|---|
| Ejecutar ahora | Ejecuta la job inmediatamente. |
| Programación única | Establece una fecha y hora específica para que la job se ejecute. |
| Pipeline manual | Guarda la configuración de la job como una plantilla de pipeline reutilizable. |
| Pipeline recurrente | Crea una job que se repite automáticamente (diaria, semanal, etc.). |
Los jobs programados aparecen en la pestaña Jobs programados hasta que se ejecutan, facilitando ver qué está por venir.
Detalles del job
Haz clic en el nombre de un job para ver su resumen, el progreso de cada entidad y el registro del job.
Resumen
La sección Resumen muestra el tipo, la regla, el estado y el progreso total del job, y estas filas de tiempo:
| Fila | Job terminado o fallido | Job en ejecución |
|---|---|---|
| Inicio | Fecha y hora en que empezó la última ejecución (YYYY-MM-DD HH:mm:ss) | Igual |
| Fin | Hora en que el job terminó o falló (HH:mm:ss) | Hora de fin estimada y tiempo restante, por ejemplo 14:35 (quedan 12m:4s) |
| Duración | Duración de la última ejecución, por ejemplo 1h:5m | Tiempo transcurrido y total estimado, por ejemplo 3m:10s (15m:14s en total) |
| Tasa de transferencia | Registros por segundo, por ejemplo 1,250 reg / s | Igual, se actualiza mientras el job se ejecuta |
Mientras el job se ejecuta, Fin y Duración tienen un icono de ayuda con los textos "Hora de fin estimada según el progreso actual" y "Tiempo total estimado según el progreso actual". La estimación solo se muestra cuando el job ha pasado el 1% de progreso y su tiempo total estimado supera los 30 segundos. Antes de eso, Fin muestra - y Duración muestra solo el tiempo transcurrido.
El progreso total son los registros leídos por todas las entidades del job frente a la suma de sus totales, y se queda como mucho en el 99% hasta que el job termina. Las estimaciones suponen que el resto del job avanza al mismo ritmo: el tiempo total estimado es el tiempo transcurrido multiplicado por el total de registros y dividido por los registros leídos. Se calculan en registros, no en tiempo por entidad, así que son aproximadas cuando las tablas son muy distintas en tamaño o velocidad. Una entidad fallida mantiene su total en el progreso, así que un job con entidades fallidas nunca llega al 100%.
Tras un Reiniciar, Inicio y Duración son los de la última ejecución, mientras que el progreso incluye los registros que ya leyeron las ejecuciones anteriores.
Progreso de las entidades
Cada entidad muestra los registros leídos frente a su total, con una barra de progreso que se pone roja cuando la entidad falla. Dentro del job, cada entidad está running, completed o failed. Una entidad está completed solo cuando su último batch está confirmado en el sink, no cuando se lee su último registro.
El total de una entidad puede ser una estimación de las estadísticas de la base de datos, así que el porcentaje es aproximado. En lecturas filtradas (un where o una consulta propia) de tablas de menos de 5 millones de filas, el job también hace un recuento exacto: junto al stream cuando el driver tiene una conexión libre, antes de él en otro caso. Esto no se puede cambiar en las reglas de Gigantics: la opción exactCount (auto, always, never) solo funciona en las reglas de un fichero debaser.yml usado directamente con el motor debaser. Consulta Opciones de lectura avanzadas.
Registro del job
El registro se abre con las últimas 2.000 líneas del job. Cuando hay más, un botón Cargar líneas anteriores en la parte superior del registro carga las 2.000 líneas previas. Haz clic de nuevo para ir más atrás. Mientras el job se ejecuta, las líneas nuevas siguen llegando abajo.
Descargar registro lee del servidor el registro completo, no solo las líneas cargadas en la vista, con los niveles de log seleccionados.
Lo que conserva el registro depende de dos ajustes del servidor (ver Configuración de jobs):
jobs.logRetentionDays: las líneas con más de este número de días se borran, incluso las de un job que sigue en ejecución. Si no tiene valor, se aplicajobLogRetentionDays(90 por defecto);0las conserva para siempre.jobs.logTraceLevel: las líneas de traza que se guardan en el registro de un job cuyo pipeline no tiene nivel de log. Con el valor por defecto1, no se guardan el SQL de cada consulta (nivel 3) ni las líneas de cada batch (nivel 4).
Shard workers
Cuando otros workers de jobs ayudan a un pump a procesar los rangos de sus tablas grandes (jobs.shardWorkers, ver Bases de datos grandes), cada ayudante se ejecuta como un job propio que no aparece en las listas de jobs. Sus líneas aparecen en el registro del job al que ayuda, con el prefijo [shard worker N], y el progreso de ese job suma lo que procesan los ayudantes. Si un ayudante muere, su parte falla y el job termina fallido, así que puedes reiniciarlo.
Origen de los jobs
Las jobs provienen de varias acciones en la plataforma:
- Discover — Escaneando tus fuentes de datos en busca de información sensible
- Reglas — Operaciones de anonimización o transformación de datos
- Conjuntos de datos — Operaciones de exportación, copia o fusión de datos
- Destinos — Cargando datos procesados a destinos
- Pipelines — Secuencias automatizadas de jobs
Cada vez que configuras una de estas operaciones, si está programada para ejecutarse en el futuro, aparecerá en tu pestaña de Jobs programados.