Freigeben über


Ausführen der Pipeline-Aktivität in Azure Data Factory und Synapse Analytics

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

Mithilfe der Execute Pipeline-Aktivität kann eine Data Factory- oder Synapse-Pipeline eine andere Pipeline aufrufen.

Erstellen einer Execute Pipeline-Aktivität mithilfe der Benutzeroberfläche

Um eine Execute-Pipeline-Aktivität in einer Pipeline zu verwenden, führen Sie die folgenden Schritte aus:

  1. Suchen Sie im Bereich mit den Pipelineaktivitäten nach Pipeline, und ziehen Sie eine Execute Pipeline-Aktivität auf die Pipelinecanvas.

  2. Wählen Sie die neue Execute Pipeline-Aktivität auf der Canvas aus, wenn sie noch nicht ausgewählt ist, und ihre Registerkarte Einstellungen, um ihre Details zu bearbeiten.

    Zeigt die Benutzeroberfläche für eine Pipeline-Ausführungsaktivität.

  3. Wählen Sie eine vorhandene Pipeline aus, oder erstellen Sie mithilfe der Schaltfläche „Neu“ eine neue Pipeline. Wählen Sie weitere Optionen aus, und konfigurieren Sie alle Parameter für die Pipeline, die zur Vervollständigung Ihrer Konfiguration benötigt werden.

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

Typeigenschaften

Eigenschaft BESCHREIBUNG Zulässige Werte Erforderlich
Name Name der Aktivität „Pipeline ausführen“. String Ja
Typ Muss auf ExecutePipeline festgelegt werden. String Ja
Pipeline Verweis auf die abhängige Pipeline, die von dieser Pipeline aufgerufen wird. Ein Pipelineverweisobjekt verfügt über zwei Eigenschaften: referenceName und type. Die Eigenschaft „referenceName“ gibt den Namen der referenzierten Pipeline an. Die Eigenschaft „type“ muss auf „PipelineReference“ festgelegt werden. PipelineReference Ja
parameters Parameter, die an die aufgerufene Pipeline übergeben werden sollen Ein JSON-Objekt, das Parameternamen Argumentwerten zuordnet Nein
waitOnCompletion Definiert, ob die Aktivitätsausführung wartet, bis die Ausführung der abhängigen Pipeline abgeschlossen ist. Der Standardwert ist "True". Boolesch Nein

Beispiel

In diesem Szenario gibt es zwei Pipelines:

  • Masterpipeline: Diese Pipeline weist eine Aktivität „Pipeline ausführen“ auf, die die aufgerufene Pipeline aufruft. Die Masterpipeline nutzt zwei Parameter: masterSourceBlobContainer, masterSinkBlobContainer.
  • Aufgerufene Pipeline: Diese Pipeline weist eine Kopieraktivität auf, die Daten aus einer Azure-Blobquelle in eine Azure-Blobsenke kopiert. Die aufgerufene Pipeline nutzt zwei Parameter: sourceBlobContainer, sinkBlobContainer.

Definition der Masterpipeline

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

Definition der aufgerufenen Pipeline

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

Verknüpfter Dienst

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

Quelldataset

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

Senkendataset

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

Ausführen der Pipeline

Um die Masterpipeline in diesem Beispiel auszuführen, werden die folgenden Werte für die Parameter „masterSourceBlobContainer“ und „masterSinkBlobContainer“ übergeben:

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

Die Masterpipeline leitet diese Werte an die aufgerufene Pipeline weiter, wie im folgenden Beispiel gezeigt:

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

      ....
}

Warnung

Die Execute Pipeline-Aktivität übergibt den Arrayparameter als Zeichenfolge an die untergeordnete Pipeline. Dies liegt daran, dass die Nutzlast von der übergeordneten Pipeline als Zeichenfolge an die untergeordnete Pipeline übergeben wird. Sie können dies sehen, wenn Sie die an die untergeordnete Pipeline übergebene Eingabe überprüfen. Ausführlichere Informationen finden Sie in diesem Abschnitt.

Siehe weitere unterstützte Ablaufsteuerungsaktivitäten: