Pular para o conteúdo principal

Trigger Job quando os Job upstream forem concluídos

Use Trigger de conclusão de Job para executar um LakeFlow Job quando um ou mais upstream Job forem concluídos. Os upstream Job podem estar em diferentes Workspace conectados ao mesmo metastore do Unity Catalog. Você pode configurar a dependência no downstream job sem alterar os upstream jobs.

info

Versão beta

Trigger de conclusão de Job estão em Beta.

Antes de começar​

  • Um admin de Workspace deve habilitar os Trigger de Conclusão de Job na página de Previews no Workspace downstream e em cada Workspace upstream.
  • Todos os Workspace participantes devem estar anexados ao mesmo metastore do Unity Catalog.
  • Você deve ter permissão CAN MANAGE (Pode gerenciar) no job downstream para configurar seu trigger.
  • A Identidade de execução do job downstream deve ser atribuída a cada workspace upstream e ter CAN VIEW ou superior em cada job monitorado. Esses requisitos se aplicam tanto a usuários quanto a Service Principal.

Suas próprias permissões determinam quais jobs você pode selecionar e abrir. As permissões de execução como do Job downstream determinam se o Trigger pode monitorá-los.

Como funcionam os Trigger de conclusão de Job​

Um trigger monitora de 1 a 10 jobs upstream e aplica o mesmo filtro de resultado a todos eles:

Resultado da execução upstream

Valor da API

Conclusões correspondentes

Bem-sucedido (default)

SUCCESS

SUCCESS ou SUCCESS_WITH_FAILURES

Falhou

FAILED

Qualquer código de término diferente de SUCCESS ou SUCCESS_WITH_FAILURES

Concluído com qualquer resultado

DONE

Qualquer execução concluída, independentemente do código de término

Resultado da execução upstream

Valor da API

Conclusões correspondentes

Bem-sucedido (default)

SUCCESS

SUCCESS ou SUCCESS_WITH_FAILURES

Falhou

FAILED

Qualquer código de término diferente de SUCCESS ou SUCCESS_WITH_FAILURES

Concluído com qualquer resultado

DONE

Qualquer execução concluída, independentemente do código de término

Com um Job upstream, cada nova conclusão correspondente começa uma execução downstream. Com vários jobs upstream, uma execução downstream começa após todos os jobs terem uma nova conclusão correspondente. Se um job é concluído mais de uma vez antes que os outros sejam concluídos, a conclusão correspondente mais recente desse job contribui para a execução downstream.

Por exemplo, se A for concluído duas vezes e B for concluído, um Trigger monitoramento A e B iniciará uma execução downstream usando a segunda conclusão de A e a conclusão de B. Ambos os Job devem contribuir com outra conclusão correspondente para começar a próxima execução. As conclusões não são correspondidas por data de negócios ou lote de dados.

Para execução após a conclusão de qualquer Job upstream, adicione Trigger separados, um para cada Job. Isso requer o Beta de Múltiplos Trigger.

As conclusões históricas não começam execuções quando o Trigger é inicializado. Alterar os Job monitorados ou o filtro de resultado reinicia o progresso de conclusão e começa o monitoramento do zero. Se o job downstream atingir seu máximo de execuções concorrentes, as conclusões prontas serão retidas até que ele possa começar outra execução.

Adicionar um trigger de conclusão de job​

  1. Na barra lateral do workspace, clique em Jobs & Pipelines e abra o job downstream.
  2. Em programar e Trigger , clique em Adicionar Trigger .
  3. Para Tipo de trigger , selecione Conclusão do job upstream .
  4. Em Jobs upstream , selecione cada Workspace de job e Job . Pesquise pelo nome ou ID do job.
  5. Selecione o resultado da execução upstream .
  6. Clique em Test trigger e resolva quaisquer erros relatados. Se um job upstream não puder ser verificado durante este teste, verifique o status do trigger após salvar.
  7. Clique em Salvar .

Use programar & Trigger para verificar o progresso de conclusão de cada Job upstream, editar o Trigger ou pausa, retomá-lo e excluí-lo. Pausar um trigger não para as execuções ativas. Consulte Gerenciar Trigger existentes.

Os espectadores do job downstream podem ver IDs de workspace, job e execução upstream, resultados de conclusão e progresso. Nomes de job e acesso a jobs e execuções upstream requerem as próprias permissões upstream do espectador.

Configurar com a API, CLI ou bundles​

Salve esta solicitação como update-job.json e envie-a para POST /api/2.2/jobs/update na API de Jobs. Substitua os IDs pelo seu job downstream e IDs de workspace & job upstream.

JSON
{
"job_id": 9001,
"new_settings": {
"triggers": [
{
"pause_status": "UNPAUSED",
"job_completion": {
"jobs": [
{ "workspace_id": "123456789", "job_id": "1001" },
{ "workspace_id": "234567890", "job_id": "1002" }
],
"if_status": "SUCCESS"
}
}
]
}
}

Esses exemplos exigem o Multiple Trigger Beta. Para um único trigger sem esse Beta, use trigger com o mesmo objeto de trigger em vez da matriz triggers. Não combine triggers com trigger, schedule ou continuous. Atualizar triggers substitui toda a matriz, portanto, inclua todos os Trigger existentes que você deseja manter. A validação e a implantação de bundles requerem uma versão da CLI cujo esquema inclua job_completion.

Usar os detalhes de conclusão upstream​

Adicione um parâmetro de job chamado upstream_completions com o valor {{job.trigger.job_completion.completed_jobs}}. Ele é resolvido como um array JSON com uma entrada por job monitorado, em ordem de configuração:

JSON
[
{
"workspace_id": "123456789",
"job_id": "1001",
"run_id": "2001",
"termination_code": "SUCCESS",
"completion_time": "2026-10-07T08:00:00Z"
}
]

Este exemplo mostra uma entrada. Um Trigger de monitoramento de dois Job retorna duas entradas. As tentativas e reparos retêm as conclusões contribuintes originais. Execuções manuais resolvem a referência para []. Você só pode configurar essa referência quando todos os Trigger do Job forem Trigger de conclusão de Job.

Uma tarefa de notebook pode ler o parâmetro da seguinte forma:

Python
import json

completed_jobs = json.loads(dbutils.widgets.get("upstream_completions"))
for job in completed_jobs:
print(job["job_id"], job["run_id"], job["termination_code"])

Consulte Parametrizar jobs. Os mesmos detalhes de conclusão estão disponíveis em trigger_info.job_completion.completed_jobs na API Get execução tanto para Trigger únicos quanto para o Multiple Trigger Beta. Para inspecionar o progresso de conclusão de cada Trigger com múltiplos Trigger, chame a API Get Job com include_trigger_state=true e leia trigger_details[].state.job_completion.monitored_job_states.

Solução de problemas​

Problema

Ação

A execução como identidade não possui permissões de job ou acesso ao workspace

Atribua a identidade a cada workspace upstream e conceda permissão CAN VIEW (Pode visualizar) ou superior em cada job monitorado.

O job upstream ou o workspace não existe mais

Remova ou substitua a entrada afetada.

Workspace têm metastores diferentes

Selecione Job upstream em Workspace conectados ao metastore do Workspace downstream.

Beta desativado em um workspace participante

Peça a um administrador de Workspace para habilitar Trigger de Conclusão de Job lá.

Problema

Ação

A execução como identidade não possui permissões de job ou acesso ao workspace

Atribua a identidade a cada workspace upstream e conceda permissão CAN VIEW (Pode visualizar) ou superior em cada job monitorado.

O job upstream ou o workspace não existe mais

Remova ou substitua a entrada afetada.

Workspace têm metastores diferentes

Selecione Job upstream em Workspace conectados ao metastore do Workspace downstream.

Beta desativado em um workspace participante

Peça a um administrador de Workspace para habilitar Trigger de Conclusão de Job lá.

Limitações​

  • Um Workspace suporta até 1.000 Trigger de conclusão de Job ativos. Eles são contabilizados para o limite de Workspace de 12.000 Trigger ativos.
  • Um trigger monitora no máximo 10 pares distintos de workspace & job.
  • Todos os jobs monitorados compartilham um filtro de resultados.