Todos os produtos
Search
Central de documentação

DataWorks:Configurar um nó for-each

Última atualização: Aug 25, 2026

O DataWorks oferece o nó for-each para iterar sobre um conjunto de resultados de um nó de atribuição. Você também pode personalizar o fluxo de trabalho dentro do nó for-each. Este tópico apresenta um exemplo em que um nó for-each itera duas vezes sobre a saída de um nó de atribuição e imprime a contagem atual do loop em cada iteração, demonstrando sua lógica e configuração.

Pré-requisitos

Antes de configurar o nó, compreenda sua lógica para evitar erros. Para obter mais informações, consulte How for-each nodes work.

Procedimento

O nó for-each é geralmente utilizado em conjunto com um nó de atribuição. O procedimento geral é descrito a seguir.

遍历节点

  1. Definir dependências do nó

    Um nó for-each deve depender de um nó de atribuição. Para detalhes de configuração, consulte Create and configure a workflow.

  2. Passar o conjunto de resultados

    Use o parâmetro de saída integrado outputs em Parameters do nó de atribuição como parâmetro de entrada em Parameters do nó for-each. Para detalhes de configuração, consulte Configure an Assignment Node.

  3. Recuperar parâmetros nos nós internos

    Personalize o fluxo de trabalho interno do nó for-each conforme suas necessidades de negócio. Nos nós internos, utilize variáveis integradas para recuperar valores de parâmetros e executar a tarefa de loop. Para obter mais informações sobre as variáveis integradas, consulte Built-in variables. Para detalhes de configuração, consulte Configure a for-each node.

Criar e configurar um fluxo de trabalho

Crie um fluxo de trabalho onde um nó de atribuição seja o nó upstream e um nó for-each seja o nó downstream.

  1. Faça login no DataWorks console. Na região de destino, clique em Data Development and O&M > Data Development no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.

  2. Create a scheduled workflow.

  3. Crie um nó for-each.

    1. Passe o mouse sobre o ícone 新建 e clique em Create Node > General > for-each.

      Alternativamente, localize o fluxo de trabalho desejado, clique com o botão direito em General e selecione Create Node > for-each.

    2. Na caixa de diálogo Create Node, defina o nome e o caminho do nó.

    3. Clique em OK.

  4. Crie um nó de atribuição.

    1. Dê um clique duplo no fluxo de trabalho para abrir sua página de configuração. Clique em New Node e arraste General > Assignment Node para a tela à direita.

      Para obter mais informações sobre nós de atribuição, consulte Assignment node.

    2. Na caixa de diálogo Create Node, defina o nome e o caminho do nó. Por padrão, o nó é criado no diretório do fluxo de trabalho atual.

    3. Clique em OK.

  5. Arraste uma linha do nó de atribuição até o nó for-each para estabelecer a dependência entre eles.

Configurar um nó de atribuição

  1. Dê um clique duplo no nó de atribuição para abrir sua página de configuração.

  2. Na lista suspensa Language, selecione Shell.

  3. Na página de configuração do nó, insira a seguinte instrução:

    echo 'this is name,ok';
  4. No painel à direita, clique em Scheduling. Na seção Input and Output Parameters > Output Parameters.

  5. Clique no ícone Salvar 保存 na barra de ferramentas.

  6. Clique no ícone Commit 提交 na barra de ferramentas.

    Na caixa de diálogo Submission, insira uma Change Description e escolha se deseja solicitar uma revisão de código.

    Importante
    • Defina as propriedades Rerun attribute e Parent Nodes do nó antes de fazer o commit.

    • A revisão de código ajuda a controlar a qualidade e evita erros causados pela implantação de código incorreto no ambiente de produção sem verificação prévia. Se você ativar a revisão de código, o nó só poderá ser implantado após a aprovação dos revisores. Para obter mais informações, consulte Code review.

    Se o seu workspace estiver no modo padrão, clique em Deploy no canto superior direito da página de configuração do nó para implantar a tarefa no ambiente de produção após o commit. Para obter mais informações, consulte Deploy tasks.

Configurar um nó for-each

  1. Dê um clique duplo no nó for-each para abrir sua página de configuração. Por padrão, ele contém um nó inicial, um nó Shell e um nó final.

    Você pode substituir o nó Shell por outro tipo de nó:

    • Para usar um nó Shell, configure-o diretamente.

    • Para usar outro tipo de nó, primeiro exclua o nó Shell padrão e crie o nó necessário.

    Este exemplo utiliza um nó Shell.

  2. Edite o nó Shell.

    1. Dê um clique duplo no nó Shell para abrir sua página de configuração.

    2. Insira o seguinte código:

      echo ${dag.loopTimes} # Print the current loop count.
      Nota
      • A lógica dos nós inicial e final é fixa e não pode ser editada.

      • Após modificar o código no nó Shell, salve as alterações. O DataWorks não solicita que você salve as mudanças ao fazer o commit do nó. Caso não salve, as alterações não entrarão em vigor.

      O nó for-each suporta as quatro variáveis integradas a seguir:

      • ${dag.foreach.current}: A linha de dados atual sendo iterada.

      • ${dag.loopDataArray}: O conjunto de dados de entrada.

      • ${dag.offset}: O deslocamento (offset).

      • ${dag.loopTimes}: A contagem atual do loop. O valor corresponde a ${dag.offset}+1.

      Para obter mais informações, consulte Built-in variables e Examples of built-in variable values.

  3. Configure o nó for-each.

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

    2. Na seção Input and Output Parameters > Input Parameters, clique em Modify ao lado do nome de parâmetro padrão loopDataArray.

    3. Na lista suspensa Value Source, selecione o parâmetro outputs do nó de atribuição upstream e clique em Save.

      Nota

      Depois de adicionar a dependência do nó de atribuição upstream na aba Properties, especifique manualmente sua origem de valor. Caso contrário, ocorrerá um erro ao fazer o commit do nó.

  4. Clique no ícone Salvar 保存 na barra de ferramentas para salvar o nó for-each.

  5. Clique no ícone Commit 提交 na barra de ferramentas.

    Importante

    Defina as propriedades Rerun attribute e Parent Nodes do nó antes de fazer o commit.

    Na caixa de diálogo Submission, selecione os nós que deseja enviar e clique em Determine.

    Se o seu workspace estiver no modo padrão, clique em Deploy no canto superior direito após fazer o commit do nó com sucesso. Para obter mais informações, consulte Deploy tasks.

Testar o nó e visualizar os resultados

  1. No canto superior direito da página, clique em O&M Personnel para acessar o Operation Center.

  2. No painel de navegação à esquerda, clique em Auto Triggered Task O&M > Periodic tasks.

  3. Localize o nó. No DAG à direita, clique com o botão direito no nó de atribuição e selecione Retroactive Instance > Current and Descendant Nodes Retroactively.

  4. Atualize a página Data Backfill Instance. Após a execução bem-sucedida da instância de backfill de dados, clique em View DAG ao lado da instância.

  5. Clique com o botão direito no nó de atribuição e selecione View Runtime Log para verificar o resultado.

    O log de execução mostra que o nó de atribuição foi executado com sucesso. A saída do Shell é this is name,ok, e o resultado é analisado como ["this is name", "ok"] (dois registros de dados). O nó for-each iterará sobre esses dois registros.

  6. Na página Data Backfill Instance, clique com o botão direito no nó for-each e selecione View Inner Nodes.

  7. Na página de nós internos, clique em Loop 1 à esquerda. Em seguida, clique com o botão direito no nó Shell e selecione View Runtime Log.

    Na página de log de execução, verifique o log do nó Shell referente à primeira iteração. A saída do Shell é 1, que representa a contagem atual do loop (valor de ${dag.loopTimes}).

  8. Da mesma forma, verifique o log do nó Shell para a segunda iteração.

    A saída do Shell é 2, correspondente à contagem do loop na segunda iteração (o valor de ${dag.loopTimes} é 2). Isso confirma que o nó for-each iterou com sucesso sobre os dois registros de dados no conjunto de resultados da atribuição.