Partilhar via


Executar atividade de pipeline no Azure Data Factory e 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!

A atividade Executar pipeline permite que um pipeline do Data Factory ou Synapse invoque outro pipeline.

Criar uma atividade de pipeline de execução com a interface do usuário

Para usar uma atividade de Executar Pipeline em um pipeline, conclua as seguintes etapas:

  1. Procure pipeline no painel Atividades do pipeline e arraste uma atividade Executar pipeline para a tela do pipeline.

  2. Selecione a nova atividade Executar pipeline na tela, se ainda não estiver selecionada, e sua guia Configurações , para editar seus detalhes.

    Mostra a interface do usuário para uma atividade de pipeline de execução.

  3. Selecione um pipeline existente ou crie um novo usando o botão Novo. Selecione outras opções e configure quaisquer parâmetros para o pipeline conforme necessário para concluir sua configuração.

Sintaxe

{
    "name": "MyPipeline",
    "properties": {
        "activities": [
            {
                "name": "ExecutePipelineActivity",
                "type": "ExecutePipeline",
                "typeProperties": {
                    "parameters": {                        
                        "mySourceDatasetFolderPath": {
                            "value": "@pipeline().parameters.mySourceDatasetFolderPath",
                            "type": "Expression"
                        }
                    },
                    "pipeline": {
                        "referenceName": "<InvokedPipelineName>",
                        "type": "PipelineReference"
                    },
                    "waitOnCompletion": true
                 }
            }
        ],
        "parameters": [
            {
                "mySourceDatasetFolderPath": {
                    "type": "String"
                }
            }
        ]
    }
}

Propriedades do tipo

Property Description Valores permitidos Necessário
nome Nome da atividade de pipeline de execução. Cadeia (de carateres) Sim
tipo Deve ser definido como: ExecutePipeline. Cadeia (de carateres) Sim
gasoduto Referência de pipeline ao pipeline dependente que esse pipeline invoca. Um objeto de referência de pipeline tem duas propriedades: referenceName e type. A propriedade referenceName especifica o nome do pipeline de referência. A propriedade type deve ser definida como PipelineReference. PipelineReference Sim
parâmetros Parâmetros a serem passados para o pipeline invocado Um objeto JSON que mapeia nomes de parâmetros para valores de argumento Não
waitOnCompletion Define se a execução da atividade aguarda a conclusão da execução do pipeline dependente. A predefinição é verdadeiro. Boolean Não

Exemplo

Este cenário tem dois pipelines:

  • Pipeline mestre - Este pipeline tem uma atividade de pipeline de execução que chama o pipeline invocado. O pipeline mestre usa dois parâmetros: masterSourceBlobContainer, masterSinkBlobContainer.
  • Pipeline invocado - Este pipeline tem uma atividade de Cópia que copia dados de uma origem de Blob do Azure para o coletor de Blob do Azure. O pipeline invocado usa dois parâmetros: sourceBlobContainer, sinkBlobContainer.

Definição de pipeline mestre

{
  "name": "masterPipeline",
  "properties": {
    "activities": [
      {
        "type": "ExecutePipeline",
        "typeProperties": {
          "pipeline": {
            "referenceName": "invokedPipeline",
            "type": "PipelineReference"
          },
          "parameters": {
            "sourceBlobContainer": {
              "value": "@pipeline().parameters.masterSourceBlobContainer",
              "type": "Expression"
            },
            "sinkBlobContainer": {
              "value": "@pipeline().parameters.masterSinkBlobContainer",
              "type": "Expression"
            }
          },
          "waitOnCompletion": true
        },
        "name": "MyExecutePipelineActivity"
      }
    ],
    "parameters": {
      "masterSourceBlobContainer": {
        "type": "String"
      },
      "masterSinkBlobContainer": {
        "type": "String"
      }
    }
  }
}

Definição de pipeline invocada

{
  "name": "invokedPipeline",
  "properties": {
    "activities": [
      {
        "type": "Copy",
        "typeProperties": {
          "source": {
            "type": "BlobSource"
          },
          "sink": {
            "type": "BlobSink"
          }
        },
        "name": "CopyBlobtoBlob",
        "inputs": [
          {
            "referenceName": "SourceBlobDataset",
            "type": "DatasetReference"
          }
        ],
        "outputs": [
          {
            "referenceName": "sinkBlobDataset",
            "type": "DatasetReference"
          }
        ]
      }
    ],
    "parameters": {
      "sourceBlobContainer": {
        "type": "String"
      },
      "sinkBlobContainer": {
        "type": "String"
      }
    }
  }
}

Serviço vinculado

{
    "name": "BlobStorageLinkedService",
    "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=*****;AccountKey=*****"
    }
  }
}

Conjunto de dados de origem

{
    "name": "SourceBlobDataset",
    "properties": {
    "type": "AzureBlob",
    "typeProperties": {
      "folderPath": {
        "value": "@pipeline().parameters.sourceBlobContainer",
        "type": "Expression"
      },
      "fileName": "salesforce.txt"
    },
    "linkedServiceName": {
      "referenceName": "BlobStorageLinkedService",
      "type": "LinkedServiceReference"
    }
  }
}

Conjunto de dados do coletor

{
    "name": "sinkBlobDataset",
    "properties": {
    "type": "AzureBlob",
    "typeProperties": {
      "folderPath": {
        "value": "@pipeline().parameters.sinkBlobContainer",
        "type": "Expression"
      }
    },
    "linkedServiceName": {
      "referenceName": "BlobStorageLinkedService",
      "type": "LinkedServiceReference"
    }
  }
}

Executando o pipeline

Para executar o pipeline mestre neste exemplo, os seguintes valores são passados para os parâmetros masterSourceBlobContainer e masterSinkBlobContainer:

{
  "masterSourceBlobContainer": "executetest",
  "masterSinkBlobContainer": "executesink"
}

O pipeline mestre encaminha esses valores para o pipeline invocado, conforme mostrado no exemplo a seguir:

{
    "type": "ExecutePipeline",
    "typeProperties": {
      "pipeline": {
        "referenceName": "invokedPipeline",
        "type": "PipelineReference"
      },
      "parameters": {
        "sourceBlobContainer": {
          "value": "@pipeline().parameters.masterSourceBlobContainer",
          "type": "Expression"
        },
        "sinkBlobContainer": {
          "value": "@pipeline().parameters.masterSinkBlobContainer",
          "type": "Expression"
        }
      },

      ....
}

Aviso

Executar atividade de pipeline passa parâmetro de matriz como cadeia de caracteres para o pipeline filho. Isso se deve ao fato de que a carga útil é passada do pipeline pai para o >filho como string. Podemos vê-lo quando verificamos a entrada passada para o pipeline filho. Por favor, verifique esta seção para obter mais detalhes.

Veja outras atividades de fluxo de controle suportadas: