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
| |
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. | |
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:
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 |
| A figura a seguir mostra uma visão geral dos cenários detalhados para dependências entre tarefas horárias e de minutos: Exemplo: Uma tarefa horária depende de outra tarefa horária.
|
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. |
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:00e16: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.
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
Tarefa diária depende de outras tarefas
Tarefa de minutos depende de outras tarefas
Outras tarefas dependendo de tarefas semanais, mensais ou anuais
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 emMay 11depende das instâncias deMay 10, 20:00-23:00. No entanto, ao fazer o backfill de dados paraMay 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
Daguardam até que todas as instâncias de backfill para a data de negóciosD-1sejam concluídas com sucesso antes de começarem a ser execute. Isso significa que, se qualquer instância na dataD-1falhar, nenhuma das instâncias na dataDé 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.