Atividade Execute Pipeline no Azure Data Factory e no Synapse Analytics
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!
A atividade Execute Pipeline permite que um pipeline do Data Factory ou do Synapse invoque outro pipeline.
Criar uma atividade Execute Pipeline com interface do usuário
Para usar um atividade Execute Pipeline em um pipeline, siga estas etapas:
Procure pipeline no painel Atividades do pipeline e arraste uma atividade Execute Pipeline para a tela do pipeline.
Selecione a nova atividade Execute Pipeline na tela, se ainda não estiver selecionada, e a guia Configurações para editar os detalhes.
Selecione um pipeline existente ou crie um usando o botão Novo. Selecione outras opções e configure os 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 de tipo
Propriedade | Descrição | Valores permitidos | Obrigatório |
---|---|---|---|
name | Nome da atividade de execução de pipeline. | String | Sim |
type | Deve ser definido como: ExecutePipeline. | String | Sim |
pipeline | Referência de pipeline para o pipeline dependente que invoca esse pipeline. Um objeto de referência do 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 |
parameters | Parâmetros a serem passados para o pipeline invocado | Um objeto JSON que mapeia os nomes de parâmetro para os valores de argumento | No |
waitOnCompletion | Define se a atividade de execução aguarda a execução do pipeline dependente ser concluída. O padrão é true. | Boolean | No |
Amostra
Este cenário tem dois pipelines:
- Pipeline mestre – esse pipeline tem uma atividade de execução de pipeline que chama o pipeline invocado. O pipeline mestre usa dois parâmetros:
masterSourceBlobContainer
,masterSinkBlobContainer
. - Pipeline invocado – esse pipeline tem uma atividade de cópia que copia dados de uma origem do 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 invocado
{
"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
A atividade Execute Pipeline passa o parâmetro de matriz como cadeia de caracteres para o pipeline filho. Isso ocorre devido ao fato de que o conteúdo é passado do pipeline pai para o > filho como cadeia de caracteres. Podemos vê-lo quando verificamos a entrada passada para o pipeline filho. Confira esta seção para saber mais detalhes.
Conteúdo relacionado
Veja outras atividades de fluxo de controle com suporte: