Todos os produtos
Search
Central de documentação

DataWorks:Caso de uso 2: Configurar uma dependência entre ciclos

Última atualização: Jul 29, 2026

Uma dependência entre ciclos vincula a instância do ciclo atual de um nó à conclusão bem-sucedida de uma instância de um ciclo anterior.

O DataWorks oferece suporte aos três tipos de dependências entre ciclos a seguir:

  • Instances of Child Nodes

    • Nesse tipo de dependência, o nó depende de seus nós downstream diretos. Por exemplo, se o nó A possui três nós downstream (B, C e D), sua instância atual é executada somente após a conclusão bem-sucedida de todas as instâncias do ciclo anterior dos nós B, C e D.

    • Esse cenário é comum quando a execução atual de um nó depende da limpeza correta dos dados na tabela de saída do ciclo anterior pelos nós downstream. Para confirmar que a limpeza ocorreu conforme o esperado, configure regras de qualidade de dados nas tabelas de saída desses nós downstream.

  • Instances of Current Node

    • Trata-se de uma autodependência entre ciclos. A instância atual do nó depende da conclusão bem-sucedida de sua própria instância no ciclo anterior.

    • Geralmente, aplica-se essa configuração quando a execução atual depende dos dados de negócio gerados pela execução anterior. Para validar os resultados da limpeza de dados, defina regras de monitoramento de qualidade de dados na tabela de saída do nó.

  • Instances of Custom Nodes: Especifique dependências em outros nós inserindo manualmente seus IDs. Se especificar vários nós, separe os IDs por vírgulas (,), como neste exemplo: 12345,23456.

    • Com essa configuração, a instância do nó atual só inicia após a execução bem-sucedida de todas as instâncias do ciclo anterior dos nós personalizados especificados.

    • Um caso frequente ocorre quando a lógica de negócio exige dados produzidos por outro processo, mas o código do nó atual não opera diretamente sobre esses dados.

Ao visualizar as dependências de nós no Operation Center, as dependências entre ciclos aparecem como linhas tracejadas para diferenciá-las das dependências do mesmo ciclo.

Ao desativar um nó, remova suas dependências de agendamento. Isso inclui tanto as dependências entre ciclos quanto as do mesmo ciclo.

Escolha o ciclo de dependência para os nós upstream conforme suas necessidades de negócio. Normalmente, configure uma dependência do mesmo ciclo ou uma dependência entre ciclos, mas não ambas simultaneamente. O recurso de análise automática cria uma dependência do mesmo ciclo por padrão. Para alterar isso, exclua primeiro a dependência do mesmo ciclo e adicione a nova em seguida. Para mais informações, consulte Logic of scheduling dependencies.

A figura a seguir ilustra as dependências entre os nós em um fluxo de trabalho.依赖关系

A página do Operation Center exibe as dependências presentes no fluxo de trabalho.依赖关系

Tomando o nó xc_create como exemplo, após escrever as instruções DDL CREATE TABLE xc_1 e CREATE TABLE xc_2 no editor de código, clique em Parse Input and Output from Code no painel de configuração de agendamento. O sistema gera automaticamente dois registros de saída (test.xc_1 e test.xc_2) na seção Node Output Name, com o método listado como Code Parsing. Na seção Cross-Cycle Dependencies, selecione Instances of Current Node, Instances of Child Nodes ou Instances of Custom Nodes.

O editor de código do nó xc_select contém duas instruções SQL: SELECT * FROM xc_1; e SELECT * FROM xc_2;. Por meio do recurso Parse Input and Output from Code, o sistema identifica automaticamente test.xc_1 e test.xc_2 como dependências upstream para este nó. Isso significa que xc_select depende das duas tabelas produzidas pelo nó xc_create.

Dependência entre ciclos: Nós filhos

Configure um nó para depender da conclusão bem-sucedida de seus nós downstream no ciclo anterior. Por exemplo, se o nó A possui os nós downstream B, C e D, sua instância do ciclo atual será executada apenas após a conclusão bem-sucedida das instâncias do ciclo anterior de B, C e D.

Utilize essa dependência quando a execução atual de um nó depender da limpeza de dados realizada por seus nós downstream no ciclo anterior. Esses nós downstream limpam os dados de saída que o nó pai gerou em sua execução prévia. A instância do ciclo atual do nó pai só inicia se as instâncias do ciclo anterior de seus nós downstream tiverem sido executadas com sucesso.

O nó xc_create está configurado para depender de seus nós filhos do ciclo anterior. Na seção Cross-Cycle Dependencies (formerly Previous Cycle), localizada na parte inferior do painel Scheduling Configuration, marque a caixa de seleção Instances of Child Nodes.

A página do Operation Center mostra as dependências entre os nós.依赖关系

Dependência entre ciclos: Nó atual

A execução de um nó no ciclo atual pode depender da conclusão bem-sucedida de sua própria instância no ciclo anterior. Se a instância do ciclo anterior falhar ou não for concluída, a execução da instância do ciclo atual será bloqueada.

Essa configuração é indicada quando uma tarefa de limpeza de dados no ciclo atual depende do resultado da mesma tarefa no ciclo anterior. Neste exemplo, o nó é agendado como uma tarefa horária para facilitar a observação da dependência.

Visualize as dependências do nó na página Operation Center > Auto Triggered Task O&M > Auto Triggered Instances.

Nota

Se um nó horário estiver configurado com autodependência (Cross-Cycle Dependencies: Current Node), a próxima instância horária desse nó não será executada caso a instância do ciclo anterior não tenha sido concluída com sucesso.

Por exemplo, se a primeira instância de uma tarefa horária falhar ou não for executada em um determinado dia, todas as instâncias horárias subsequentes dessa tarefa no mesmo dia também não serão executadas.

Dependência entre ciclos: Nós personalizados

Neste cenário, o nó xc_create depende da instância do ciclo anterior do nó 1000374815 devido à lógica de negócio, mesmo que seu código não utilize a tabela de saída produzida pelo nó 1000374815.

Adote essa abordagem quando sua lógica de negócio exigir dados produzidos por outro nó (neste caso, o nó 1000374815), mas o nó atual (xc_create) não operar diretamente sobre esses dados, como ao consultar a tabela de resultados do nó 1000374815.

O nó xc_create está configurado com uma dependência upstream no nó personalizado 1000374815. Na seção Cross-Cycle Dependencies do painel Scheduling Configuration, selecione Instances of Custom Nodes, insira o ID do nó 1000374815 no campo de entrada e clique em Add.

Verifique as dependências do nó na página Operation Center > Auto Triggered Task O&M > Auto Triggered Instances.周期实例

Configurações avançadas para dependências entre ciclos

Em fluxos de trabalho com um nó de ramificação que possui dois caminhos downstream, normalmente apenas um caminho é executado, enquanto o outro é definido como execução simulada (dry run). Esse status de execução simulada se propaga para todos os nós downstream subsequentes. Para gerenciar esse comportamento, o DataWorks fornece a opção Upstream node air running attribute does not conduct cross-cycle.

No entanto, se um nó em um caminho de ramificação possuir uma autodependência e sua instância do ciclo anterior tiver sido definida como execução simulada porque a ramificação não foi seguida, o nó poderá ficar permanentemente preso nesse estado.

Por exemplo, se o nó à esquerda estiver definido como execução simulada, seu nó downstream também assumirá esse status.分支节点

Para garantir que a execução de um nó no próximo ciclo seja determinada pela lógica de ramificação daquele mesmo ciclo, sem ser afetada pelo status de execução simulada de um ciclo anterior, siga estas etapas:

  1. Na página de configuração do nó, clique em Scheduling no painel à direita.

  2. Na seção Schedule, selecione Dependency on Last Cycle.

  3. Clique em Advanced Settings.

  4. Marque a opção Upstream node air running attribute does not conduct cross-cycle. Assim, a tarefa deixará de ser afetada pelo status de execução simulada de um nó de ramificação do ciclo anterior. Na seção Cross-Cycle Dependencies (formerly Previous Cycle), selecione Instances of Current Node. Defina Skip Upstream Dry-Run Status como Yes.

Nota

Esta opção aplica-se apenas ao status de execução simulada propagado a partir de um nó de ramificação não selecionado. Ela não afeta o status de execução simulada herdado da instância do ciclo anterior de um nó comum.

Casos de uso típicos para dependências entre ciclos

  • Caso de uso 1:

    • Cenário: Uma tarefa diária depende de uma tarefa horária. Você deseja que a tarefa diária seja executada no horário agendado (12:00) sem precisar aguardar a conclusão de todas as 24 instâncias horárias.

    • Solução: Configure a tarefa horária upstream para depender de sua própria instância anterior selecionando Dependency on Last Cycle > This node. Defina a tarefa diária downstream para executar às 12:00 e não configure nenhuma dependência entre ciclos para ela.

      Após a execução bem-sucedida da instância das 12:00 da tarefa horária upstream, a tarefa diária downstream será iniciada.

  • Caso de uso 2:

    • Cenário: Uma tarefa diária depende dos dados gerados por uma tarefa horária do dia anterior.

    • Solução: Configure a tarefa diária downstream selecionando Dependency on Last Cycle > Custom Rule. Em seguida, insira o ID do nó da tarefa horária upstream.

  • Caso de uso 3:

    • Cenário: Uma tarefa horária depende de uma tarefa diária. Após a conclusão da tarefa diária, vários horários agendados da tarefa horária podem já ter passado, causando a inicialização simultânea de múltiplas instâncias. Como evitar isso?

    • Solução: Configure a tarefa horária downstream para depender de sua própria instância anterior selecionando Dependency on Last Cycle > This node. Isso garante que as instâncias horárias sejam executadas sequencialmente.

  • Caso de uso 4:

    • Cenário: Um nó depende dos dados que ele mesmo produziu no ciclo anterior. Como garantir que os dados do ciclo anterior estejam prontos?

    • Solução: Configure o nó para depender de sua própria instância anterior selecionando Dependency on Last Cycle > This node.