Criar uma dependência de gatilho de janela em cascata
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Este artigo fornece etapas para criar uma dependência em um gatilho de janela em cascata. Para obter informações gerais sobre gatilhos periódicos, confira Criar um gatilho periódico.
Para criar uma cadeia de dependência e certificar-se de que um gatilho será executado somente após a execução com êxito de outro gatilho no serviço, use esse recurso avançado para criar uma dependência de janela em cascata.
Para ver uma demonstração de como criar pipelines dependentes usando um gatilho periódico, assista ao seguinte vídeo:
Criar uma dependência na interface do usuário
Para criar uma dependência em um gatilho, selecione Gatilho>Avançado>Novo. Em seguida, escolha o gatilho de dependência com o deslocamento e o tamanho apropriados. Selecione Concluir e publique as alterações para que as dependências entrem em vigor.
Propriedades de dependência de janela em cascata
Um gatilho periódico com uma dependência tem as seguintes propriedades:
{
"name": "MyTriggerName",
"properties": {
"type": "TumblingWindowTrigger",
"runtimeState": <<Started/Stopped/Disabled - readonly>>,
"typeProperties": {
"frequency": <<Minute/Hour>>,
"interval": <<int>>,
"startTime": <<datetime>>,
"endTime": <<datetime - optional>>,
"delay": <<timespan - optional>>,
"maxConcurrency": <<int>> (required, max allowed: 50),
"retryPolicy": {
"count": <<int - optional, default: 0>>,
"intervalInSeconds": <<int>>,
},
"dependsOn": [
{
"type": "TumblingWindowTriggerDependencyReference",
"size": <<timespan - optional>>,
"offset": <<timespan - optional>>,
"referenceTrigger": {
"referenceName": "MyTumblingWindowDependency1",
"type": "TriggerReference"
}
},
{
"type": "SelfDependencyTumblingWindowTriggerReference",
"size": <<timespan - optional>>,
"offset": <<timespan>>
}
]
}
}
}
A tabela a seguir fornece a lista de atributos necessários para definir uma dependência de janela em cascata.
Nome da propriedade | Descrição | Type | Obrigatório |
---|---|---|---|
type |
Todos os gatilhos da janela em cascata existentes são exibidos nesta lista suspensa. Escolha o gatilho para assumir a dependência. | TumblingWindowTriggerDependencyReference ou SelfDependencyTumblingWindowTriggerReference |
Sim |
offset |
Deslocamento do gatilho de dependência. Forneça um valor no formato de intervalo de tempo. Deslocamentos negativos e positivos são permitidos. Essa propriedade será obrigatória se o gatilho depender de si mesmo. Em todos os outros casos, ela é opcional. A autodependência deverá sempre ser um deslocamento negativo. Se nenhum valor for especificado, a janela será igual ao próprio gatilho. | Timespan (hh:mm:ss) |
Autodependência: Sim Outros: Não |
size |
Tamanho da janela em cascata de dependência. Forneça um valor de período positivo. Essa propriedade é opcional. | Timespan (hh:mm:ss) |
Não |
Observação
Um gatilho periódico pode depender de, no máximo, cinco outros gatilhos.
Propriedades de autodependência de janela em cascata
Nos cenários em que o gatilho não deverá prosseguir para a próxima janela até que a janela anterior seja concluída com êxito, crie uma autodependência. Um gatilho de autodependência que seja dependente do sucesso das execuções anteriores de si mesmo no período que abrange a hora anterior tem as propriedades indicadas no código a seguir.
Observação
Se o pipeline disparado depende da saída de pipelines em janelas disparadas anteriormente, recomendamos usar apenas a autodependência do gatilho periódico. Para limitar as execuções de gatilho paralelas, defina a simultaneidade máxima do gatilho.
{
"name": "DemoSelfDependency",
"properties": {
"runtimeState": "Started",
"pipeline": {
"pipelineReference": {
"referenceName": "Demo",
"type": "PipelineReference"
}
},
"type": "TumblingWindowTrigger",
"typeProperties": {
"frequency": "Hour",
"interval": 1,
"startTime": "2018-10-04T00:00:00Z",
"delay": "00:01:00",
"maxConcurrency": 50,
"retryPolicy": {
"intervalInSeconds": 30
},
"dependsOn": [
{
"type": "SelfDependencyTumblingWindowTriggerReference",
"size": "01:00:00",
"offset": "-01:00:00"
}
]
}
}
}
Cenários e exemplos de uso
Os cenários a seguir mostram o uso de propriedades de dependência de janela em cascata.
Deslocamento de dependência
Tamanho da dependência
Autodependência
Dependência de outro gatilho de janela em cascata
O exemplo a seguir mostra um trabalho de processamento de telemetria diário que depende de outro trabalho diário agregar os últimos sete dias de saída e que gera fluxos de janela sem rolagem de sete dias.
Dependência de si próprio
O exemplo a seguir mostra um trabalho diário sem lacunas nos fluxos de saída do trabalho.
Monitorar dependências
É possível monitorar a cadeia de dependência e as janelas correspondentes na página de monitoramento da execução de gatilho. Acesse Monitoramento>Execuções de Gatilho. Se um gatilho periódico tiver dependências, o nome do gatilho tem um hiperlink para uma exibição de monitoramento de dependência.
Clique no nome do gatilho para ver as dependências dele. O painel à direita mostra informações de execução do gatilho, como a ID de execução, a hora da janela e o status.
Você pode ver o status das dependências e das janelas de cada gatilho dependente. Se um dos gatilhos de dependências falhar, você precisará executá-lo com êxito novamente para que o gatilho dependente seja executado.
Um gatilho periódico aguarda as dependências por sete dias antes de atingir o tempo limite. Após sete dias, ocorre uma falha na execução de gatilho.
Observação
Um gatilho periódico não pode ser cancelado enquanto estiver no estado Aguardando a dependência. A atividade dependente precisa ser concluída antes que o gatilho periódico seja cancelado. Essa restrição ocorre por design para garantir que as atividades dependentes possam ser concluídas depois de iniciadas. Ela também ajuda a reduzir a probabilidade de resultados inesperados.
Para obter uma forma mais visual para ver o agendamento de dependência do gatilho, selecione a exibição de Gantt.
As caixas transparentes mostram as janelas de dependência de cada gatilho dependente de downstream. As caixas de cor sólida mostradas na imagem anterior mostram as execuções de janela individuais. Estas são algumas dicas para interpretar a exibição do gráfico de Gantt:
- As caixas transparentes são renderizadas em azul quando as janelas dependentes estão no estado Pendente ou Em execução.
- Depois que todas as janelas são executadas com sucesso para um gatilho dependente, a caixa transparente ficam verdes.
- As caixas transparentes são renderizadas em vermelho quando ocorre uma falha em uma janela dependente. Procure uma caixa vermelha sólida para identificar a execução da janela com falha.
Para executar novamente uma janela na exibição do gráfico de Gantt, selecione a caixa de cores sólida para a janela. Um painel de ações será exibido com informações e opções de nova execução.