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:

  1. Sök efter pipeline i fönstret PipelineAktiviteter och dra aktiviteten Kör pipeline till pipelinearbetsytan.

  2. 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.

    Visar användargränssnittet för en körningspipelineaktivitet.

  3. 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: