Modal Nuevo job
El modal Nuevo job se lanza cada vez que hace clic en el botón Nuevo job en la página Jobs (o cuando otros flujos de trabajo se refieren al motor de trabajos). Es un formulario multi-panel que se adapta a sus selecciones para producir ya sea un trabajo único o un pipeline reutilizable.
┌─────────────────────────────────────────────────────────────────────┐
│ Nuevo job │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ Desde ▾ | Hasta ▾ | Regla ▾ | Opciones de Carga ▾ | … │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ Los paneles se colapsan una vez configurados │
│ para que pueda escanear las filas de resumen │
└─────────────────────────────────────────────────────────────────────┘Cuando se selecciona Ejecución manual o Repetir en el panel Programar, el pie revela un campo requerido para el nombre del pipeline (Escribe el nombre del pipeline) y el botón primario cambia a Guardar como pipeline. En todos los otros casos el botón muestra Ejecutar ahora o Ejecutar más tarde dependiendo de la programación seleccionada. Mientras se envía el trabajo, el botón muestra un estado de carga y no se puede volver a pulsar, de modo que un doble clic no lanza un trabajo duplicado.
Resumen de paneles
| Panel | Propósito | Texto de resumen cuando se colapsa |
|---|---|---|
| Desde | Elegir el tap fuente o un dataset guardado. | Muestra el tap (con insignias de driver/env) o el nombre del dataset. |
| Hasta | Enrutar los datos a un sink, tap, o dataset. | Lista la acción del sink o dataset (nuevo, sobrescribir, fusionar). |
| Regla | Adjuntar una regla de masking opcional y versión de schema. | Muestra la regla seleccionada (o "Sin regla"). |
| Opciones de Carga | Ajustar batches y modo de escritura para el destino seleccionado. | Resume el modo de escritura seleccionado y los tamaños de batch de lectura/escritura. |
| Opciones de transformación (condicional) | Configurar determinismo, comportamiento del diccionario y manejo de foreign-keys cuando una regla está activa. | Muestra determinismo + estado del diccionario. |
| Programar | Decidir cuándo y con qué frecuencia ejecutar el trabajo. | Muestra "Ejecutar: Ahora", la fecha programada o la cadencia del pipeline. |
Las siguientes secciones detallan cada campo configurable.
Panel Desde
| Campo | Control | Descripción | Dependencias & valores por defecto |
|---|---|---|---|
| Selector de fuente | Botones de radio (Tap, Dataset) | Elegir entre obtener datos directamente de su base de datos fuente (Tap) o comenzar desde un dataset existente. | Por defecto Tap. Seleccionar Dataset habilitará el menú desplegable para elegir datasets. |
| Resumen del Tap | Información de solo lectura con insignias | Muestra el nombre de su base de datos fuente, junto con la información del ambiente y driver. | Siempre visible para confirmar su ambiente fuente antes de ejecutar. |
| Dataset | Menú desplegable | Elegir un dataset existente para usar como fuente de datos. | Requerido cuando se selecciona Dataset como fuente. Deshabilitado cuando se selecciona Tap como fuente. |
Comportamiento interno:
- Elegir Tap mantiene el tipo de trabajo alineado con el destino (pump/dump).
- Seleccionar un dataset almacena su ID para uso en pasos posteriores (las operaciones de fusión y sobrescritura lo requieren).
Panel Hasta
| Opción de destino | Controles adicionales | Descripción | Dependencias & valores por defecto |
|---|---|---|---|
| Sink | Menú desplegable | Enviar la salida a uno de sus destinos configurados. | Requerido cuando se selecciona. Establece el tipo de ejecución a load-to-sink. El tipo de trabajo se convierte en pump (fuente tap) o load (fuente dataset). |
| Sobreescribir tap actual | Casilla Generar un backup | Escribir los datos directamente de vuelta a su base de datos fuente (solo disponible para ciertos tipos de bases de datos). | Deshabilitado a menos que su base de datos fuente soporte operaciones de sobrescritura. Fuerza el modo de escritura a Actualizar. Generar un backup guarda las filas originales en un dataset de backup antes de sobreescribirlas. |
| Nuevo dataset | Campo de texto | Crear un nuevo dataset para almacenar sus resultados; dejar en blanco para auto-generar un nombre. | Disponible para todos los tipos de fuente. Establece tipo de trabajo a dump para fuentes tap, o pump para copias de dataset. |
| Sobreescribir dataset | Menú desplegable | Reemplazar todos los datos en un dataset existente con sus nuevos resultados. | Requerido cuando se selecciona. Mantiene tipo de trabajo sincronizado con la fuente (dump/pump). |
| Combinar con conjunto de datos | Menú desplegable | Agregar nuevos datos a un dataset existente, combinando registros basados en su configuración del modelo. | Requerido cuando se selecciona. Disponible para fuentes tap y dataset. |
Detrás de escena el modal recalcula automáticamente los ajustes cada vez que cambia su fuente o destino. Esto previene combinaciones incompatibles (por ejemplo, cuando sobrescribe su base de datos fuente, ciertos modos de escritura como Truncar o Drop se deshabilitan automáticamente).
Panel Regla
| Campo | Control | Descripción | Notas |
|---|---|---|---|
| Regla | Menú desplegable | Adjuntar una regla de transformación/anonimización. | Por defecto ninguna. Obtiene opciones de la regla para que los paneles Opciones de Carga y Opciones de transformación reciban valores prellenados. |
| Versión de schema | Menú desplegable | Elegir el snapshot del schema que debe usarse durante la ejecución. | Poblado desde las versiones disponibles del modelo. La última versión está etiquetada (Último). |
| Concurrencia | Entrada numérica | Número de streams concurrentes: entidades procesadas en paralelo, o rangos de claves de una tabla grande. | Por defecto el valor de la regla (1 si no tiene). El ajuste del servidor jobs.concurrent es un mínimo: un job nunca se ejecuta con menos streams. |
| Continuar reportando después de fallar | Casilla de verificación | Si una entidad falla, las demás entidades siguen (por defecto: habilitado). | Aun así el job termina fallido y puede reiniciarse para las entidades que fallaron. Deshabilitado, el job se detiene en el primer fallo. |
| Reintentar al fallar | Casilla de verificación | Reintenta los batches de escritura que fallan dividiéndolos a la mitad hasta aislar el registro que falla (por defecto: deshabilitado). |
Seleccionar una regla desbloquea el panel Opciones de transformación descrito a continuación.
Opciones de transformación (condicional)
| Campo | Descripción | Detalles clave |
|---|---|---|
| Determinismo | Alternar entre Aleatorio y Determinista. | El modo determinístico requiere una semilla y garantiza salidas repetibles. Un job determinístico sin semilla (por ejemplo, desde las opciones por defecto de una regla) falla al iniciar con Deterministic mode requires a seed. |
| Semilla | Entrada numérica con botón "Generar". | Habilitada solo en modo determinista. Acepta valores 1-9,999,999. La semilla se aplica a todas las entidades de la regla; el modo Aleatorio la ignora. |
| Comprobar las FK | Menú desplegable (Auto, No comprobar, Forzar comprobación). | Influye en throughput vs garantías de integridad referencial. |
| Diccionario | Grupo de radio (Sin diccionarios, Reutilizar valores en la misma entidad+campo, Reutilizar valores con la misma etiqueta o la misma entidad+campo, Reutilizar valores en todos los campos) más las casillas Cachear diccionario, Almacenar nuevas transformaciones en el diccionario, Sobrescribir diccionario existente e Ignorar los valores ya anonimizados (solo al sobreescribir el tap actual). | Refleja el comportamiento del diccionario documentado en la guía de Diccionario. Las casillas se deshabilitan con Sin diccionarios. |
Panel Opciones de Carga
Opciones de Carga solo aparece cuando el destino implica escribir a un sink o tap. Para copias solo de dataset el panel se oculta automáticamente.
| Campo | Control | Descripción | Comportamiento & valores por defecto |
|---|---|---|---|
| Entidades objetivo | Menú desplegable | Estrategia de escritura: Truncar, Drop, Añadir, Actualizar, Combinar. | Por defecto Truncar. Las opciones disponibles dependen del tipo de destino seleccionado. Sobrescribir el tap restringe la lista a Actualizar. |
| Contenido del stream | Menú desplegable | Controlar qué tipo de datos se cargan en la base de datos. | Opciones: Datos y metadatos (por defecto), Sólo datos, Sólo metadatos. |
| Longitud del batch de lectura | Entrada numérica | Registros obtenidos por batch desde la fuente. | Por defecto 32768. Las reglas pueden ajustar este valor. |
| Longitud de batch de escritura | Entrada numérica | Registros enviados por batch al destino. | Por defecto 32768. |
Opciones de contenido del stream
La configuración de Contenido del stream determina qué tipo de información se escribe en su base de datos durante la ejecución del trabajo:
- Datos y metadatos (por defecto): Carga tanto sus registros de datos reales como metadata adicional sobre el procesamiento, incluyendo información del schema y estadísticas del trabajo.
- Sólo datos: Carga solo sus registros de datos reales sin ninguna información adicional de metadata.
- Sólo metadatos: Carga solo información de metadata sobre el procesamiento del trabajo sin sus registros de datos reales.
Impacto del tamaño de batch de escritura
El tamaño de batch de escritura afecta cómo se realizan los commits a su base de datos:
- Tamaños de batch más pequeños: Proporcionan commits más frecuentes, lo cual puede ser útil para monitorear el progreso pero puede resultar en un procesamiento más lento debido al overhead de transacciones aumentado.
- Tamaños de batch más grandes: Reducen el overhead de transacciones y pueden mejorar el throughput general, pero proporcionan actualizaciones de progreso menos frecuentes y pueden consumir más memoria durante el procesamiento.
Comportamiento de la concurrencia
El ajuste Concurrencia del panel Regla controla el procesamiento paralelo:
- Cada stream procesa una tabla diferente, así que se procesan varias tablas a la vez.
- Con Concurrencia mayor que 1, una tabla grande leída por clave primaria o row id puede dividirse en rangos de claves que se leen y escriben en paralelo, cada rango en uno de los streams. Consulte Bases de datos grandes para saber cuándo se divide una tabla.
- Un trabajo determinístico (con semilla) no divide las tablas en rangos de claves, porque sus valores aleatorios siguen el orden de los registros.
- El trabajo se ejecuta con el mayor entre este valor y el ajuste del servidor
jobs.concurrent.
Visualización de tamaño de batch y concurrencia
A continuación se muestra una visualización que demuestra cómo los tamaños de batch de lectura y escritura interactúan con los trabajadores concurrentes:
Entendiendo la contrapresión (backpressure)
Cuando el tamaño del batch de lectura es significativamente mayor que el tamaño del batch de escritura, puede ocurrir contrapresión (backpressure). Esto significa que los datos se leen de la fuente más rápido de lo que se pueden escribir en el destino, causando una acumulación de datos en memoria.
Por ejemplo, si configura:
- Tamaño de batch de lectura: 100,000 registros
- Tamaño de batch de escritura: 1,000 registros
- Concurrencia: 3
Cada trabajador procesa 100,000 registros antes de pasar al siguiente batch, pero solo escribe 1,000 registros a la vez. Esto crea un buffer donde los datos procesados esperan ser escritos, consumiendo memoria. El sistema puede ralentizarse al intentar gestionar este backlog, y en casos extremos, podría quedarse sin memoria.
Para optimizar el rendimiento y el uso de memoria:
- Mantenga los tamaños de batch de lectura y escritura relativamente equilibrados
- Si necesita batches de lectura más grandes, considere aumentar proporcionalmente los tamaños de batch de escritura
- Monitoree el uso de memoria de su sistema durante la ejecución del trabajo
Panel Programar
| Elección | Campos adicionales | Resultado | Etiqueta del botón primario |
|---|---|---|---|
Ejecutar ahora | Ninguno | El trabajo se envía inmediatamente. | Ejecutar ahora |
Programar | Selector de fecha y hora | Crea una ejecución programada única; aparece en la pestaña de jobs programados hasta la ejecución. | Ejecutar más tarde |
Ejecución manual | Nombre del pipeline (en el pie del modal) | Guarda la configuración como un pipeline manual; no se encola ejecución. | Guardar como pipeline |
Repetir | Próxima ejecución en (fecha y hora), Repetir cada (número y unidad Hora/Día/Mes/Año), Nombre del pipeline | Produce un pipeline con metadata de recurrencia. | Guardar como pipeline |
Resúmenes de schedule cuando se colapsa
Cuando configura sus opciones de programación, el panel se colapsará y mostrará un resumen de su selección:
┌──────────────────┬──────────────────────────────────────────────┐
│ Ejecutar ahora │ El resumen muestra: "Ejecutar: Ahora" │
├──────────────────┼──────────────────────────────────────────────┤
│ Programar │ "Ejecutar a las:" + fecha y hora programada │
├──────────────────┼──────────────────────────────────────────────┤
│ Ejecución manual │ Muestra "Ejecutar pipeline manualmente" │
├──────────────────┼──────────────────────────────────────────────┤
│ Repetir │ Fecha/hora de la próxima ejecución + │
│ │ intervalo (p. ej. "Ejecutar a las: │
│ │ 2024-07-24 18:00:00 / Cada 1 day") │
└──────────────────┴──────────────────────────────────────────────┘Uniéndolo todo
- Comience con Desde y Hasta. Estos dos paneles determinan cómo fluirán sus datos y configuran automáticamente los ajustes apropiados para los pasos siguientes.
- Opcionalmente seleccione una Regla para aplicar lógica de masking o transformación; hacerlo habilitará opciones adicionales de configuración.
- Use Opciones de Carga y Opciones de transformación para ajustar finamente throughput, determinismo y manejo del diccionario.
- Finalice en el panel Programar. Si opta por crear un pipeline reutilizable, proporcione un nombre único en el pie del modal antes de guardar.
- Revise los resúmenes colapsados. Cada encabezado destaca campos requeridos faltantes en naranja para que las configuraciones incorrectas sean fáciles de detectar.
Cerrar el modal limpia todas sus selecciones para que cada nuevo trabajo comience con ajustes por defecto limpios.