Köra pipelineaktivitet i Azure Data Factory och Synapse Analytics

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

Tips

Data Factory i Microsoft Fabric är nästa generations Azure Data Factory, med en enklare arkitektur, inbyggd AI och nya funktioner. Om dataintegrering är nytt för dig börjar du med Fabric Data Factory. Befintliga ADF-arbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.

Aktiviteten Kör pipeline gör att en Data Factory- eller Synapse-pipeline kan anropa en annan pipeline.

Skapa en aktivitet för exekvering av pipeline via 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 panelen Pipelineaktiviteter och dra en aktivitet Utför pipeline till pipelinearbetsytan.

  2. Välj den nya aktiviteten Kör pipeline på arbetsytan om den inte redan är markerad. Välj sedan fliken Inställningar för att redigera dess information.

    Visar användargränssnittet för en aktivitet för att utföra pipeline.

  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

Egendom beskrivning Tillåtna värden Obligatoriskt
namn Namnet på exekveringspipelineaktiviteten. String Ja
typ Måste anges till: ExecutePipeline. String Ja
rörledning Pipeline-referens till den beroende pipelinen 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. Standardinställningen är sann. 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. Huvudpipeline har två parametrar: masterSourceBlobContainer, masterSinkBlobContainer.
  • Invoked pipeline – Den här pipelinen har en Copy activity 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 pipeline-definitionen

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

Måldataset

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

Köra processflödet

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: