Criar uma dependência de acionamento de janela em cascata

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Este artigo fornece etapas para criar uma dependência em um gatilho de janela de tombamento. Para obter informações gerais sobre gatilhos de janela de tombamento, consulte Como criar gatilhos de janela de queda.

Para criar uma cadeia de dependência e garantir que um gatilho seja executado somente após a execução bem-sucedida de outro gatilho dentro do serviço, use esse recurso avançado para criar uma dependência de janela de queda.

Para uma demonstração sobre como criar pipelines dependentes usando o gatilho de janela de queda, assista ao seguinte vídeo:

Criar uma dependência na interface do usuário

Para criar dependência em um gatilho, selecione Trigger > Advanced > New e escolha o gatilho do qual depender com o deslocamento e o tamanho apropriados. Selecione Concluir e publique as alterações para que as dependências entrem em vigor.

Screenshot of the dependency creation window.

Propriedades de dependência da janela de tombamento

Um gatilho de janela de tombo 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 de Tumbling.

Nome da propriedade Descrição Tipo Necessário
tipo Todos os gatilhos de janela de tombo 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 e compensações negativas e positivas são permitidas. Esta propriedade é obrigatória se o gatilho estiver dependendo de si mesmo e em todos os outros casos é opcional. A autodependência deve ser sempre uma compensação negativa. Se nenhum valor for especificado, a janela será a mesma que o próprio gatilho. Timespan
(hh:mm:ss)
Auto-dependência: Sim
Outros: Não
size Tamanho da janela de queda de dependência. Forneça um valor de período de tempo positivo. Esta propriedade é opcional. Timespan
(hh:mm:ss)
Não

Nota

Um gatilho de janela de tombo pode depender de um máximo de cinco outros gatilhos.

Propriedades de autodependência da janela de tombamento

Em cenários em que o gatilho não deve 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 depende do sucesso de execuções anteriores de si mesmo na hora anterior terá as propriedades indicadas no código a seguir.

Nota

Se o pipeline acionado depender da saída de pipelines em janelas acionadas anteriormente, recomendamos usar apenas a autodependência de gatilho de janela de tombamento. Para limitar execuções de gatilho paralelo, 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 de uso e exemplos

Abaixo estão ilustrações de cenários e uso de propriedades de dependência de janela de tombamento.

Deslocamento de dependência

Offset Example

Tamanho da dependência

Size example

Auto-dependência

Self-dependency

Dependência de outro gatilho de janela de tombo

Um trabalho diário de processamento de telemetria que depende de outro trabalho diário que agrega a saída dos últimos sete dias e gera fluxos de janela rolantes de sete dias:

Dependency example

Dependência de si mesmo

Um trabalho diário sem lacunas nos fluxos de saída do trabalho:

Self-dependency example

Monitorar dependências

Você pode monitorar a cadeia de dependência e as janelas correspondentes na página de monitoramento de execução de gatilho. Navegue até Monitoramento > de execuções de gatilho. Se um gatilho de Janela de Tombamento tiver dependências, o Nome do Gatilho exibirá um hiperlink para a exibição de monitoramento de dependência.

Monitor trigger runs

Clique no nome do gatilho para visualizar as dependências do gatilho. O painel direito mostra informações detalhadas de execução do gatilho, como RunID, hora da janela, status e assim por diante.

Monitor dependencies list view

Você pode ver o status das dependências e janelas para cada gatilho dependente. Se um dos gatilhos de dependência falhar, você deverá executá-lo novamente com êxito para que o gatilho dependente seja executado.

Um gatilho de janela de tombo aguardará as dependências por sete dias antes de atingir o tempo limite. Após sete dias, a execução do gatilho falhará.

Nota

Um gatilho de janela de tombamento não pode ser cancelado enquanto estiver no estado Aguardando dependência . A atividade dependente deve terminar antes que o gatilho da janela de queda possa ser cancelado. Isso ocorre por design para garantir que as atividades dependentes possam ser concluídas uma vez iniciadas e ajuda a reduzir a probabilidade de resultados inesperados.

Para visualizar mais visualmente a agenda de dependência do gatilho, selecione a visualização Gantt.

Monitor dependencies gantt chart

As caixas transparentes mostram as janelas de dependência para cada gatilho dependente do fluxo, enquanto as caixas coloridas sólidas acima mostram execuções de janelas individuais. Aqui estão algumas dicas para interpretar a visualização do gráfico de Gantt:

  • A caixa transparente fica azul quando as janelas dependentes estão em estado pendente ou em execução
  • Depois que todas as janelas forem bem-sucedidas para um gatilho dependente, a caixa transparente ficará verde
  • A caixa transparente fica vermelha quando alguma janela dependente falha. Procure uma caixa vermelha sólida para identificar a execução da janela de falha

Para executar novamente uma janela no modo de exibição de gráfico de Gantt, selecione a caixa de cor sólida para a janela e um painel de ação será exibido com detalhes e opções de nova execução