Todos os produtos
Search
Central de documentação

DataWorks:Dependências

Última atualização: Jul 02, 2026

Este tópico descreve as perguntas frequentes sobre dependências.

Conceito chave

Uma dependência de agendamento é uma relação upstream-downstream entre nós. No DataWorks, um nó de tarefa downstream só começa a executar depois que seu nó de tarefa upstream executa com êxito.

Nota

Após configurar uma dependência, um dos pré-requisitos para a execução do nó atual é que os nós pais dos quais o nó atual depende devem executar com êxito. Para obter mais informações sobre dependências de agendamento, consulte Dependências de agendamento.

Por que preciso configurar dependências de agendamento

Ao configurar dependências de agendamento, o sistema garante que uma tarefa agendada recupere os dados corretos durante a execução. Depois que o nó upstream do qual o nó atual depende executa com êxito, o DataWorks identifica que os dados mais recentes na tabela upstream foram produzidos com base no status de execução do nó. Em seguida, o nó downstream recupera os dados. Isso evita problemas em que o nó downstream recupera dados antes que a tabela upstream termine de produzi-los.

Como configuro dependências de agendamento no DataWorks?

No DataWorks, a saída de um nó upstream serve como entrada de um nó downstream para formar uma dependência de nó.

Nota
  • As tarefas SQL configuram automaticamente as entradas e saídas do nó das seguintes maneiras:

    • Ao executar select em uma tabela, o sistema analisa automaticamente o nó que produz a tabela como a dependência upstream do nó atual.

    • Ao executar insert ou create em uma tabela, o sistema analisa automaticamente a tabela como a saída do nó atual.

  • Para tarefas de Integração de Dados, adicione manualmente a tabela de saída no formato projectname.tablename como saída do nó. Isso garante que o recurso de análise automática possa resolver a dependência quando os nós downstream processarem a tabela de saída sincronizada.

  • Como uma saída exclusiva é necessária para localizar um nó exclusivo e formar uma dependência de nó, a saída do nó (projectname.tablename) deve ser única.

Em quais cenários as dependências de agendamento não têm suporte?

As dependências de agendamento no DataWorks visam principalmente garantir que as tabelas atualizadas periodicamente por nós agendados tenham seus dados consumidos corretamente pelos nós downstream. Portanto, a plataforma não consegue monitorar tabelas que não são atualizadas por nós agendados do DataWorks.

Se uma tabela não for produzida por agendamento periódico e um nó usar select para consultar dados dessa tabela, exclua manualmente a dependência de nó upstream gerada automaticamente a partir da instrução select. As tabelas não produzidas por agendamento periódico incluem:

  • Tabelas carregadas no DataWorks a partir de uma origem local

  • Tabelas de dimensão

  • Tabelas não produzidas pelo agendamento do DataWorks

  • Tabelas produzidas por tarefas manuais

Como excluo tabelas que não exigem dependências?

Clique com o botão direito do mouse no nome da tabela no código e selecione Delete Output; em seguida, execute a análise automática novamente. Adicione a anotação --@exclude_input=table_name na primeira linha do editor de código para excluir uma dependência de entrada especificada (por exemplo, --@exclude_input=xc_dw_user_info_all_d). Depois, clique com o botão direito do mouse no editor e selecione Delete Output para remover dependências de saída desnecessárias. Clique em Parse Inputs and Outputs no painel de configurações de agendamento à direita para reanalisar as dependências de agendamento. Na tabela de dependências de agendamento, visualize o nome de saída do nó pai atual, a source (adicionada manualmente ou analisada automaticamente) e outras informações. Também é possível clicar em Delete na coluna Actions para remover a dependência correspondente.

Erro de envio: A saída do nó pai da qual o nó atual depende não existe

Ao enviar um nó, o sistema exibe um erro indicando que a saída do nó pai da qual o nó atual depende não existe. Para possíveis causas e soluções, consulte Solucionar o erro de saída inexistente do nó pai.

Aviso de envio: Entradas e saídas não correspondem à análise de linhagem de código

Ao enviar um nó, o sistema exibe um aviso indicando que as entradas e saídas não correspondem à análise de linhagem de código. Para possíveis causas e soluções, consulte Solucionar a incompatibilidade entre entradas/saídas e análise de linhagem de código.

Por que um nome de nó pai analisado automaticamente informa que a saída do nó pai dependente (tabela) não existe?

Ao enviar um nó no Data Studio, aparece um erro na parte superior do painel de configuração de dependência do nó: The dependent parent node output workshop_yanshi.tb_2 does not exist. You cannot submit this node. Submit the parent node first. Essa dependência é gerada automaticamente pelo sistema a partir da instrução FROM tb_2 no código SQL.

Esse erro não significa que a tabela não existe. Ele indica que o sistema não consegue encontrar um nó que produza os dados da tabela para estabelecer a dependência do nó.

Esse problema pode ocorrer pelos dois motivos a seguir:

  • O nó upstream não foi enviado. Envie-o e tente novamente.

  • O nó upstream foi enviado, mas seu nome de saída não é workshop_yanshi.tb_2.

Nota
  • Se tb_2 for uma tabela produzida por uma tarefa de sincronização, adicione-a manualmente como saída do nó no formato projectname.tablename na seção de saída do nó da tarefa de sincronização que produz a tabela tb_2. Para obter mais informações, consulte Configurar dependências de agendamento.

  • Se tb_2 for uma tabela que não é atualizada diariamente por um nó agendado, clique com o botão direito do mouse na tabela no código para excluir a entrada e execute a análise automática novamente.

Para tabelas que não são atualizadas diariamente por nós agendados, consulte Em quais cenários as dependências de agendamento não têm suporte?

Por que alguns nós têm nomes e IDs de nós downstream na seção de saída do nó, enquanto outros estão vazios e não podem ser editados manualmente?

As dependências de nó são estabelecidas quando nós downstream referenciam saídas de nós upstream. Se o nó atual não tiver nós filhos downstream, esta seção estará vazia. Após configurar um nó filho downstream deste nó, o conteúdo é analisado e exibido automaticamente.

Como excluo dependências desnecessárias?

Clique com o botão direito do mouse na tabela no código e exclua a entrada; em seguida, selecione a análise automática novamente para excluir nós de dependência upstream desnecessários.

Conceito chave

No sistema de agendamento do DataWorks, as dependências upstream-downstream entre nós são configuradas para garantir a produção e recuperação eficazes de dados. A decisão de configurar uma dependência pode ser baseada na existência de uma forte correlação entre os dados. Para obter mais informações, consulte Configurar dependências de agendamento.

Conceito chave

Um nome de saída de nó é usado para estabelecer dependências entre nós. Por exemplo, se o nome de saída do nó A for ABC e o nó B usar ABC como entrada, uma relação upstream-downstream é estabelecida entre o nó A e o nó B.

Um nó pode ter vários nomes de saída?

Sim. Uma saída de nó serve como identificador do nó atual. Se um nó downstream precisar depender do nó atual, ele poderá referenciar qualquer nome de saída deste nó como o nome de saída do nó pai do nó downstream para estabelecer uma dependência.

Se vários nós gravam dados na mesma tabela, a análise automática relata um erro de que os nomes de saída do nó são iguais. Os nós podem ter o mesmo nome de saída?

Não. Os nomes de saída de nó, assim como os nós e as tabelas, devem ser exclusivos no nível do locatário. Isso garante que a análise automática possa localizar um nó exclusivo com base em uma saída exclusiva para estabelecer a dependência do nó. Se vários nós produzirem dados para a mesma tabela em seu cenário, determine de qual nó o nó downstream deve depender ao analisar automaticamente essa tabela (o nó que grava dados na tabela por último, garantindo a recuperação correta de dados pelo nó downstream). Modifique também as saídas dos outros nós para garantir a exclusividade.

Se dois nós agendados no mesmo workspace inserirem dados na mesma tabela, a análise automática fará com que um dos nós produza o seguinte erro: The output name of node ${nodename1} in workspace ${projectname} is the same as that of node ${nodename2} in workspace ${projectname}: ${node_outputname}. Multiple nodes cannot use the same output name.

Como evito que tabelas intermediárias sejam analisadas ao usar a análise automática?

Selecione o nome da tabela intermediária no código SQL, clique com o botão direito do mouse e selecione Delete Input ou Delete Output; em seguida, execute a análise automática para entradas e saídas novamente.

Como configuro o nó pai para o nó mais upstream em um fluxo de trabalho?

Se o nó for o nó inicial de um fluxo de trabalho, adicione um nó virtual como o nó inicial do fluxo de trabalho. O upstream do nó virtual pode ser definido como o nó raiz do workspace. Para obter mais informações sobre como usar nós virtuais, consulte Usar nós virtuais.

Por que o nó A encontra um nome de saída inexistente do nó B ao pesquisar nomes de saída de nó upstream?

A análise de dependência baseia-se nas informações de nós que já foram enviados e implantados. Se você excluir um nome de saída do nó B após o envio, sem submeter a alteração ao sistema de agendamento, o nome de saída excluído do nó B ainda poderá ser encontrado durante a pesquisa a partir do nó A.

Por que o sistema relata que o nó atual tem nós filhos e não pode ser desimplantado, mesmo sem dependência mostrada nas configurações de agendamento?

Um nó só pode ser desimplantado quando nenhum outro nó depende dele tanto no ambiente de desenvolvimento quanto no ambiente de produção. Verifique isso consultando o Operation Center do ambiente de desenvolvimento e o Operation Center do ambiente de produção.

Por que algumas linhas de dependência são tracejadas no Operation Center?

Linhas tracejadas indicam dependências entre ciclos. Para obter mais informações sobre dependências entre ciclos, consulte Dependências entre ciclos.

Conceitos chave

  • Impacto no nó atual: A instância do próximo ciclo do nó upstream só começa a executar depois que a instância do ciclo anterior executa com êxito.

    Cenário: Suponha que uma tarefa horária seja agendada a partir das 00:00. A instância das 01:00 deve aguardar a execução bem-sucedida da instância das 00:00 antes de poder iniciar.

  • Impacto nos nós downstream: Suponha que o nó downstream seja uma tarefa agendada diariamente. O nó diário downstream passa de depender diretamente de várias instâncias horárias para depender diretamente de uma instância horária específica do nó upstream. Como a autodependência está configurada para as instâncias horárias, a tarefa diária downstream depende efetivamente de todas as instâncias horárias upstream indiretamente.

Como configuro dependências quando uma tarefa diária depende de uma tarefa horária em diferentes cenários?

  • Cenário 1: Uma tarefa diária depende de todas as instâncias horárias da tarefa horária no dia atual.

    Quando uma tarefa diária depende diretamente de uma tarefa horária, ela depende de todas as instâncias da tarefa horária no dia atual.Daily task directly depends on hourly task

  • Cenário 2: Uma tarefa diária depende de uma instância horária específica no dia atual.

    • Configuração da tarefa horária: Configure a autodependência para a tarefa horária. Nas configurações de agendamento da tarefa horária, selecione o nó atual como a dependência do ciclo anterior.

    • Configuração da tarefa diária: A tarefa diária depende diretamente da tarefa horária. Configure a tarefa horária como a entrada (nó upstream dependente) da tarefa diária.

    Setting self-dependency for an hourly scheduled task

  • Cenário 3: Uma tarefa diária depende de todas as instâncias horárias da tarefa horária do dia anterior.

    • Configure uma dependência entre ciclos para a tarefa diária na tarefa horária. Nas configurações de agendamento da tarefa diária, selecione Previous-cycle Scheduling Dependency, escolha Custom e insira o ID do nó da tarefa horária.

    • Remova a dependência do mesmo ciclo na tarefa horária das configurações de agendamento da tarefa diária. Na seção de dependência do mesmo ciclo (Parent Nodes), remova a dependência do mesmo ciclo na tarefa horária.

Nota

Se você configurou uma dependência entre ciclos na tarefa horária para a tarefa diária, verifique se a dependência do mesmo ciclo foi removida. Caso contrário, a tarefa diária dependerá tanto de todas as instâncias horárias do dia atual quanto de todas as instâncias horárias do dia anterior.

Quando uma tarefa diária depende diretamente de uma tarefa horária, quando a tarefa diária é executada?

Como funciona: Quando uma tarefa diária depende diretamente de uma tarefa horária, a tarefa diária depende de todas as instâncias da tarefa horária no dia atual. A tarefa diária só inicia após a última instância horária do dia executar com êxito.

Cenário:

  • Suponha que uma tarefa horária seja agendada a partir das 00:00, sendo executada uma vez a cada hora. A tarefa diária deve aguardar a conclusão de todas as 24 instâncias horárias antes de poder iniciar.

  • Visualizando dependências no Operation Center: Ao clicar com o botão direito do mouse na tarefa diária para visualizar os nós pais, nota-se que ela depende de todas as instâncias da tarefa horária no dia atual, ou seja, depende de 24 instâncias horárias. (linha de dependência: sólida)

Quando uma tarefa diária depende de uma tarefa horária, como faço para que a tarefa diária dependa de uma instância horária específica em vez de todas as instâncias horárias?

Como funciona: Para fazer uma tarefa diária depender de uma instância horária específica no dia atual, configure a autodependência para a tarefa horária e defina o horário agendado da tarefa diária para corresponder à instância horária específica.

Cenário: Quando a tarefa diária precisa depender da instância horária agendada às 12:00 no dia atual

  • Configuração de dependência:

    • Configuração da tarefa horária upstream: Configure a autodependência para a tarefa horária. Em Scheduling Settings, na seção Time attribute, selecione Previous-cycle Scheduling Dependency > Current Node.

    • Configuração da tarefa diária downstream: Defina o horário agendado da tarefa diária para 12:00.

  • Visualizando dependências no Operation Center:

    • Ao clicar com o botão direito do mouse na instância diária para visualizar os nós pais, nota-se que ela depende da instância horária agendada às 12:00 no dia atual. (linha de dependência: sólida)

    • Ao clicar com o botão direito do mouse na instância horária para visualizar os nós pais, nota-se que o nó pai upstream é a instância horária anterior. A instância das 12:00 depende da instância das 11:00. (linha de dependência: tracejada, porque a tarefa horária tem uma dependência entre ciclos configurada com o item de dependência definido como o nó atual)

Quando uma tarefa diária depende de uma tarefa horária, como faço para que a tarefa diária dependa de todas as instâncias horárias do dia anterior em vez do dia atual?

Como funciona: Para fazer uma tarefa diária depender de todas as instâncias horárias do dia anterior, configure uma dependência entre ciclos na tarefa horária para a tarefa diária.

Cenário: A tarefa diária precisa depender de todas as instâncias horárias do dia anterior.

  • Configuração de dependência:

    • Configuração da tarefa diária downstream: Configure uma dependência entre ciclos na tarefa horária. Em Scheduling Settings, na seção Time attribute, selecione Previous-cycle Scheduling Dependency > Hourly Task e insira o ID do nó.

    • Configuração da tarefa horária upstream: Nenhuma configuração é necessária.

  • Visualizando dependências no Operation Center:

    Ao clicar com o botão direito do mouse na instância diária downstream para visualizar os nós pais, nota-se que ela depende de todas as instâncias horárias da tarefa horária do dia anterior. (linha de dependência: tracejada, porque a tarefa diária tem uma dependência entre ciclos configurada na tarefa horária)

Quando devo configurar o item de dependência do ciclo anterior como o nó atual?

Cenário de negócios: Se o nó atual precisar de dados produzidos pelo mesmo nó no ciclo anterior, configure a autodependência para o nó atual. Isso significa que a instância do próximo ciclo do nó atual só começa a executar depois que a instância do ciclo anterior termina, evitando a recuperação de dados enquanto a instância do ciclo anterior ainda está em execução (os dados ainda não foram produzidos).

  • Se o nó atual depender de dados produzidos por ele mesmo no ciclo anterior e você precisar confirmar o horário em que o ciclo anterior produziu dados, acesse Scheduling Settings > Time attribute da tarefa e configure Previous-cycle Scheduling Dependency > Current Node.

  • Se uma tarefa horária depender de uma tarefa diária, e a tarefa horária downstream tiver vários ciclos cujos horários agendados já passaram quando a tarefa diária upstream terminar a execução, a tarefa horária poderá executar vários ciclos simultaneamente. Nesse caso, acesse Scheduling Settings > Time attribute da tarefa e configure Previous-cycle Scheduling Dependency > Current Node.

Como configuro dependências quando um nó downstream depende de várias tarefas simultaneamente?

Se um nó downstream estiver configurado para depender de várias tarefas, faça uma avaliação de negócios para determinar se todas as dependências são necessárias. Se os dados da tabela tiverem fortes correlações, recomendamos configurar todos os nós como dependências. Para obter informações sobre a configuração de dependências de nó, consulte Por que preciso configurar dependências de agendamento.

Por exemplo, o nó downstream C depende tanto da tarefa diária B quanto da tarefa horária A no dia atual. A tarefa horária A gera a tabela A e a tarefa diária B gera a tabela B. O nó downstream C precisa de dados tanto da tabela A quanto da tabela B.

Suponha que o nó downstream C consulte dados tanto da tabela A quanto da tabela B. Se você configurar apenas a tarefa horária A como Parent Nodes sem configurar a tarefa diária B como Parent Nodes, o nó downstream C poderá começar a executar antes que a tarefa diária upstream B termine. Isso causa uma falha ao recuperar dados da tabela de saída B da tarefa diária. Portanto, neste exemplo, configure tanto a tarefa diária quanto a tarefa horária como Parent Nodes do nó downstream C.

Se o nó downstream não tiver uma forte dependência da tabela upstream, ou seja, se o nó downstream puder recuperar dados da tabela upstream a qualquer momento sem problemas (mesmo que o nó upstream não tenha produzido os dados mais recentes), não será necessário configurar uma dependência de nó.

Se a tarefa upstream A for uma tarefa horária e a tarefa downstream B for uma tarefa diária executada uma vez após a conclusão de todas as instâncias da tarefa A, a tarefa diária ainda será executada se a tarefa horária for executada até o dia seguinte? Os parâmetros de agendamento são afetados?

A tarefa diária B depende diretamente de todas as instâncias da tarefa horária A no dia atual. A tarefa diária B agrega os dados da tarefa horária do dia atual. Se a tarefa horária concluir sua última instância após a meia-noite (no dia seguinte), a tarefa diária downstream ainda será executada. Apenas o horário de execução difere; a substituição de parâmetros de agendamento não é afetada.

O nó A é executado a cada hora, pontualmente, todos os dias, e o nó B é executado uma vez por dia. Como faço para que o nó B inicie após a primeira execução bem-sucedida do nó A a cada dia?

Ao configurar o nó A, selecione Previous-cycle Scheduling Dependency e escolha Current Node. Defina o horário agendado do nó B para 00:00. Nas instâncias diárias agendadas automaticamente, a instância do nó B dependerá apenas da instância do nó A gerada às 00:00, que é a primeira instância do nó A.

Existem três tarefas A, B e C. Como executo A->B->C a cada hora (B inicia após A terminar e C inicia após B terminar)?

  1. Configuração de dependência: Defina a relação de dependência de modo que a saída de A sirva como entrada de B, e a saída de B sirva como entrada de C.

  2. Configuração de frequência de agendamento: Como o agendamento é configurado no nível do nó, todos os três nós A, B e C devem ter seu agendamento definido como horário.

Como configuro dependências entre fluxos de trabalho e entre projetos na mesma região?

Como funciona: A saída de um nó upstream serve como entrada de um nó downstream para formar uma dependência de nó. Adicione a saída do nó do qual deseja depender (entre projetos ou entre fluxos de trabalho) à seção de entrada do nó que requer a dependência.

Uma tarefa configurada com reexecução em caso de falha não foi reexecutada após a falha e relatou o erro: Task Run Timed Out, Killed by System!!

  • Mensagem de erro:

    Quando Scheduling Settings > Time attribute > Rerun da tarefa alvo está definido como Allow Regardless of Running Status ou Allow upon Failure Only, a tarefa não é reexecutada após a falha e produz o erro Task Run Timed Out, Killed by System!.

  • Possível causa:

    A opção Scheduling Settings > Time attribute desta tarefa tem o Timeout configurado. Quando a duração da tarefa excede o período de tempo limite, a tarefa é encerrada automaticamente. Tarefas que falham devido a tempo limite não acionam o mecanismo de reexecução.

  • Solução:

    Quando uma tarefa falha devido a tempo limite, o mecanismo de reexecução em caso de falha não entra em vigor. Reinicie a tarefa manualmente.