Köra pipelineaktivitet i Azure Data Factory och Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

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

Utför följande steg om du vill använda en Körningspipeline-aktivitet i en pipeline:

  1. Sök efter pipeline i fönstret Pipelineaktiviteter och dra en Körningspipeline-aktivitet 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 informationen.

    Shows the UI for an execute pipeline activity.

  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

Property beskrivning Tillåtna värden Obligatoriskt
name Namnet på körningspipelineaktiviteten. String Ja
type Måste anges till: ExecutePipeline. String Ja
Rörledning Pipelinereferens till den beroende pipeline som den här pipelinen anropar. Ett pipelinereferensobjekt har två egenskaper: referenceName och typ. 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 Nej
waitOnCompletion Definierar om aktivitetskörningen väntar på att den beroende pipelinekörningen ska slutföras. Standard är sant. Booleskt Nej

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 Kör 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 .

Se andra kontrollflödesaktiviteter som stöds: