Compartir a través de


Activar trabajos cuando se actualicen las tablas de origen

Puede usar desencadenadores de actualización de tablas para desencadenar una ejecución del trabajo cuando se actualizan las tablas de origen. Use esta característica para ejecutar un trabajo cuando los nuevos datos estén listos sin necesidad de ejecutar continuamente un clúster o conocimientos de los procesos que actualizan una tabla.

¿Cómo funcionan los desencadenadores de actualización de tablas?

Un desencadenador de actualización de tabla comprueba si hay actualizaciones de tabla y, cuando se actualiza una tabla, se ejecuta el trabajo. El desencadenador se puede ejecutar cuando se actualiza una tabla o cuando se actualizan todas las tablas supervisadas por el desencadenador. Los desencadenadores de actualización de tablas no incurren en costos adicionales distintos de los costos del proveedor de nube asociados a enumerar tablas y leer actualizaciones desde la ubicación de almacenamiento.

Se puede configurar un desencadenador de actualización de tabla para supervisar una o varias tablas para cambios de datos, como actualizaciones, combinaciones y eliminaciones. Estas tablas pueden ser tablas administradas por Catálogo de Unity y tablas administradas por Iceberg, tablas externas del Catálogo de Unity respaldadas por Delta Lake, vistas materializadas, tablas de streaming y vistas del Catálogo de Unity o vistas de métricas que dependen de las tablas admitidas. No se permiten otras vistas y tablas que se compartan mediante Delta Sharing. Al seleccionar varias tablas, puede especificar si se desencadena un trabajo cuando se actualiza cualquiera o todas las tablas.

Adición de un desencadenador de actualización de tabla

Para agregar un desencadenador de actualización de tabla a un trabajo existente:

  1. En el panel de navegación izquierdo del área de trabajo, haga clic en Trabajos y canalizaciones.

  2. En la lista de trabajos, haga clic en el nombre del trabajo al que desea agregar un desencadenador.

  3. En el panel derecho, en Programaciones y desencadenadores, haga clic en Agregar desencadenador.

  4. En Tipo de desencadenador, seleccione Actualización de tabla.

  5. En Tablas, agregue las tablas que desea supervisar para ver las actualizaciones.

    Si selecciona más de una tabla, configure una opción en Activar cuando para especificar si desea que un trabajo se ejecute cuando Todas las tablas estén actualizadas o cuando Cualquiera de las tablas esté actualizada.

  6. (Opcional) Para configurar opciones avanzadas, haga clic en Opciones avanzadas.

    • Tiempo mínimo entre desencadenadores en segundos: el tiempo mínimo para esperar a desencadenar una ejecución después de que se complete una ejecución anterior. Las tablas actualizadas durante este período desencadenarán una ejecución solo después de que expire el tiempo de espera. Azure Databricks espera esta cantidad de tiempo antes de desencadenar una ejecución, incluso si se actualizan las tablas supervisadas.
    • Esperar después del último cambio en segundos: el tiempo de espera para desencadenar una ejecución después de una actualización de tabla. Las actualizaciones de tablas adicionales durante este período restablecen el temporizador. Esta configuración se puede usar cuando las actualizaciones de tabla vienen en lotes y todo el lote debe procesarse después de actualizar todas las tablas.

    Nota:

    Si se utilizan ambas opciones, el disparador espera el tiempo mínimo entre activaciones y luego espera el tiempo establecido después del último cambio. Por ejemplo, si tiene un tiempo mínimo de 120 segundos y una espera después de los últimos cambios de 60 segundos, no desencadenará la ejecución hasta que haya transcurrido al menos 120 segundos, incluso si se produce una actualización de tabla en los primeros 60 segundos. Además, si una actualización entra en 5 segundos y, a continuación, otra a 115 segundos, la espera después del último cambio significará que una ejecución no se desencadenará hasta después de 175 segundos.

  7. Para validar la configuración, haga clic en Desencadenador de prueba.

  8. Haz clic en Guardar.

Nota:

También puede configurar desencadenadores de actualización de tablas desde la Jobs API. Agregue un trigger objeto a una jobs/create, jobs/update o jobs/reset operación.

Desencadenadores de actualización de tablas con eventos de archivo

Para obtener el mejor rendimiento y escalabilidad, habilite los eventos de archivo en la ubicación externa donde se almacenan las tablas. Este paso de configuración única mejora la eficacia de los desencadenadores de actualización de tabla y desbloquea otras características, incluidos desencadenadores de carga automática y de llegada de archivos más eficaces.

Cuando se habilitan eventos de archivo, Databricks realiza automáticamente un seguimiento de los metadatos de ingesta mediante notificaciones de cambios del proveedor de nube, lo que da lugar a actualizaciones de tablas más rápidas y eficaces.

Si las tablas están en el almacenamiento de nivel raíz de metastore, conviértalas primero en una ubicación externa y, a continuación, habilite los eventos de archivo en esa ubicación.

Parámetros de trabajo asociados a desencadenadores de actualización de tablas

Cuando se usan desencadenadores de actualización de tablas para un trabajo, hay disponibles tres nuevas referencias de valor dinámico para usarlas como valores de parámetro en el trabajo.

  • {{job.trigger.table_update.updated_tables}} : una lista JSON de tablas actualizadas desde la última ejecución del trabajo.
  • {{job.trigger.table_update.`<catalog.schema.table>`.commit_timestamp.iso_datetime}} – el timestamp de commit más reciente que desencadenó la ejecución del trabajo.
  • {{job.trigger.table_update.`<catalog.schema.table>`.version}} - la versión de confirmación más reciente que desencadenó la ejecución del trabajo.

Para commit_timestamp y version, hay varias versiones de la referencia de valor dinámico. Cada tabla supervisada tendrá un <catalog.schema.table> con el nombre completo de la tabla para la que desea datos. Si solo hay una tabla monitorizada en el desencadenador, verá un valor sin <catalog.schema.table>. Por ejemplo, puede usar {{job.trigger.table_update.commit_timestamp.iso_datetime}}.

Para obtener más información sobre los parámetros de trabajo, vea Parametrizar trabajos.

Recibir notificaciones de fallos en los desencadenadores de actualización de tabla

Para recibir una notificación si un desencadenador de actualización de tabla no puede evaluar, configure las notificaciones de correo electrónico o destino del sistema en caso de error del trabajo. Consulte Incorporación de notificaciones en un trabajo.

Limitaciones

Los desencadenadores de actualización de tablas tienen las siguientes limitaciones:

  • Puede seleccionar hasta 10 tablas administradas o delta por desencadenador.
  • En el caso de las tablas que residen en ubicaciones sin eventos de archivo, se puede configurar un máximo de 1000 trabajos con un desencadenador de actualización de tabla.

Los desencadenadores en las vistas del catálogo de Unity tienen las siguientes limitaciones adicionales:

  • Los desencadenadores de actualización de tablas solo admiten la supervisión de vistas de Unity Catalog o vistas de métricas que dependen de tablas compatibles con los desencadenadores de actualización de tablas. En particular, no se admiten las siguientes vistas:

    • Vistas que se usan en read_files (pueden leer desde una tabla compatible que lee archivos, pero no pueden directamente usar read_files ).
    • Vistas que dependen de tablas que no están en el catálogo de Unity.
    • Vistas que dependen de tablas federadas.
  • La creación de desencadenadores para vistas que contienen dependencias no admitidas seguirá siendo exitosa, pero no se desencadenarán ejecuciones de tareas cuando se actualice una dependencia no admitida.

  • Los desencadenadores de actualización de tablas supervisan los cambios en las tablas dependientes de una vista y considera la vista actualizada si se actualiza alguna de las tablas dependientes. Es posible que la ejecución de un trabajo se inicie debido a cambios de datos filtrados por la definición de vista.

  • Las tablas de origen de una vista se cuentan hacia el límite de 10 tablas por desencadenador.

    • Por ejemplo, si una vista depende de 11 tablas, no será posible usarla en un desencadenador de actualización de tabla. Del mismo modo, un trigger con dos vistas, cada una de las cuales depende de 6 tablas, contará como 12 tablas.
  • Hay un límite independiente de 10 vistas dependientes por vista supervisada.

    • Por ejemplo, si una consulta depende de otras 11 consultas, no será posible usarla en un trigger de actualización de tabla, aunque esto no infrinja la regla de 10 tablas por desencadenador.