Compartilhar via


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.

Captura de tela que mostra a janela de criação de dependência.

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

Diagrama que mostra um exemplo de deslocamento.

Tamanho da dependência

Diagrama que mostra um exemplo de tamanho.

Autodependência

Diagrama que mostra um exemplo de 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.

Diagrama que mostra um exemplo de dependência.

Dependência de si próprio

O exemplo a seguir mostra um trabalho diário sem lacunas nos fluxos de saída do trabalho.

Diagrama que mostra um exemplo de autodependência sem lacunas nos fluxos de saída.

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.

Captura de tela que mostra as execuções do gatilho do Monitor.

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.

Captura de tela que mostra a exibição de lista das dependências do Monitor.

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.

Captura de tela que mostra um gráfico de Gantt das dependências do Monitor.

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.