Información general de los flujos de trabajo en AWS Glue - AWS Glue

Información general de los flujos de trabajo en AWS Glue

En AWS Glue, puede utilizar flujos de trabajo para crear y visualizar actividades de extracción, transformación y carga (ETL) complejas que implican varios rastreadores, trabajos y desencadenadores. Cada flujo de trabajo administra la ejecución y monitoreo de todos sus trabajos y rastreadores. Un flujo de trabajo registra el progreso de ejecución y el estado, ya que ejecuta cada componente. Esto le proporciona información general de la tarea de mayor envergadura y los detalles de cada paso. La consola de AWS Glue ofrece una representación visual de un flujo de trabajo en forma de gráfico.

Puede crear un flujo de trabajo desde un proyecto de AWS Glue, o puede crear manualmente un flujo de trabajo un componente a la vez mediante la herramienta AWS Management Console o AWS Glue API. Para obtener más información acerca de los esquemas, consulte Información general de los esquemas en AWS Glue.

Los desencadenadores dentro de los flujos de trabajo pueden habilitar los trabajos y rastreadores y pueden iniciarse cuando se completan los trabajos y rastreadores. Al usar desencadenadores, puede crear grandes cadenas de trabajos y rastreadores interdependientes. Además de los desencadenadores dentro de un flujo de trabajo que definen las dependencias de los trabajos y rastreadores, cada flujo de trabajo tiene un desencadenador de inicio. Existen tres tipos de desencadenadores de inicio:

  • Programación: el flujo de trabajo se inicia según la programación que defina. La programación puede ser diaria, semanal, mensual, etc., o puede ser una programación personalizada basada en una expresión cron.

  • Bajo demanda: el flujo de trabajo se inicia manualmente desde la consola de AWS Glue, la API o AWS CLI.

  • Evento de EventBridge: el flujo de trabajo se inicia cuando se produce un único evento de Amazon EventBridge o un lote de eventos de Amazon EventBridge. Con este tipo de desencadenador, AWS Glue puede ser un consumidor de eventos en una arquitectura basada en eventos. Cualquier tipo de evento de EventBridge puede iniciar un flujo de trabajo. Un caso de uso común es la llegada de un nuevo objeto en un bucket de Amazon S3 (la operación PutObject de S3).

    Iniciar un flujo de trabajo con un lote de eventos significa esperar hasta que se haya recibido un número especificado de eventos o hasta que haya transcurrido un tiempo especificado. Al crear el desencadenador de eventos EventBridge, puede especificar condiciones de lote de forma opcional. Si especifica condiciones de lote, debe especificar el tamaño del lote (número de eventos) y puede especificar una ventana de lote (número de segundos) si lo desea. La ventana por lotes predeterminada y máxima es de 900 segundos (15 minutos). La condición del lote que se cumpla primero inicia el flujo de trabajo. La ventana del lote se inicia cuando llega el primer evento. Si no especifica las condiciones de lote al crear un desencadenador, el tamaño predeterminado del lote es 1.

    Cuando se inicia el flujo de trabajo, las condiciones del lote se restablecen y el desencadenador de eventos comienza a comprobar si se cumple la siguiente condición de lote para volver a iniciar el flujo de trabajo.

    En la siguiente tabla se muestra cómo el tamaño del lote y la ventana del lote funcionan juntos para habilitar un flujo de trabajo.

    Tamaño de lote Ventana del lote Condición desencadenante resultante
    10 El flujo de trabajo se desencadena ante la llegada de 10 eventos EventBridge, o 15 minutos después de la llegada del primer evento, lo que ocurra primero. (Si no se especifica el tamaño de ventana, el valor predeterminado es de 15 minutos).
    10 2 minutos El flujo de trabajo se desencadena ante la llegada de 10 eventos EventBridge, o 2 minutos después de la llegada del primer evento, lo que ocurra primero.
    1 El flujo de trabajo se desencadena ante la llegada del primer evento. El tamaño de la ventana es irrelevante. Si no especifica las condiciones de lote al crear un desencadenador de evento EventBridge, el tamaño predeterminado del lote es 1.

    La operación de la API GetWorkflowRun devuelve la condición de lote que desencadenó el flujo de trabajo.

Independientemente de cómo se inicie un flujo de trabajo, puede especificar el número máximo de ejecuciones concurrentes de flujo de trabajo al crear el flujo de trabajo.

Si un evento o lote de eventos inicia una ejecución de flujo de trabajo que eventualmente falla, ese evento o lote de eventos ya no se considera para iniciar una ejecución de flujo de trabajo. Una nueva ejecución de flujo de trabajo se inicia sólo cuando llega el siguiente evento o lote de eventos.

importante

Limite la cantidad total de trabajos, rastreadores y desencadenadores de un flujo de trabajo a 100 o menos. Si incluye más de 100, es posible que se produzcan errores al intentar reanudar o detener las ejecuciones del flujo de trabajo.

No se iniciará una ejecución de flujo de trabajo si excede el límite de concurrencia establecido para el flujo de trabajo, aunque se cumpla la condición del evento. Se aconseja ajustar los límites de concurrencia del flujo de trabajo en función del volumen de eventos esperado. AWS Glue no reintenta ejecutar los flujos de trabajo que presentan errores debido a límites de concurrencia excedidos. Del mismo modo, se aconseja ajustar los límites de concurrencia para trabajos y rastreadores dentro de flujos de trabajo en función del volumen de eventos esperado.

Propiedades de ejecución del flujo de trabajo

Para compartir y administrar el estado en toda la ejecución de flujo de trabajo, puede definir propiedades de ejecución de flujo de trabajo predeterminadas. Estas propiedades, que son pares nombre-valor, están disponibles para todos los trabajos en el flujo de trabajo. Utilice la AWS Glue API para recuperar las propiedades de ejecución de flujo de trabajo y modifíquelas para los trabajos que vengan después en el flujo de trabajo.

Gráfico del flujo de trabajo

La imagen siguiente muestra el gráfico de un flujo de trabajo básico en la consola de AWS Glue. Su flujo de trabajo podría tener decenas de componentes.

Captura de pantalla que muestra la pestaña Graph (Gráfico) de un flujo de trabajo. El gráfico contiene cinco íconos que representan un desencadenador de programación, dos trabajos, un desencadenador de eventos correcto y un rastreador que actualiza el esquema.

Este flujo de trabajo se inicia mediante un desencadenador de programación, Month-close1, que inicia dos trabajos, De-duplicate y Fix phone numbers. Tras la realización completa de ambos trabajos, un desencadenador de eventos, Fix/De-dupe succeeded, inicia un rastreador, Update schema.

Vistas de flujo de trabajo estáticas y dinámicas

Para cada flujo de trabajo hay una noción de vista estática y dinámica. La vista estática indica el diseño del flujo de trabajo. La vista dinámica es una vista de tiempo de ejecución que incluye la información de ejecución más reciente para cada uno de los trabajos y rastreadores. La información de ejecución incluye detalles sobre el error y el estado de success (correcto).

Cuando un flujo de trabajo se encuentra en ejecución, la consola muestra la vista dinámica, que indica gráficamente los trabajos completados y que todavía se tienen que ejecutar. También puede recuperar una vista dinámica de un flujo de trabajo en ejecución mediante la AWS Glue API. Para obtener más información, consulte Consulta de flujos de trabajo mediante la AWS Glue API.