Activité Execute Pipeline dans Azure Data Factory et Synapse Analytics

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

L’activité Execute Pipeline permet à un pipeline Data Factory ou Synapse d’appeler un autre pipeline.

Créer une activité d’exécution de pipeline avec l’interface utilisateur

Pour utiliser une activité d’exécution du pipeline dans un pipeline, effectuez les étapes suivantes :

  1. Recherchez pipeline dans le volet Activités du pipeline, puis faites glisser une activité d’exécution du pipeline vers le canevas du pipeline.

  2. Sélectionnez la nouvelle activité d’exécution du pipeline pour le canevas si elle ne l’est pas déjà, et son onglet Paramètres pour en modifier les détails.

    Shows the UI for an execute pipeline activity.

  3. Sélectionnez un pipeline existant ou créez-en un à l’aide du bouton nouveau. Sélectionnez d’autres options et configurez les paramètres du pipeline en fonction des besoins pour terminer votre configuration.

Syntaxe

{
    "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"
                }
            }
        ]
    }
}

Propriétés type

Propriété Description Valeurs autorisées Obligatoire
name Nom de l’activité d’exécution du pipeline. String Oui
type Doit avoir la valeur : ExecutePipeline. String Oui
pipeline Référence de pipeline au pipeline dépendant que pipeline appelle. Un objet de référence de pipeline comporte deux propriétés : referenceName et type. La propriété referenceName spécifie le nom du pipeline de référence. La propriété de type doit être définie sur PipelineReference. PipelineReference Oui
parameters Paramètres à passer au pipeline appelé Objet JSON qui mappe des noms de paramètres à des valeurs d’arguments Non
waitOnCompletion Définit si l’exécution de l’activité attend l’exécution du pipeline dépendant. La valeur par défaut est true. Boolean Non

Exemple

Ce scénario comporte deux pipelines :

  • Pipeline master : ce pipeline comporte une activité d’exécution du pipeline qui appelle le pipeline. Le pipeline master accepte deux paramètres : masterSourceBlobContainer, masterSinkBlobContainer.
  • Pipeline appelé : ce pipeline comporte une activité de copie qui copie les données d’une source d’objets blob Azure dans le récepteur d’objets blob Azure. Le pipeline appelé accepte deux paramètres : sourceBlobContainer, sinkBlobContainer.

Définition du pipeline master

{
  "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"
      }
    }
  }
}

Définition du pipeline appelé

{
  "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"
      }
    }
  }
}

Service lié

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

Jeu de données source

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

Jeu de données récepteur

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

Exécution du pipeline

Pour exécuter le pipeline master dans cet exemple, les valeurs suivantes sont transmises aux paramètres masterSourceBlobContainer et masterSinkBlobContainer :

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

Le pipeline master transfère ces valeurs au pipeline appelé comme indiqué dans l’exemple suivant :

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

      ....
}

Avertissement

L’activité d’exécution du pipeline transmet le paramètre de tableau en tant que chaîne au pipeline enfant. Cela est dû au fait que la charge utile est passée du pipeline parent à l’enfant >en tant que chaîne. Nous pouvons le constater en vérifiant l’entrée transmise au pipeline enfant. Pour plus d’informations, consultez cette section .

Consultez d’autres activités de flux de contrôle prises en charge :