Visão geral de fluxos de trabalho no AWS Glue - AWS Glue

Visão geral de fluxos de trabalho no AWS Glue

No AWS Glue, você pode usar fluxos de trabalho para criar e visualizar atividades complexas de extração, transformação e carregamento (ETL) que envolvem vários crawlers, trabalhos e gatilhos. Cada fluxo de trabalho gerencia a execução e o monitoramento de todos os seus trabalhos e crawlers. À medida que um fluxo de trabalho executa cada componente, ele registra o progresso e o status de execução. Isso fornece a você uma visão geral das tarefa maior e os detalhes de cada etapa. O console do AWS Glue fornece uma representação visual de um fluxo de trabalho como um gráfico.

Você pode criar um fluxo de trabalho a partir de um blueprint do AWS Glue ou pode construir um fluxo de trabalho manualmente, um componente de cada vez, usando o AWS Management Console ou a AWS Glue API. Para obter mais informações sobre esquemas, consulte Visão geral dos esquemas no AWS Glue.

Os acionadores nos fluxos de trabalho podem ser acionar trabalhos e crawlers e podem ser disparados quando trabalhos e crawlers são concluídos. Usando acionadores, é possível criar grandes cadeias de trabalhos e crawlers interdependentes. Além dos acionadores em um fluxo de trabalho que definem dependências de trabalhos e crawlers, cada fluxo de trabalho tem um acionador de início. Existem três tipos de acionadores de início:

  • Schedule (Programação): o fluxo de trabalho é iniciado de acordo com a programação definida por você. A programação pode ser diária, semanal, mensal e assim por diante, ou pode ser uma programação personalizada com base em uma expressão cron.

  • On demand (Sob demanda): o fluxo de trabalho é iniciado manualmente pelo console do AWS Glue, API ou AWS CLI.

  • EventBridge event (Evento do EventBridge): o fluxo de trabalho é iniciado após a ocorrência de um único evento do Amazon EventBridge ou de um lote de eventos do Amazon EventBridge. Com esse tipo de acionador, o AWS Glue pode ser um consumidor de eventos em uma arquitetura orientada por eventos. Qualquer evento do EventBridge pode iniciar um fluxo de trabalho. O mais provável caso de uso é a chegada de um novo objeto em um bucket do Amazon S3 (a operação PutObject do S3).

    Iniciar um fluxo de trabalho com um lote de eventos significa esperar até que um número especificado de eventos tenha sido recebido ou até que um determinado período de tempo tenha passado. Ao criar o acionador de evento do EventBridge, você pode, opcionalmente, especificar condições de lote. Se você especificar condições de lote, deverá especificar o tamanho do lote (número de eventos) e, opcionalmente, poderá especificar uma janela de lote (número de segundos). A janela padrão e máxima do lote é 900 segundos (15 minutos). A condição de lote que é atendida primeiro inicia o fluxo de trabalho. A janela de lote é iniciada quando o primeiro evento chega. Se você não especificar condições de lote ao criar um acionador, o tamanho do lote assumirá como padrão 1.

    Quando o fluxo de trabalho é iniciado, as condições de lote são redefinidas e o acionador de evento começa a observar a próxima condição de lote a ser atendida para iniciar o fluxo de trabalho novamente.

    A tabela a seguir mostra como o tamanho do lote e a janela do lote operam juntos para acionar um fluxo de trabalho.

    Tamanho do lote Janela do lote Condição de acionamento resultante
    10 O fluxo de trabalho é acionado após a chegada de dez eventos do EventBridge ou 15 minutos após a chegada do primeiro evento, o que ocorrer primeiro. (se o tamanho das janelas não for especificado, o padrão será 15 minutos).
    10 Dois minutos O fluxo de trabalho é acionado após a chegada de dez eventos do EventBridge ou dois minutos após a chegada do primeiro evento, o que ocorrer primeiro.
    1 O fluxo de trabalho é acionado após a chegada do primeiro evento. O tamanho da janela é irrelevante. Se você não especificar condições de lote ao criar um acionador de evento do EventBridge, o tamanho do lote assumirá como padrão 1.

    A operação de API GetWorkflowRun retorna a condição de lote que acionou o fluxo de trabalho.

Independentemente de como um fluxo de trabalho é iniciado, você pode especificar o número máximo de execuções de fluxo de trabalho simultâneas ao criar o fluxo de trabalho.

Se um evento ou lote de eventos iniciar uma execução de fluxo de trabalho que falha em algum momento, esse evento ou lote de eventos não será mais considerado para iniciar uma execução de fluxo de trabalho. Uma nova execução de fluxo de trabalho é iniciada somente quando o próximo evento ou lote de eventos chega.

Importante

Limite o número total de trabalhos, crawlers e gatilhos em um fluxo de trabalho para 100 ou menos. Se você incluir mais de 100, poderá receber erros ao tentar retomar ou interromper as execuções do fluxo de trabalho.

Uma execução de fluxo de trabalho não será iniciada se exceder o limite de simultaneidade definido para o fluxo de trabalho, mesmo que a condição do evento seja atendida. É aconselhável ajustar os limites de simultaneidade do fluxo de trabalho com base no volume de eventos esperado. O AWS Glue não tenta executar novamente o fluxo de trabalho que falha por causa de limites de simultaneidade excedidos. Da mesma forma, é aconselhável ajustar os limites de simultaneidade para trabalhos e crawlers dentro de fluxos de trabalho com base no volume de eventos esperado.

Propriedades de execução do fluxo de trabalho

Para compartilhar e gerenciar estados em uma execução de fluxo de trabalho, defina as propriedades de execução de fluxo de trabalho padrão. Essas propriedades, que são pares de nome/valor, estão disponíveis para todos os trabalhos no fluxo de trabalho. Usando o AWS Glue API, os trabalhos podem recuperar as propriedades de execução do fluxo de trabalho e modificá-las para trabalhos fornecidos posteriormente no fluxo de trabalho.

Grafo do fluxo de trabalho

A imagem a seguir mostra o gráfico de um fluxo de trabalho básico no console do AWS Glue. Seu fluxo de trabalho poderia ter dezenas de componentes.


            Captura de tela do console mostrando a guia Graph (Gráfico) de um fluxo de trabalho. O gráfico contém cinco ícones que representa um acionador de programação, dois trabalhos, um acionador de êxito de evento e um crawler que atualiza o esquema.

Esse fluxo de trabalho é iniciado por um acionador de programação, Month-close1, que inicia dois trabalhos, De-duplicate e Fix phone numbers. Após a conclusão bem-sucedida de ambos os trabalhos, um acionador de evento, Fix/De-dupe succeeded, inicia um crawler, Update schema.

Visualizações estáticas e dinâmicas do fluxo de trabalho

Para cada fluxo de trabalho, existe o conceito de visualização estática e dinâmica. A visualização estática indica o design do fluxo de trabalho. A visualização dinâmica é uma visualização do tempo de execução que inclui as informações mais recentes de execução de cada um dos trabalhos e crawlers. As informações de execução incluem o status de sucesso e os detalhes de erros.

Quando um fluxo de trabalho estiver em execução, o console exibirá a visualização dinâmica graficamente, indicando os trabalhos que foram concluídos e os que ainda não foram executados. Também é possível recuperar uma visualização dinâmica de um fluxo de trabalho em execução usando o AWS Glue API. Para mais informações, consulte Consultar fluxos de trabalho usando o AWS Glue API.