Köra pipelineaktivitet i Azure Data Factory och Synapse Analytics
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Aktiviteten Kör pipeline gör att en Data Factory- eller Synapse-pipeline kan anropa en annan pipeline.
Skapa en körningspipelineaktivitet med användargränssnittet
Om du vill använda en Execute Pipeline-aktivitet i en pipeline utför du följande steg:
Sök efter pipeline i fönstret PipelineAktiviteter och dra aktiviteten Kör pipeline till pipelinearbetsytan.
Välj den nya aktiviteten Kör pipeline på arbetsytan om den inte redan är markerad och fliken Inställningar för att redigera dess information.
Välj en befintlig pipeline eller skapa en ny med knappen Nytt. Välj andra alternativ och konfigurera eventuella parametrar för pipelinen efter behov för att slutföra konfigurationen.
Syntax
{
"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"
}
}
]
}
}
Typegenskaper
Egenskap | Beskrivning | Tillåtna värden | Obligatorisk |
---|---|---|---|
name | Namnet på körningspipelineaktiviteten. | Sträng | Ja |
typ | Måste anges till: ExecutePipeline. | Sträng | Ja |
Rörledning | Pipelinereferens till den beroende pipeline som den här pipelinen anropar. Ett pipelinereferensobjekt har två egenskaper: referenceName och type. Egenskapen referenceName anger namnet på referenspipelinen. Typegenskapen måste anges till PipelineReference. | PipelineReference | Ja |
parametrar | Parametrar som ska skickas till den anropade pipelinen | Ett JSON-objekt som mappar parameternamn till argumentvärden | Inga |
waitOnCompletion | Definierar om aktivitetskörningen väntar på att den beroende pipelinekörningen ska slutföras. Standardvärdet är true. | Boolesk | Inga |
Exempel
Det här scenariot har två pipelines:
- Huvudpipeline – Den här pipelinen har en Körningspipeline-aktivitet som anropar den anropade pipelinen. Huvudpipelinen tar två parametrar:
masterSourceBlobContainer
,masterSinkBlobContainer
. - Anropad pipeline – Den här pipelinen har en aktiviteten Kopiera som kopierar data från en Azure Blob-källa till Azure Blob-mottagare. Den anropade pipelinen tar två parametrar:
sourceBlobContainer
,sinkBlobContainer
.
Huvudpipelinedefinition
{
"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"
}
}
}
}
Anropad pipelinedefinition
{
"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"
}
}
}
}
Länkad tjänst
{
"name": "BlobStorageLinkedService",
"properties": {
"type": "AzureStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=*****;AccountKey=*****"
}
}
}
Källdatauppsättning
{
"name": "SourceBlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": {
"value": "@pipeline().parameters.sourceBlobContainer",
"type": "Expression"
},
"fileName": "salesforce.txt"
},
"linkedServiceName": {
"referenceName": "BlobStorageLinkedService",
"type": "LinkedServiceReference"
}
}
}
Datauppsättning för mottagare
{
"name": "sinkBlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": {
"value": "@pipeline().parameters.sinkBlobContainer",
"type": "Expression"
}
},
"linkedServiceName": {
"referenceName": "BlobStorageLinkedService",
"type": "LinkedServiceReference"
}
}
}
Köra pipelinen
För att köra huvudpipelinen i det här exemplet skickas följande värden för parametrarna masterSourceBlobContainer och masterSinkBlobContainer:
{
"masterSourceBlobContainer": "executetest",
"masterSinkBlobContainer": "executesink"
}
Huvudpipelinen vidarebefordrar dessa värden till den anropade pipelinen enligt följande exempel:
{
"type": "ExecutePipeline",
"typeProperties": {
"pipeline": {
"referenceName": "invokedPipeline",
"type": "PipelineReference"
},
"parameters": {
"sourceBlobContainer": {
"value": "@pipeline().parameters.masterSourceBlobContainer",
"type": "Expression"
},
"sinkBlobContainer": {
"value": "@pipeline().parameters.masterSinkBlobContainer",
"type": "Expression"
}
},
....
}
Varning
Aktiviteten Execute Pipeline skickar matrisparametern som sträng till den underordnade pipelinen. Detta beror på att nyttolasten skickas från den överordnade pipelinen till den >underordnade som sträng. Vi kan se det när vi kontrollerar indata som skickas till den underordnade pipelinen. Mer information finns i det här avsnittet .
Nästa steg
Se andra kontrollflödesaktiviteter som stöds: