Compartilhar via


Parametrizando os fluxos de dados de mapeamento

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

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

Os fluxos de dados de mapeamento nos pipelines do Azure Data Factory e do Synapse dão suporte ao uso de parâmetros. Defina parâmetros dentro de sua definição de fluxo de dados e use-os em todas as suas expressões. Os valores de parâmetro são definidos pelo pipeline de chamada por meio da atividade Executar Fluxo de Dados. Você tem três opções para definir os valores nas expressões de atividade de fluxo de dados:

  • Usar a linguagem de expressão do fluxo de controle de pipeline para definir um valor dinâmico
  • Usar a linguagem de expressão de fluxo de dados para definir um valor dinâmico
  • Usar qualquer linguagem de expressão para definir um valor literal estático

Use essa capacidade para tornar seus fluxos de dados de uso geral, flexíveis e reutilizáveis. Você pode parametrizar as configurações e expressões de fluxo de dados com esses parâmetros.

Criar parâmetros em um fluxo de dados de mapeamento

Para adicionar parâmetros ao fluxo de dados, clique na parte em branco da tela fluxo de dados para ver as propriedades gerais. No painel de configurações, você verá uma guia chamada Parâmetro. Selecione Novo para gerar um parâmetro. Para cada parâmetro, você deve atribuir um nome, selecionar um tipo e, opcionalmente, definir um valor padrão.

Captura de tela da criação de parâmetros do Fluxo de Dados.

Usar parâmetros em um fluxo de dados de mapeamento

Os parâmetros podem ser referenciados em qualquer expressão de fluxo de dados. Os parâmetros começam com $ e são imutáveis. você encontrará a lista de parâmetros disponíveis dentro do Construtor de Expressões na guia Parâmetros.

Captura de tela mostra os parâmetros disponíveis na guia Parâmetros.

Você pode adicionar parâmetros adicionais rapidamente selecionando Novo parâmetro e especificando o nome e o tipo.

Captura de tela mostra os parâmetros na guia parâmetros com novos parâmetros adicionados.

Usar serviços vinculados parametrizados em um fluxo de dados de mapeamento

Os serviços vinculados parametrizados podem ser usados em um fluxo de dados de mapeamento (para tipos de fonte embutida ou de conjunto de dados).

Para o tipo de origem embutida, os parâmetros de serviço vinculados são expostos nas configurações de atividade de fluxo de dados dentro do pipeline, conforme mostrado abaixo.

A captura de tela mostra o uso de parâmetros de serviço vinculados no fluxo de dados.

Para o tipo de fonte do conjunto de dados, os parâmetros de serviço vinculados são expostos diretamente na configuração do conjunto de dados.

Atribuir valores de parâmetro de um pipeline

Depois de criar um fluxo de dados com parâmetros, você pode executá-lo a partir de um pipeline com a atividade Executar Fluxo de Dados. Depois de adicionar a atividade à tela do pipeline, você receberá os parâmetros de fluxo de dados disponíveis na guia Parâmetros da atividade.

Ao atribuir valores de parâmetro, você pode usar a linguagem de expressão de pipeline ou a linguagem de expressão de fluxo de dados com base em tipos do Spark. Cada fluxo de dados de mapeamento pode ter qualquer combinação de parâmetros de expressão de fluxo de dados e pipeline.

Captura de tela mostra a guia parâmetros com a expressão de Fluxo de Dados selecionada para o valor de myparam.

Parâmetros de expressão de pipeline

Os parâmetros de expressão de pipeline permitem que você referencie variáveis de sistema, funções, parâmetros de pipeline e variáveis semelhantes a outras atividades de pipeline. Quando você clicar em Expressão de pipeline, uma navegação lateral será aberta permitindo que você insira uma expressão usando o construtor de expressões.

Captura de tela mostra o painel construtor de expressões.

Quando referenciados, os parâmetros de pipeline são avaliados e seu valor é usado na linguagem de expressão de fluxo de dados. O tipo de expressão de pipeline não precisa corresponder ao tipo de parâmetro de fluxo de dados.

Cadeias de caracteres literais contra expressões

Ao atribuir um parâmetro de expressão de pipeline do tipo cadeia de caracteres, por padrão, as aspas serão adicionadas e o valor será avaliado como um literal. Para ler o valor do parâmetro como uma expressão de fluxo de dados, marque a caixa expressão próxima ao parâmetro.

Captura de tela mostra a Expressão do painel de parâmetros de Fluxo de Dados selecionado para um parâmetro.

Se o parâmetro stringParam de fluxo de dados fizer referência a um parâmetro de pipeline com valor upper(column1).

  • Se a Expressão estiver marcada, $stringParam será avaliado como o valor de Coluna1 todas as letras maiúsculas.
  • Se a expressão não estiver marcada (comportamento padrão), $stringParam será avaliada como 'upper(column1)'

Passando carimbos de data/hora

Na linguagem da expressão do pipeline, as variáveis de sistema como pipeline().TriggerTime e as funções como utcNow() retornam carimbos de data/hora como cadeias de caracteres no formato 'aaaa-MM-dd'T'HH:mm:ss.SSSSSSZ'. Para convertê-los em parâmetros de fluxo de dados do tipo carimbo de data/hora, use interpolação de cadeia de caracteres para incluir o carimbo de data/hora desejado em uma função toTimestamp(). Por exemplo, para converter o tempo de gatilho do pipeline em um parâmetro de fluxo de dados, você pode usar toTimestamp(left('@{pipeline().TriggerTime}', 23), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS').

Captura de tela mostra a guia parâmetros, na qual você pode inserir um tempo de gatilho.

Observação

Os Fluxos de Dados só podem dar suporte a até 3 dígitos de milissegundos. A função left() é usada para cortar dígitos adicionais.

Exemplos de parâmetro do pipeline

Imagine que você tem um parâmetro inteiro intParam que faz referência a um parâmetro de pipeline do tipo cadeia de caracteres, @pipeline.parameters.pipelineParam.

Captura de tela mostra a guia Parâmetros com parâmetros chamados stringParam e intParam.

@pipeline.parameters.pipelineParam é atribuído um valor de abs(1) em um runtime.

Captura de tela mostra a guia Parâmetros com o valor de a b s (1) selecionado.

Quando $intParam é referenciado em uma expressão como uma coluna derivada, ele avaliará o abs(1) devolver 1.

Captura de tela mostra o valor das colunas.

Parâmetros de expressão de fluxo de dados

Selecionar a expressão fluxo de dados abrirá o construtor de expressões de fluxo de dados. Você poderá referenciar funções, outros parâmetros e qualquer coluna de esquema definida em todo o fluxo de dados. Esta expressão será avaliada como está quando referenciada.

Observação

Se você passar uma expressão inválida ou fizer referência a uma coluna de esquema que não existe nessa transformação, o parâmetro será avaliado como NULO.

Passando um nome de coluna como um parâmetro

Um padrão comum é passar um nome de coluna como um valor de parâmetro. Se a coluna for definida no esquema de fluxo de dados, você poderá referenciá-la diretamente como uma expressão de cadeia de caracteres. Se a coluna não estiver definida no esquema, use a função byName(). Não deixe de converter a coluna para seu tipo apropriado com uma função de conversão, como toString().

Por exemplo, se você quiser mapear uma coluna de cadeia de caracteres com base em um parâmetro columnName, pode adicionar uma transformação coluna derivada igual a toString(byName($columnName)).

Passando um nome de coluna como um parâmetro

Observação

Em expressões de fluxo de dados, não há suporte para interpolação de cadeia de caracteres (substituir variáveis dentro da cadeia de caracteres). Em vez disso, concatene a expressão em valores de cadeia de caracteres. Por exemplo, 'string part 1' + $variable + 'string part 2'