Pijplijnactiviteit uitvoeren in Azure Data Factory en Synapse Analytics

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Met de activiteit Pijplijn uitvoeren kan een Data Factory- of Synapse-pijplijn een andere pijplijn aanroepen.

Een Execute Pipeline-activiteit maken met de gebruikersinterface

Voer de volgende stappen uit om een Execute Pipeline-activiteit in een pijplijn te gebruiken:

  1. Zoek naar de pijplijn in het deelvenster Activiteiten van de pijplijn en sleep een Execute Pipeline-activiteit naar het pijplijncanvas.

  2. Selecteer de nieuwe execute pipeline-activiteit op het canvas als deze nog niet is geselecteerd en het bijbehorende tabblad Instellingen om de details te bewerken.

    Shows the UI for an execute pipeline activity.

  3. Selecteer een bestaande pijplijn of maak een nieuwe pijplijn met behulp van de knop Nieuw. Selecteer andere opties en configureer eventuele parameters voor de pijplijn zo nodig om uw configuratie te voltooien.

Syntaxis

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

Typeeigenschappen

Eigenschappen Beschrijving Toegestane waarden Vereist
name Naam van de pijplijnactiviteit uitvoeren. String Ja
type Moet worden ingesteld op: ExecutePipeline. String Ja
Pijpleiding Pijplijnreferentie naar de afhankelijke pijplijn die door deze pijplijn wordt aangeroepen. Een pijplijnverwijzingsobject heeft twee eigenschappen: referenceName en type. De eigenschap referenceName geeft de naam van de referentiepijplijn op. De typeeigenschap moet worden ingesteld op PipelineReference. PipelineReference Ja
parameters Parameters die moeten worden doorgegeven aan de aangeroepen pijplijn Een JSON-object waarmee parameternamen worden toegewezen aan argumentwaarden Nee
waitOnCompletion Hiermee definieert u of de uitvoering van de activiteit wacht totdat de uitvoering van de afhankelijke pijplijn is voltooid. De standaardwaarde is waar. Boolean Nee

Voorbeeld

Dit scenario heeft twee pijplijnen:

  • Hoofdpijplijn : deze pijplijn heeft één Execute Pipeline-activiteit die de aangeroepen pijplijn aanroept. De hoofdpijplijn heeft twee parameters: masterSourceBlobContainer, masterSinkBlobContainer.
  • Aangeroepen pijplijn: deze pijplijn heeft één Copy-activiteit waarmee gegevens van een Azure Blob-bron worden gekopieerd naar de Azure Blob-sink. De aangeroepen pijplijn heeft twee parameters: sourceBlobContainer, sinkBlobContainer.

Definitie van hoofdpijplijn

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

Definitie van aangeroepen pijplijn

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

Gekoppelde service

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

Brongegevensset

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

Sink-gegevensset

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

De pijplijn uitvoeren

Als u de hoofdpijplijn in dit voorbeeld wilt uitvoeren, worden de volgende waarden doorgegeven voor de parameters masterSourceBlobContainer en masterSinkBlobContainer:

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

De hoofdpijplijn stuurt deze waarden door naar de aangeroepen pijplijn, zoals wordt weergegeven in het volgende voorbeeld:

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

      ....
}

Waarschuwing

Pijplijnactiviteit geeft matrixparameter als tekenreeks door aan de onderliggende pijplijn. Dit komt door het feit dat de nettolading wordt doorgegeven van de bovenliggende pijplijn naar het >onderliggende als tekenreeks. We kunnen deze zien wanneer we de invoer controleren die is doorgegeven aan de onderliggende pijplijn. Plese bekijk deze sectie voor meer informatie.

Bekijk andere ondersteunde controlestroomactiviteiten: