Todos os produtos
Search
Central de documentação

DataWorks:Configuração de dependência do mesmo ciclo

Última atualização: Jul 20, 2026

Uma dependência do mesmo ciclo significa que o nó atual aguarda a execução bem-sucedida das instâncias de seus nós upstream no ciclo atual antes de iniciar sua própria execução. Esse conceito aplica-se a cenários em que o nó atual consome dados produzidos por um nó upstream no mesmo ciclo (mesmo dia). O DataWorks oferece diversas formas de configurar dependências do mesmo ciclo e inclui um recurso de visualização de dependências, permitindo revisar e ajustar configurações incorretas rapidamente para garantir que o agendamento de tarefas funcione conforme o esperado.

Princípios de configuração

As dependências de agendamento são estabelecidas pela correspondência entre saídas de nó e entradas de nó: quando o nome de saída de um nó upstream é especificado como entrada de um nó downstream, forma-se uma dependência. Após a configuração, o nó downstream só inicia a execução depois que o nó upstream for executado com sucesso. Antes de configurar, confirme o alvo e o tipo de dependência com base na linhagem de tabelas das operações de leitura e gravação do nó. Para mais informações, consulte Determine dependencies based on table lineage.

Saída de nó

A saída de nó é o nome de saída do nó atual. Ela funciona como identificador para que outros nós estabeleçam dependências com este nó, e não representa os dados reais produzidos por ele. Outros nós localizam este nó pelo nome de saída, definindo-o assim como uma dependência upstream.

O DataWorks gera automaticamente dois nomes de saída para cada nó:

  • ID aleatório: Globalmente único, não pode ser modificado ou excluído.

  • projectName.nodeName: Uma saída que inclui o nome do nó e pode ser modificada. Este nome de saída não é atualizado automaticamente quando o nome do nó é alterado.

Além disso, o DataWorks permite adicionar saídas manualmente ou usar o recurso Parse Inputs and Outputs from Code. Para obter informações sobre o suporte à análise de código para diferentes tipos de nó, consulte Supported node types for automatic code parsing.

Entrada de nó

A entrada de nó refere-se aos nós upstream dos quais o nó atual depende, podendo ser especificada pelo nome de saída do nó upstream (recomendado), pelo nome do nó ou pelo ID do nó.

O ID do nó é gerado somente após a implantação do nó upstream no ambiente de produção.

Diretrizes de configuração

Para aumentar a eficiência do desenvolvimento, utilize o recurso automatic code parsing para definir rapidamente as dependências de nó durante o desenvolvimento. Ao usar a análise automática de código, siga estas diretrizes:

  • Criação de nó: Utilize o mesmo nome para o nó e sua tabela de saída.

  • Desenvolvimento de código: Evite gravar dados de múltiplos nós na mesma tabela.

  • Configuração de dependência: Configure a tabela de saída do nó como a saída do próprio nó.

Etapa 1: Acessar a entrada de configuração

Abra a página de edição de um nó de Data Development. No painel de navegação à direita, clique em Schedule Settings. Na seção Scheduling Dependency, configure as dependências do nó.

  • Parent Nodes: Define de quais tarefas upstream a tarefa atual depende.

  • Output Name of Current Node: Define as saídas pelas quais outras tarefas podem estabelecer dependências neste nó.

Etapa 2: Adicionar nós de dependência

Nota
  • Por padrão, o DataWorks utiliza a linhagem de tabelas do seu código para definir dependências e verifica automaticamente se elas estão alinhadas com a linhagem de dados no momento do envio. Escolha ativar ou não o recurso de análise automática antes do envio. Para mais informações, consulte Configure automatic parsing before submission.

  • Caso o nó atual precise depender de dados produzidos por um nó upstream no dia anterior, ou se uma tarefa horária/minuto depender de sua própria instância do ciclo anterior, utilize cross-cycle dependencies para uma configuração rápida, ou use intervalos especificados ou conjuntos especificados para uma configuração mais precisa e flexível.

  • Se a frequência de agendamento do nó atual for diferente da frequência do nó upstream — por exemplo, uma tarefa diária dependendo de uma tarefa horária, ou dependendo de tarefas horárias com frequências distintas — consulte Scheduling configuration principles and examples for complex dependency scenarios.

É possível configurar dependências das três maneiras a seguir. Independentemente do método escolhido, o princípio subjacente permanece o mesmo.

1. Definir dependências de nó analisando a linhagem de tabelas do código

A análise de código define automaticamente os nomes de saída e as dependências upstream do nó ao analisar a linhagem de tabelas presente no código. Após a análise, as tabelas nas quais o nó grava dados são adicionadas automaticamente como saídas do nó no formato projectname.tablename, e as tabelas consultadas pelo nó são adicionadas automaticamente como entradas do nó.

Por exemplo, ao executar um SELECT em uma tabela, ela é automaticamente analisada como uma dependência upstream do nó atual; ao executar um INSERT em uma tabela, ela é automaticamente analisada como uma saída do nó atual. Para verificar as palavras-chave suportadas pela análise automática para cada tipo de nó, consulte Keywords supported by automatic code parsing for each node type .
  • Configurar dependências

    A análise de código suporta dois métodos: clicar manualmente em Parse Inputs and Outputs from Code e ativar a opção Automatic Parsing Before Committing. Ambos os métodos funcionam com o mesmo princípio. O método de análise automática antes do envio analisa entradas e saídas automaticamente quando você envia o código e solicita a configuração das dependências.

    Por exemplo, no workspace yunwan_lingyi, existe um nó MaxCompute chamado mc2 que depende da tabela de saída dws_user_info_all_di do nó MaxCompute mc1. O código do nó mc2 é o seguinte:

    INSERT OVERWRITE TABLE ads_user_info_1d PARTITION (dt='${workflow.var}')
    SELECT uid
      , MAX(region)
      , MAX(device)
      , COUNT(0) AS pv
      , MAX(gender)
      , MAX(age_range)
      , MAX(zodiac)
    FROM dws_user_info_all_di
    WHERE dt = '${workflow.var}'
    GROUP BY uid;

    Após clicar em Parse Inputs and Outputs from Code, o sistema analisa a entrada do nó atual como a tabela dws_user_info_all_di e corresponde automaticamente o nome da tabela de saída do nó upstream e o nome do nó upstream:

    Nome de saída do nó upstream

    Nome da tabela de saída do nó upstream

    Nome do nó upstream

    ID do Nó

    Workspace

    Proprietário

    Ciclo de agendamento

    Método

    Status da execução recente

    Ação

    yunwan_lingyi.dws_user_info_all_di

    yunwan_lingyi.dws_user_info_all_di

    mc1

    -

    Test Workspace

    lingyi01_testcloud_com

    Day

    Code parsing

    No data

    Delete

    O sistema também analisa a saída deste nó como a tabela ads_user_info_1d. O resultado da análise é o seguinte:

    Nome de saída

    Nome da tabela de saída

    Nome do nó downstream

    Proprietário

    Método

    Baseline afetada pelo nó downstream

    Ação

    ide.505487297_out

    -

    -

    -

    Added by system by default

    -

    Delete

    ide.mc2

    -

    -

    -

    Manually added

    -

    Delete

    yunwan_lingyi.ads_user_info_1d

    yunwan_lingyi.ads_user_info_1d

    -

    -

    Code parsing

    -

    Delete

    Neste ponto, o nó mc2 concluiu a configuração de dependência com o nó mc1.

  • Modificar dependências analisadas por código

    Se as dependências analisadas pelo código não atenderem às expectativas, ou se houver scenarios that do not support scheduling dependencies (tables with non-periodic data production) que exijam a exclusão manual de dependências, consulte o conteúdo a seguir para modificar as dependências analisadas automaticamente.

    Operação

    Descrição

    Excluir resultados de análise manualmente

    Na lista de dependências de nós upstream, exclua a entrada indesejada, realize a operação de exclusão e analise novamente. Após a exclusão, um comentário correspondente é adicionado automaticamente ao código para evitar que a dependência seja incluída novamente na próxima análise:

    --@exclude_input=Remove input
    --@exclude_output=Remove output

    Adicionar entradas e saídas manualmente

    No editor de código, clique com o botão direito no nome de uma tabela e selecione Add Input ou Add Output. Após a adição, um comentário correspondente é inserido automaticamente no código.

    --@extra_output=Add output
    --@extra_input=Add input

    Alternativamente, adicione dependências consultando manually adding upstream node dependencies through the scheduling configuration panel ou setting node dependencies by drawing lines in the workflow panel.

    Importante

    O DataWorks não permite excluir diretamente uma saída de nó que possua dependências downstream. Essa ação causará falhas na execução de tarefas downstream ou na recuperação de dados. Ajuste primeiro as tarefas downstream removendo a dependência upstream dos nós downstream e, em seguida, exclua a saída do nó upstream.

  • Cenários excluídos da análise automática

    Tabelas temporárias no DataWorks (tabelas em formato fixo definido em workspace table management, como aquelas cujos nomes começam com t_) não são analisadas automaticamente como saídas do nó atual ou como dependências de nós upstream.

  • Observações sobre o uso da análise automática

    Ao utilizar a análise automática para configurar dependências, certifique-se de que as saídas dos nós sejam únicas na região atual. Ao usar a análise automática em cenários de desenvolvimento no DataWorks, observe o seguinte:

    • Criação de nó: Cada nó possui uma saída padrão com o mesmo nome do nó. Se existirem nós com o mesmo nome no mesmo workspace, modifique manualmente a saída de um deles.

    • Desenvolvimento de código: A análise automática utiliza a tabela de saída de um nó como a saída do próprio nó. Se dois nós de agendamento no mesmo workspace inserirem dados na mesma tabela, a análise automática gerará um erro em um dos nós. Para mais informações, consulte Multiple nodes write data to the same table, and automatic parsing reports that node output names are the same.

    • Configuração de dependência: Se você utilizar tarefas SQL para processar as tabelas de saída de tarefas de sincronização em lote, para permitir que as tarefas SQL dependam rapidamente das tarefas de sincronização em lote por meio da análise automática baseada em linhagem, configure manualmente a tabela de saída do nó de sincronização em lote como uma saída de nó, ou utilize o nome da tabela de saída da tarefa de sincronização em lote como o nome do nó de sincronização em lote (a plataforma cria automaticamente uma saída de nó com o mesmo nome do nó). Caso contrário, ao enviar o nó SQL downstream, poderá ocorrer o seguinte erro: The parent node output name ${projectname.tablename} that the current node depends on does not exist. The current node cannot be submitted. Make sure the parent node with this output name has been submitted.

2. Adicionar dependências de nó upstream manualmente pelo painel de configuração de agendamento

No painel de configuração Scheduling Settings -> Scheduling Dependency -> Same cycle dependence, adicione manualmente as dependências de nó upstream inserindo a saída do nó, o nome do nó ou o ID do nó. Como nomes de nós podem ser duplicados, utilize as saídas de nó para estabelecer dependências.

3. Definir dependências de nó desenhando linhas no painel de workflow

Ao definir dependências desenhando linhas no painel DAG de um workflow, o DataWorks adiciona automaticamente uma saída no formato _out do nó upstream para o nó downstream para estabelecer a dependência entre os nós.

Nota

Quando uma linha de dependência é removida do painel de workflow, a dependência correspondente também é eliminada da configuração de agendamento do nó.

Etapa 3: Definir o tipo de dependência

Após estabelecer as dependências básicas entre upstream e downstream, defina como a dependência será vinculada — ou seja, como as instâncias downstream dependerão especificamente das instâncias upstream. O DataWorks oferece três métodos de vinculação de dependência do mesmo ciclo, variando do mais simples ao mais avançado.

Na lista Scheduling Settings -> Scheduling Dependency -> Same cycle dependence, selecione o Dependency Type para cada item de dependência upstream.

1. Dependência mais próxima (dependência padrão do mesmo ciclo)

  • Significado: Este é o método de dependência do mesmo ciclo mais comum e fundamental. Segue o princípio de "vinculação mais próxima", em que a instância downstream associa-se automaticamente à instância mais recente produzida no mesmo ciclo de negócios pelo nó upstream e aguarda sua conclusão, sem necessidade de configuração adicional (existem algumas exceções; para detalhes, consulte Scheduling configuration principles and examples for complex dependency scenarios).

  • Cenários aplicáveis:

    • Workflows ETL diários, semanais ou mensais padrão.

    • Relações de dependência um-para-um entre tarefas upstream e downstream, como uma tarefa diária dependendo de outra tarefa diária.

2. Intervalo especificado (depender de uma janela de tempo contínua)

Quando uma dependência simples um-para-um não atende às suas necessidades — por exemplo, quando a tarefa downstream precisa agregar dados da tarefa upstream ao longo de um período — utilize o Specified Range para uma configuração mais flexível.

Nota

Este recurso exige a ativação prévia da opção Advanced Scheduling Dependency Configuration nas configurações de agendamento do nó.

  • Método de configuração:

    1. Após selecionar o nó dependente, clique em Configure na coluna Actions e defina o tipo de dependência como Specified Range.

    2. Defina os deslocamentos esquerdo e direito em relação ao horário agendado do nó atual. O intervalo máximo permitido varia de -1440 a 1440, em minutos.

  • Descrição: Permite que uma tarefa downstream dependa de todas as instâncias upstream dentro de um intervalo de tempo contínuo. O intervalo é uma "janela deslizante" calculada dinamicamente em relação ao horário de execução agendado da própria tarefa downstream, permitindo apenas instâncias do dia atual e do dia anterior dentro do intervalo especificado.

  • Exemplo de lógica central: Uma tarefa downstream horária depende de outra tarefa upstream horária, com o intervalo configurado como [-2h, +2h].

    • Quando a instância downstream das 12:00 é executada, ela depende de todas as instâncias upstream das 10:00 às 14:00.

    • Quando a instância downstream das 13:00 é executada, a janela de dependência "desliza" automaticamente para o intervalo das 11:00 às 15:00.

  • Cenários aplicáveis:

    • Agregação de dados entre fusos horários: Uma tarefa diária na China (UTC+8) precisa agregar dados de todas as 24 tarefas horárias na Índia (UTC+5:30). Configure o intervalo como [-3h, 21h] para cobrir precisamente a janela de tempo físico correspondente ao dia útil local da Índia.

    • Agregação de janela entre dias: Uma tarefa diária executada de madrugada precisa processar dados desde a tarde anterior até a madrugada atual. Por exemplo, configure o intervalo como [-12h, 4h] para depender de instâncias upstream horárias das 12:00 de ontem até as 04:00 de hoje.

3. Conjunto especificado (depender de um grupo de instâncias fixas discretas)

Quando a lógica de dependência estiver relacionada a instâncias de saída específicas e discretas do upstream, o "conjunto especificado" é a melhor opção.

Nota

Para utilizar este recurso, ative primeiro a opção Advanced Scheduling Dependency Configuration nas configurações de agendamento do nó.

  • Método de configuração:

    1. Após selecionar o nó dependente, clique em Configure na coluna Actions e defina o tipo de dependência como Specified Set.

    2. Defina os deslocamentos esquerdo e direito em relação ao horário agendado do nó atual. O intervalo máximo permitido varia de -1440 a 1440, em minutos.

  • Descrição: Permite que uma tarefa downstream dependa de um conjunto fixo e discreto de instâncias upstream. Diferente da janela deslizante do "intervalo especificado", este conjunto de instâncias é estático e idêntico para todas as instâncias downstream.

  • Exemplo de lógica central: Uma tarefa downstream está configurada para depender das instâncias upstream às {02:00, 06:00, 10:00}. Seja a instância downstream das 08:00 ou das 12:00, ambas aguardarão a conclusão bem-sucedida dessas três instâncias específicas antes de serem executadas.

  • Cenários aplicáveis:

    Dependência de marcos importantes: A condição de início da tarefa downstream é que os dados de vários momentos-chave ao longo do dia (como snapshots da manhã, meio-dia e noite) provenientes do upstream estejam prontos.

Impacto da exclusão ou alteração de saídas de nó

Quando alterações nos dados da tabela de saída de um nó provocarem mudanças nas saídas do nó, ou quando você modificar manualmente as saídas do nó, observe o seguinte:

  • A exclusão de uma saída de nó não impacta diretamente os dados da tabela produzidos pelo nó.

  • Se uma saída de nó já possuir dependências downstream, alterá-la ou excluí-la pode causar impactos severos nas tarefas downstream.

    • Exclusão de tabela de saída: Quando uma saída de nó analisada automaticamente muda devido a uma alteração na tabela de saída, as tarefas downstream podem tornar-se orphaned nodes não agendadas, ou os dados downstream podem ser corrompidos devido à falta de dependências de dados.

    • Alteração de tabela de saída: Se uma tabela produzida pelo nó atual precisar ser transferida para outro nó, siga as instruções em Transfer a node output to another node.

    Caso uma saída de nó possua dependências downstream, antes de excluir esse nome de saída, comunique-se previamente com os proprietários das tarefas downstream, informe que uma saída específica da tarefa atual será excluída e solicite que ajustem prontamente as dependências das tarefas downstream para evitar que fiquem órfãs.

Próximas etapas: Verificar se as dependências estão conforme o esperado

Após concluir a configuração, verifique se ela está correta para garantir que o agendamento de tarefas funcione conforme o esperado:

  • Visualizar dependências: Evite atrasos no agendamento causados por relações de dependência inesperadas.

  • Verificação no envio: Confirme se as alterações de dependência estão conforme o esperado ao enviar o nó.

  • Confirmação de dependência de nó auto-acionado: Após a implantação do nó, confirme no Operation Center se as dependências da tarefa de agendamento de produção estão conforme o esperado. Um nó auto-acionado reflete o estado mais recente da tarefa no ambiente de produção, e as relações de dependência das instâncias estão relacionadas à forma como as instâncias são geradas.

Para mais informações, consulte Confirm scheduling dependencies.

Perguntas frequentes

  • P: Após configurar dependências usando o método de intervalo especificado ou conjunto especificado, se o horário de agendamento do nó upstream for alterado e não houver instâncias para o nó downstream depender, o que acontece quando o nó downstream atinge seu horário de execução?

    R: Quando a instância do nó downstream atinge seu horário de execução, ela não é executada porque a instância upstream não existe. Seu status no Operation Center será Not Run.

  • P: Se o nó atual estiver configurado com uma dependência entre ciclos e o método de dependência estiver definido como nós filhos de primeiro nível ou outros nós, e o nó selecionado tiver uma dependência de intervalo especificado ou conjunto especificado no nó atual, a dependência entra em vigor?

    R: Essa configuração pode formar uma dependência circular, portanto, mesmo que configurada, ela não entrará em vigor.

  • P: O Nó A e o Nó B são ambos agendados diariamente. Posso configurar o Nó A para depender da instância do mesmo ciclo (dia atual) do Nó B, enquanto o Nó B depende da instância do dia anterior do Nó A por meio de uma dependência de intervalo especificado?

    R: Não. Dependências de intervalo não suportam dependências circulares entre dias.

Para mais perguntas frequentes, consulte Scheduling dependencies.

Melhores práticas

Para obter informações sobre como configurar dependências de nó entre workspaces ou entre workflows dentro do mesmo workspace, consulte Configure cross-workspace or cross-workflow node dependencies.