Todos os produtos
Search
Central de documentação

DataWorks:Princípios de agendamento para dependências complexas

Última atualização: Oct 28, 2026

O DataWorks permite crie dependências entre tarefas acionadas automaticamente que possuem frequências de agendamento diferentes, como minuto, hora, dia, semana, mês e ano. Cada execução de tarefa é uma instância, e a frequência de agendamento determina quantas instâncias são geradas. Este tópico explica como o DataWorks estabelece dependências entre as instâncias de tarefas ancestrais e descendentes quando suas frequências de agendamento são diferentes.

Contexto

  • No DataWorks, uma tarefa acionada automaticamente gera instâncias com base em sua frequência de agendamento. Por exemplo, uma tarefa horária gera um número correspondente de instâncias por dia. As dependências de tarefas são estabelecidas entre suas instâncias. Quando as tarefas ancestrais e descendentes têm frequências de agendamento diferentes, o número de instâncias e a forma como dependem umas das outras variam.

  • O DataWorks oferece suporte a vários cenários de dependência de agendamento. É possível configure uma dependência de agendamento no mesmo ciclo ou uma dependência de agendamento entre ciclos. Para obter mais informações, consulte Configure a same-cycle scheduling dependency e Configure a cross-cycle scheduling dependency.

  • Para cenários com fusos horários diferentes em que uma tarefa diária depende de tarefas horárias ou de minutos, além de fazer isso indiretamente por meio de autodependência e do princípio de proximidade, ative a Advanced Scheduling Dependency Configuration para usar diretamente a dependência de Specified Range e configure o intervalo de dependência necessário (como [-5, 19]), ou use a dependência de Specified Set para configure com precisão as dependências em instâncias em horários fixos, sem a necessidade de defina a autodependência para as tarefas horárias upstream. Para obter mais informações, consulte Configure a same-cycle scheduling dependency.

Compreenda estes conceitos antes de configure uma dependência de agendamento.

Nº

Descrição

Referências

1

O DataWorks oferece suporte a várias frequências de agendamento, incluindo minuto, hora, dia, semana, mês e ano. Quando uma tarefa ancestral e uma tarefa descendente possuem frequências de agendamento diferentes, o DataWorks estabelece a dependência de agendamento usando o princípio de proximidade do horário de agendamento.

Nota
  • Se uma tarefa horária depender de outra tarefa horária e ambas gerarem o mesmo número de instâncias por dia, este princípio não se aplica. A dependência não está relacionada ao horário de agendamento.

  • Por padrão, uma tarefa diária depende de todas as instâncias geradas por suas tarefas ancestrais horárias ou de minutos no mesmo dia. A tarefa diária só é iniciada após o processamento de todos os dados daquele dia provenientes das tarefas ancestrais.

Montar dependências: princípio de proximidade

2

Uma dependência de agendamento estabelece uma dependência de dados entre tarefas. A tarefa descendente não é execute até que sua tarefa ancestral seja concluída com sucesso, independentemente do próprio horário de agendamento da descendente.

Impacto das dependências na execução da tarefa

3

Compreenda melhor o princípio de proximidade por meio dos seguintes exemplos de cenários.

Apêndice 1: Resumo de cenários de dependências complexas

Os cenários incluem:

Resolução de dependências: O princípio de proximidade do horário de agendamento

Quando uma tarefa acionada automaticamente é execute no DataWorks, várias instâncias são geradas. As instâncias descendentes dependem das instâncias ancestrais. A menos que uma instância ancestral específica seja designada, a instância descendente segue o princípio de proximidade ao estabelecer dependências. Isso significa que a instância descendente depende da instância ancestral cujo horário de agendamento é o mais próximo possível, mas não posterior ao horário de agendamento da descendente, e que não foi reivindicada por outra instância descendente. Os princípios de dependência para diferentes cenários são os seguintes:

Nota
  • Se o horário de agendamento da tarefa descendente for anterior ao horário de agendamento da tarefa ancestral, a tarefa descendente não é agendada mesmo quando seu horário programado for atingido. É necessário aguardar a conclusão da tarefa ancestral antes de poder agendá-la.

  • Quando as dependências são estabelecidas com base no princípio de proximidade, se nenhuma instância ancestral for agendada antes da primeira instância da tarefa descendente em um determinado dia, a instância descendente depende da primeira instância ancestral daquele dia por padrão.

Cenário

Descrição

Diagrama

Dependências entre tarefas horárias e de minutos

  • As dependências estão relacionadas ao horário de agendamento das instâncias

    • Comportamento padrão: As instâncias descendentes recebem dependências com base no princípio de proximidade. O DataWorks atribui cada instância descendente à instância ancestral cujo horário de agendamento é anterior ou igual ao horário de agendamento da descendente e que não foi reivindicada por outra instância descendente.

      Nota

      Quando o nó upstream é execute com uma frequência maior que a do nó downstream (ou seja, o ancestral gera mais instâncias que o descendente), a instância downstream depende, na verdade, de todas as instâncias ancestrais produzidas dentro de seu intervalo de agendamento (start, end].

    • Caso especial: Se tanto os nós ancestrais quanto os descendentes tiverem a autodependência configure (ou seja, dependência entre ciclos no próprio nó), a instância descendente atual depende de apenas uma instância ancestral cujo horário de agendamento seja anterior ou igual ao horário de agendamento da descendente.

      Nota

      Consulte os diagramas para ver cenários detalhados em que tarefas horárias e de minutos são configure com autodependências.

  • As dependências não estão relacionadas ao horário de agendamento das instâncias.

    Quando uma tarefa horária depende de outra tarefa horária, ou uma tarefa de minutos depende de outra tarefa de minutos, e os nós ancestrais e descendentes geram o mesmo número de instâncias por dia, as dependências são estabelecidas em um mapeamento de um para um com base na sequência de instâncias.

A figura a seguir mostra uma visão geral dos cenários detalhados para dependências entre tarefas horárias e de minutos:

Tarefa horária depende de tarefa horária

image

Tarefa horária depende de tarefa de minutos

image

Tarefa de minutos depende de uma tarefa horária

image

Exemplo:

Uma tarefa horária depende de outra tarefa horária.

image
  • Cenário 1: A tarefa horária B depende da tarefa horária A.

    Configuração:

    • O intervalo de tempo é defina como 00:00-23:59 diariamente.

    • Tanto a tarefa A quanto a tarefa B são agendadas a cada 5 horas.

    • A tarefa A e a tarefa B geram o mesmo número de instâncias por dia.

    Dependência: A tarefa A e a tarefa B geram o mesmo número de instâncias por dia, portanto, as dependências de instâncias são mapeadas de um para um.

  • Cenário 2:

    Configuração:

    • A tarefa A é agendada a cada 4 horas durante o intervalo de tempo de 06:10-21:59 diariamente, gerando 4 instâncias no total.

    • A tarefa B é agendada a cada 4 horas durante o intervalo de tempo de 08:00-23:59 diariamente, gerando 4 instâncias no total.

    Dependência: A tarefa A e a tarefa B geram o mesmo número de instâncias por dia, portanto, as dependências de instâncias são mapeadas de um para um.

Tarefa diária depende de uma tarefa horária ou de minutos

Comportamento padrão: Por padrão, uma tarefa diária depende de todas as instâncias geradas por suas tarefas ancestrais horárias ou de minutos no mesmo dia. A tarefa diária só é iniciada após o processamento de todos os dados daquele dia provenientes das tarefas ancestrais.

Outros casos: Se a tarefa diária precisar depender apenas da instância horária ou de minutos mais próxima de seu próprio horário de agendamento, configure a autodependência para a tarefa horária ou de minutos. Após essa configuração, a tarefa diária é iniciada assim que essa instância horária ou de minutos for concluída.

image

Para obter detalhes sobre as dependências e o comportamento de execução em vários cenários de agendamento, consulte Apêndice 1: Resumo de cenários de dependências complexas.

Como as dependências afetam a execução da tarefa

Depois que uma tarefa descendente tem uma dependência configure, a tarefa não é execute no horário programado se a tarefa ancestral não tiver sido concluída com sucesso.

Por exemplo, a tarefa horária B depende da tarefa diária A, e a tarefa horária B não possui autodependência configure.

  • Tarefa diária A: O horário agendado é defina como 07:00.

  • Tarefa horária B: Os horários agendados são defina como 00:00, 08:00 e 16:00.

Se a tarefa diária A não for concluída, a tarefa horária B não é execute mesmo quando seu horário agendado de 00:00 for atingido. O primeiro horário de execução real da tarefa descendente B é 07:00.

image

Apêndice 1: Resumo de cenários de dependências complexas

Se o horário agendado de uma tarefa descendente for anterior ao de sua tarefa ancestral, a tarefa descendente não é execute mesmo quando seu horário agendado for atingido. É necessário aguardar a conclusão da tarefa ancestral. Para a primeira instância da tarefa descendente em um determinado dia, se a tarefa ancestral não tiver nenhuma instância agendada antes, a tarefa descendente depende da primeira instância da tarefa ancestral daquele dia por padrão.

Tarefa horária depende de outras tarefas

Cenário

Detalhes de dependência e execução

Diagrama

Tarefa horária depende de uma tarefa horária

  • Ancestral e descendente têm o mesmo número de instâncias

    As instâncias geradas pelas tarefas ancestral e descendente no mesmo dia são mapeadas de um para um. A primeira instância descendente depende da primeira instância ancestral, a segunda instância descendente depende da segunda instância ancestral, e assim por diante.

  • Ancestral e descendente têm números diferentes de instâncias

    As instâncias geradas pelas tarefas ancestral e descendente no mesmo dia são mapeadas com base no princípio de proximidade do horário de agendamento. Cada instância descendente depende da instância ancestral cujo horário agendado é o mais próximo (no mesmo horário ou antes) do próprio horário agendado da instância descendente.

    Caso especial: Em uma configuração de dependência de agendamento em que a tarefa ancestral é execute com mais frequência do que a tarefa descendente (o cenário de "mais ancestrais e menos descendentes"), a lógica de dependência para instâncias descendentes segue o princípio de cobertura de intervalo em vez de simplesmente a proximidade.

    Escopo da dependência: Uma instância descendente depende de todas as instâncias ancestrais produzidas dentro de seu intervalo de ciclo (start, end].

    • start refere-se ao horário agendado da instância descendente anterior.

    • end refere-se ao horário agendado da instância descendente atual.

image

Tarefa horária depende de uma tarefa diária

  • Tarefa horária sem autodependência

    Todas as instâncias geradas pela tarefa horária descendente no dia atual dependem da tarefa diária ancestral. As instâncias horárias descendentes só começam a ser execute após a conclusão da tarefa diária. Nesse ponto, todas as instâncias horárias cujos horários agendados já foram atingidos são execute simultaneamente.

    Nota
    • Para evitar a execução simultânea, configure uma autodependência para a tarefa horária downstream.

    • Todas as instâncias periódicas geradas pela tarefa horária downstream executam-se de forma independente umas das outras.

  • Tarefa horária com autodependência

    • Apenas a primeira instância horária depende da tarefa diária ancestral. Cada instância horária subsequente depende da instância horária do ciclo anterior.

    • A instância horária atual só começa a ser execute após a conclusão tanto da tarefa diária quanto da instância horária do ciclo anterior. Mesmo que o horário agendado tenha sido atingido, as instâncias horárias não são execute simultaneamente.

    Nota

    Uma autodependência cria uma dependência entre dias. Se a última instância periódica do dia anterior não tiver sido concluída, a tarefa de hoje não pode ser agendada.

image

Tarefa horária depende de uma tarefa de minutos

  • Tarefa de minutos sem autodependência

    A tarefa horária descendente depende de todas as instâncias de minutos geradas pela tarefa de minutos ancestral dentro daquela hora.

  • Tanto a tarefa de minutos quanto a tarefa horária têm autodependência

    A tarefa horária descendente depende da instância de minutos ancestral cujo horário agendado é o mais próximo (no mesmo horário ou antes) do próprio horário agendado da descendente dentro daquela hora.

image

Tarefa diária depende de outras tarefas

Cenário

Dependência e execução

Diagrama

Tarefa diária depende de uma tarefa diária do mesmo ciclo

  • Tarefa diária ancestral sem autodependência

    Por padrão, a instância da tarefa diária descendente depende da instância da tarefa diária ancestral do mesmo ciclo.

  • Tarefa diária ancestral com autodependência

    Quando a tarefa diária ancestral tem uma autodependência configure, existe uma dependência entre ciclos entre a tarefa diária descendente e a tarefa diária ancestral.

    Nota

    Uma autodependência cria uma dependência entre dias. Se a última instância periódica do dia anterior não tiver sido concluída, a tarefa de hoje não pode ser agendada.

image

Tarefa diária depende de tarefas horárias do dia atual

  • Tarefa horária sem autodependência

    A tarefa diária descendente depende de todas as instâncias horárias geradas pela tarefa horária ancestral no dia atual. A tarefa diária só começa o processamento após todos os dados horários do dia terem sido processados.

    Nota

    Se a tarefa diária precisar depender apenas de uma instância horária específica, configure uma autodependência para a tarefa horária. Depois que essa instância horária específica for execute com sucesso, a tarefa diária é agendada automaticamente.

  • Tarefa horária com autodependência

    A tarefa diária descendente depende da instância horária ancestral cujo horário agendado é o mais próximo (no mesmo horário ou antes) do próprio horário agendado da descendente.

image

Tarefa diária depende de tarefas horárias ou de minutos do dia anterior

  • Tarefa horária ou de minutos sem autodependência

    A tarefa diária descendente depende de todas as instâncias horárias ou de minutos geradas pela tarefa ancestral no dia anterior.

  • Tarefa horária ou de minutos com autodependência

    A tarefa diária descendente depende da última instância horária ou de minutos gerada pela tarefa ancestral no dia anterior.

O exemplo a seguir usa uma tarefa diária que depende de uma tarefa horária do dia anterior.

image

Tarefa de minutos depende de outras tarefas

Cenário

Descrição da dependência

Diagrama

Tarefa de minutos depende de uma tarefa horária

  • Tarefa de minutos sem autodependência

    Cada instância da tarefa de minutos descendente depende da instância horária mais próxima cujo horário de agendamento é anterior ou igual ao seu próprio horário de agendamento, sem duplicar dependências.

    Nota

    Neste cenário, várias instâncias periódicas descendentes de minutos dependem da mesma instância periódica horária upstream.

  • Tanto a tarefa de minutos quanto a tarefa horária têm autodependência configure

    Cada instância da tarefa de minutos descendente depende de sua própria instância anterior e, com base no princípio de proximidade do horário de agendamento, depende da instância horária ancestral mais próxima cujo horário de agendamento é anterior ou igual ao seu próprio horário de agendamento.

image

Tarefa de minutos depende de uma tarefa diária

  • Tarefa de minutos sem autodependência

    Todas as instâncias de minutos geradas pela tarefa de minutos descendente em um determinado dia dependem da tarefa diária. A tarefa de minutos só pode ser execute depois que a tarefa diária atinge seu horário de agendamento e conclui sua execução.

    Nota
    • Após a conclusão da tarefa diária, as instâncias de minutos cujos horários de agendamento já foram atingidos são execute simultaneamente. Para evitar a execução simultânea, configure uma autodependência para a tarefa de minutos.

    • A execução de diferentes instâncias da tarefa de minutos não afeta a execução das outras.

  • Tarefa de minutos com autodependência configure

    • Apenas a primeira instância gerada pela tarefa de minutos descendente depende da tarefa diária. Todas as outras instâncias dependem diretamente de sua própria instância anterior.

    • Uma instância de minutos só começa a ser agendada após a conclusão da execução tanto da tarefa diária quanto da instância de minutos anterior. Nesse caso, as instâncias de minutos não são execute simultaneamente, mesmo que seus horários de agendamento já tenham sido atingidos.

    Nota

    Uma autodependência cria uma dependência entre dias. Se a última instância periódica do dia anterior não tiver sido concluída, a tarefa de hoje não pode ser agendada.

image

Outras tarefas dependendo de tarefas semanais, mensais ou anuais

Quando tarefas diárias, horárias ou de minutos dependem de tarefas semanais, mensais ou anuais, as tarefas semanais, mensais ou anuais geram instâncias de simulação em dias sem agendamento. Essas instâncias não processam dados de fato, não consomem recursos e não bloqueiam a execução de tarefas descendentes.

O exemplo a seguir usa o cenário de uma tarefa diária dependendo de uma tarefa semanal sem autodependência:

  • Tarefa semanal ancestral: execute normalmente na segunda e sexta-feira. Na terça, quarta, quinta, sábado e domingo, instâncias de simulação são geradas e defina automaticamente com status de sucesso no horário de agendamento, sem execute a lógica do código. As instâncias de simulação não afetam a execução normal das instâncias descendentes.

  • Tarefa diária descendente: Gera uma instância agendada todos os dias e depende da instância gerada pela tarefa semanal ancestral a cada dia (incluindo instâncias de simulação). Após a conclusão bem-sucedida da instância do dia da tarefa semanal ancestral, a instância descendente correspondente é acionada para execução.

image

Apêndice 2: Agendamento de fluxo de trabalho

O DataWorks permite adicionar nós ancestrais e descendentes a um fluxo de trabalho como um todo. Para obter detalhes sobre o agendamento de fluxo de trabalho, consulte Agendamento de fluxo de trabalho.

Apêndice 3: Agregação global de dados entre fusos horários (dependência de intervalo especificado)

Quando um data warehouse na china processa centralmente dados de várias regiões ao redor do mundo, as tarefas ancestrais horárias em cada região são execute com base no horário local, enquanto a tarefa diária descendente agrega dados diários com base no fuso horário da china. Devido às diferenças de fuso horário, a tarefa diária descendente deve usar uma dependência de specified range para depender de todas as instâncias de tarefas ancestrais horárias em cada região dentro de uma janela de tempo específica.

Exemplo de cenário (data e hora dos dados: 2026-01-22)

Região

Diferença de fuso horário em relação à china

Tipo de dependência

Configuração de deslocamento

Instâncias dependentes reais

Índia

2,5 horas atrás

Specified range

[-3, 21]

01-21 21:00 ~ 01-22 21:00 (24 instâncias)

Arábia Saudita

5 horas atrás

Specified range

[-5, 19]

01-21 19:00 ~ 01-22 19:00 (24 instâncias)

Comportamento de dependência entre dias em cenários de backfill

O comportamento de dependência entre dias das instâncias geradas por tarefas de backfill difere do comportamento das instâncias de agendamento regulares.

1. Dependências entre dias configure por specified range ou specified set

Ao execute uma tarefa de backfill, as dependências entre dias configure por specified range ou specified set não entram em vigor.

  • Comportamento específico: Quando instâncias de backfill são geradas para várias datas de negócios, o sistema ignora automaticamente todas as dependências que cruzam os limites de datas de negócios durante a resolução de dependências. Isso significa que uma instância de backfill monta apenas instâncias upstream da mesma data de negócios e não monta instâncias upstream que apontam para o dia anterior ou o dia seguinte, conforme defina na configuração.

  • Exemplo: Uma tarefa diária é configure com uma dependência de intervalo em uma tarefa horária upstream [-4h, 0] (dependendo das 4 instâncias antes das 00:00 do dia atual). No agendamento regular, a instância em May 11 depende das instâncias de May 10, 20:00-23:00. No entanto, ao fazer o backfill de dados para May 11, essa dependência entre dias é ignorada e a instância não monta nenhuma instância upstream.

2. Dependência entre dias padrão no backfill (mecanismo de serialização)

Por padrão, ao execute um backfill em lote não agrupado, existe uma dependência serial implícita entre instâncias de diferentes datas de negócios.

  • Comportamento específico: Todas as instâncias de backfill para a data de negócios D aguardam até que todas as instâncias de backfill para a data de negócios D-1 sejam concluídas com sucesso antes de começarem a ser execute. Isso significa que, se qualquer instância na data D-1 falhar, nenhuma das instâncias na data D é agendada.

  • Exceção: Se você selecione a execução agrupada para o backfill, esse mecanismo de serialização não entra em vigor. As instâncias de tarefa dentro de cada grupo de execução são execute de forma independente e não são afetadas pelo status das instâncias em outros grupos.