Partilhar via


Definir valor de retorno de pipeline no Azure Data Factory e no Azure Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

No paradigma pipeline-child pipeline de chamada, você pode usar a atividade set Variable para retornar valores do pipeline filho para o pipeline de chamada. No cenário a seguir, temos um pipeline filho por meio da Atividade de Pipeline de Execução. E queremos recuperar informações do pipeline filho para depois serem usadas no pipeline de chamadas.

Captura de tela com ExecutePipeline Activity.

Introduza o valor de retorno de pipeline, um dicionário de pares de valores de chave, que permite comunicações entre pipelines filho e pipeline pai.

Pré-requisito - Chamando um pipeline filho

Como pré-requisito, seu design precisa de uma Atividade de Pipeline de Execução chamando um pipeline filho, com Aguardar na Conclusão habilitado na atividade.

Captura de tela definindo ExecutePipeline Activity para aguardar a conclusão.

Configurar o valor de retorno do pipeline no pipeline filho

Expandimos a atividade set Variable para incluir variáveis do sistema Pipeline Return Value. Você não precisa defini-los no nível do pipeline (ao contrário de quaisquer outras variáveis que você usa no pipeline).

  1. Procure Definir variável no painel Atividades do pipeline e arraste uma atividade Definir variável para a tela do pipeline.
  2. Selecione a atividade Definir variável na tela, se ainda não estiver selecionada, e, em seguida, a guia Variáveis para editar seus detalhes.
  3. Escolha Valor de retorno de pipeline para o tipo de variável.
  4. Selecione Novo para adicionar um novo par de valores de chave.
  5. O número de pares chave-valor que podem ser adicionados é limitado apenas pelo limite de tamanho do JSON retornado (4 MB).

A captura de tela mostra a ui para o valor de retorno do pipeline.

Existem algumas opções para tipos de valor, incluindo

Nome do tipo Description
String Um valor de cadeia de caracteres constante. por exemplo: 'ADF é incrível'
Expression Ele permite que você faça referência a resultados de atividades anteriores. Você pode usar a interpolação de cadeia de caracteres aqui para incluir valores de expressão em linha, como "The value is @{guid()}".
Matriz Ele espera uma matriz de valores de cadeia de caracteres. Pressione a tecla "enter" para separar os valores na matriz
Boolean Verdadeiro ou Falso
Nulo Status do espaço reservado para sinal; o valor é nulo constante
Int Um valor numérico do tipo inteiro. Por exemplo: 42
Float Um valor numérico do tipo float. Por exemplo: 2.71828
Object Aviso apenas casos de uso complicados. Ele permite que você incorpore uma lista de pares de valores de chave para o valor

O valor do tipo de objeto é definido da seguinte forma:

[{"key": "myKey1", "value": {"type": "String", "content": "hello world"}}, 
 {"key": "myKey2", "value": {"type": "String", "content": "hi"}}
]

Recuperando valor no pipeline de chamadas

O valor de retorno do pipeline filho torna-se a saída da atividade da Execute Pipeline Activity. Você pode recuperar as informações com @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. O caso de uso é ilimitado. Por exemplo, você pode usar

  • Um valor int do pipeline filho para definir o período de espera para uma atividade de espera.
  • Um valor de cadeia de caracteres para definir a URL para a atividade da Web.
  • Uma carga útil de valor de expressão para uma atividade de script para fins de registro.

A captura de tela mostra o pipeline de chamadas.

Há dois textos explicativos percetíveis na referência aos valores de retorno do pipeline.

  1. Com o tipo de objeto , você pode expandir ainda mais para o objeto json aninhado, como @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
  2. Com o tipo de matriz , você pode especificar o índice na lista, com @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. O número é indexado a zero, o que significa que começa com 0.

Nota

Certifique-se de que o keyName que você está referenciando existe no pipeline do seu filho. O construtor de expressões ADF não pode confirmar a verificação referencial para você. O Pipeline falhará se a chave referenciada estiver ausente na carga útil

Considerações especiais

  • Embora você possa incluir várias atividades set Pipeline Return Value em um pipeline, é importante garantir que apenas uma delas seja executada no pipeline.

    Captura de tela com Valor de retorno de pipeline e ramificação.

    Para evitar o problema de chave ausente descrito anteriormente quando o pipeline de chamada, recomendamos que você tenha a mesma lista de chaves para todas as ramificações no pipeline filho. Considere o uso de tipos nulos para chaves que não têm valores, em uma ramificação específica.

  • A linguagem de expressão do Azure Data Factory não oferece suporte direto a objetos JSON embutidos. Em vez disso, é necessário concatenar cadeias de caracteres e expressões corretamente.

    Por exemplo, para a seguinte expressão JSON:

    {
      "datetime": "@{utcnow()}",
      "date": "@{substring(utcnow(),0,10)}",
      "year": "@{substring(utcnow(),0,4)}",
      "month": "@{substring(utcnow(),5,2)}",
      "day": "@{substring(utcnow(),8,2)}"
    }
    

    Uma expressão equivalente do Azure Data Factory seria:

    @{
      concat(
        '{',
        '"datetime": "', utcnow(), '", ',
        '"date": "', substring(utcnow(),0,10), '", ',
        '"year": "', substring(utcnow(),0,4), '", ',
        '"month": "', substring(utcnow(),5,2), '", ',
        '"day": "', substring(utcnow(),8,2), '"',
        '}'
      )
    }
    

Saiba mais sobre outra atividade de fluxo de controle relacionada: