Definir atividade variável 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!
Use a atividade Definir variável para definir o valor de uma variável existente do tipo String, Bool ou Array definida em um pipeline do Data Factory ou Synapse ou use a atividade Definir variável para definir um valor de retorno de pipeline (visualização).
Criar uma atividade Definir variável com a interface do usuário
Para usar uma atividade Definir variável em um pipeline, conclua as seguintes etapas:
- Selecione o plano de fundo da tela do pipeline e use a guia Variáveis para adicionar uma variável:
Procure Definir variável no painel Atividades do pipeline e arraste uma atividade Definir variável para a tela do pipeline.
Selecione a atividade Definir variável na tela, se ainda não estiver selecionada, e selecione a guia Configurações para editar seus detalhes.
Selecione Variável de pipeline para seu tipo de variável.
Selecione a variável para a propriedade Name.
Insira uma expressão para definir o valor das variáveis. Essa expressão pode ser uma expressão de cadeia de caracteres literal ou qualquer combinação de expressões dinâmicas , funções, variáveis de sistema ou saídas de outras atividades.
Definindo um valor de retorno de pipeline com a interface do usuário
Expandimos a atividade set Variable para incluir uma variável de sistema especial, chamada Pipeline Return Value, permitindo a comunicação do pipeline filho para o pipeline de chamada, no cenário a seguir.
Você não precisa definir a variável antes de usá-la. Para obter mais informações, consulte Valor de retorno de pipeline
Propriedades do tipo
Property | Descrição | Obrigatório |
---|---|---|
nome | Nome da atividade em pipeline | sim |
descrição | Texto descrevendo o que a atividade faz | não |
tipo | Deve ser definido como SetVariable | sim |
nomevariável | Nome da variável definida por esta atividade | sim |
valor | Literal de cadeia de caracteres ou valor de objeto de expressão ao qual a variável é atribuída | sim |
Incrementando uma variável
Um cenário comum envolvendo variável é usar uma variável como iterador dentro de uma atividade Until ou ForEach . Em uma atividade Definir variável , não é possível fazer referência à variável que está sendo value
definida no campo, ou seja, não é autorreferenciada. Para contornar essa limitação, defina uma variável temporária e, em seguida, crie uma segunda atividade de variável set. A segunda atividade da variável set define o valor do iterador como a variável temporária. Aqui está um exemplo desse padrão:
- Primeiro, você define duas variáveis: uma para o iterador e outra para o armazenamento temporário.
- Em seguida, você usa duas atividades para incrementar valores
{
"name": "pipeline1",
"properties": {
"activities": [
{
"name": "Increment J",
"type": "SetVariable",
"dependsOn": [],
"policy": {
"secureOutput": false,
"secureInput": false
},
"userProperties": [],
"typeProperties": {
"variableName": "temp_j",
"value": {
"value": "@add(variables('counter_i'),1)",
"type": "Expression"
}
}
},
{
"name": "Set I",
"type": "SetVariable",
"dependsOn": [
{
"activity": "Increment J",
"dependencyConditions": [
"Succeeded"
]
}
],
"policy": {
"secureOutput": false,
"secureInput": false
},
"userProperties": [],
"typeProperties": {
"variableName": "counter_i",
"value": {
"value": "@variables('temp_j')",
"type": "Expression"
}
}
}
],
"variables": {
"counter_i": {
"type": "Integer",
"defaultValue": 0
},
"temp_j": {
"type": "Integer",
"defaultValue": 0
}
},
"annotations": []
}
}
As variáveis têm escopo no nível do pipeline. Isso significa que eles não são seguros para threads e podem causar um comportamento inesperado e indesejado se forem acessados de dentro de uma atividade de iteração paralela, como um loop ForEach, especialmente quando o valor também está sendo modificado dentro dessa atividade foreach.
Conteúdos relacionados
Saiba mais sobre outra atividade de fluxo de controle relacionada: