Parametrizar os fluxos de dados de mapeamento

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!

O mapeamento de fluxos de dados no Azure Data Factory e nos pipelines Synapse dá suporte ao uso de parâmetros. Defina parâmetros dentro da sua definição de fluxo de dados e use-os em todas as suas expressões. Os valores dos parâmetros 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:

  • Use a linguagem de expressão de 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
  • Use qualquer linguagem de expressão para definir um valor literal estático

Use esse recurso para tornar seus fluxos de dados de uso geral, flexíveis e reutilizáveis. Você pode parametrizar 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 seu fluxo de dados, clique na parte em branco da tela de 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 novo parâmetro. Para cada parâmetro, você deve atribuir um nome, selecionar um tipo e, opcionalmente, definir um valor padrão.

Screenshot of create Data Flow parameters.

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 .

Screenshot shows the available parameters in the Parameters tab.

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

Screenshot shows the parameters in the Parameters tab with new parameters added.

Usando 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 de conjunto de dados ou embutidos).

Para o tipo de fonte 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.

Screenshot shows the use of linked service parameters in the data flow.

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 a partir de um pipeline

Depois de criar um fluxo de dados com parâmetros, você pode executá-lo a partir de um pipeline com a Executar atividade de fluxo de dados. Depois de adicionar a atividade à tela do pipeline, você verá 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 de faísca. Cada fluxo de dados de mapeamento pode ter qualquer combinação de pipeline e parâmetros de expressão de fluxo de dados.

Screenshot shows the Parameters tab with Data Flow expression selected for the value of myparam.

Parâmetros de expressão de pipeline

Os parâmetros de expressão do pipeline permitem fazer referência a variáveis do sistema, funções, parâmetros do pipeline e variáveis semelhantes a outras atividades do pipeline. Quando você clica em Expressão de pipeline, um painel de navegação lateral é aberto permitindo que você insira uma expressão usando o construtor de expressões.

Screenshot shows the expression builder pane.

Quando referenciados, os parâmetros de pipeline são avaliados e, em seguida, 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.

Literais de cadeia de caracteres vs expressões

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

Screenshot shows the Data flow parameters pane Expression selected for a parameter.

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

  • Se a expressão estiver marcada, $stringParam avalia para o valor de coluna1 todas as letras maiúsculas.
  • Se a expressão não estiver marcada (comportamento padrão), $stringParam avalia como 'upper(column1)'

Passagem em carimbos de data/hora

Na linguagem de expressão de pipeline, variáveis de sistema como e funções como carimbos de data/hora de retorno como pipeline().TriggerTimeutcNow() 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 a interpolação de cadeia de caracteres para incluir o carimbo de data/hora desejado em uma toTimestamp() função. 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').

Screenshot shows the Parameters tab where you can enter a trigger time.

Nota

Os fluxos de dados só podem suportar dígitos de até 3 milissegundos. A left() função é usada para cortar dígitos adicionais.

Exemplo de parâmetro de pipeline

Digamos que você tenha um parâmetro inteiro que esteja fazendo referência a um parâmetro intParam de pipeline do tipo String, @pipeline.parameters.pipelineParam.

Screenshot shows the Parameters tab with parameters named stringParam and intParam.

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

Screenshot shows the Parameters tab with the value of a b s (1) selected.

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

Screenshot shows the columns value.

Parâmetros de expressão de fluxo de dados

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

Nota

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 null.

Passando um nome de coluna como 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á fazer referência a ela diretamente como uma expressão de cadeia de caracteres. Se a coluna não estiver definida no esquema, use a byName() função. Lembre-se de converter a coluna para o tipo apropriado com uma função de fundição, como toString().

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

Passing in a column name as a parameter

Nota

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