在 Azure Data Factory 和 Synapse Analytics 中執行管線活動
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
執行管線活動允許 Data Factory 或 Synapse 管線叫用另一個管線。
使用 UI 建立執行管線活動
若要在管線中使用執行管線活動,請完成下列步驟:
在管線 [活動] 窗格中搜尋「管線」,並將執行管線活動拖曳至管線畫布。
在畫布上選取新的執行管線活動 (如未選取) 及其 [設定] 索引標籤,以編輯詳細資料。
選取現有的管線,或使用 [新增] 按鈕建立新的管線。 選取其他選項,並視需要設定管線的任何參數,以完成您的設定。
語法
{
"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"
}
}
]
}
}
類型屬性
屬性 | 說明 | 允許的值 | 必要 |
---|---|---|---|
NAME | 執行管線活動的名稱。 | String | Yes |
type | 必須設為:ExecutePipeline。 | String | Yes |
管線 | 此管線叫用之相依管線的管線參考。 管線參考物件有兩個屬性:referenceName 和 type。 referenceName 屬性指定參考管線的名稱。 type 屬性必須設為 PipelineReference。 | PipelineReference | Yes |
parameters | 要傳遞至叫用之管線的參數 | 將參數名稱對應到引數值的 JSON 物件 | No |
waitOnCompletion | 定義活動執行是否等待相依的管線執行完成。 預設為 true。 | 布林值 | No |
範例
此案例有兩個管線:
- 主要管線 - 此管線有一個執行管線活動,會呼叫叫用的管線。 主要管線採用兩個參數:
masterSourceBlobContainer
、masterSinkBlobContainer
。 - 叫用的管線 - 此管線有一個複製活動,會將資料從 Azure Blob 來源複製到 Azure Blob 接收。 叫用的管線採用兩個參數:
sourceBlobContainer
、sinkBlobContainer
。
主要管線定義
{
"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"
}
}
}
}
叫用的管線定義
{
"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"
}
}
}
}
連結服務
{
"name": "BlobStorageLinkedService",
"properties": {
"type": "AzureStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=*****;AccountKey=*****"
}
}
}
來源資料集
{
"name": "SourceBlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": {
"value": "@pipeline().parameters.sourceBlobContainer",
"type": "Expression"
},
"fileName": "salesforce.txt"
},
"linkedServiceName": {
"referenceName": "BlobStorageLinkedService",
"type": "LinkedServiceReference"
}
}
}
接收資料集
{
"name": "sinkBlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": {
"value": "@pipeline().parameters.sinkBlobContainer",
"type": "Expression"
}
},
"linkedServiceName": {
"referenceName": "BlobStorageLinkedService",
"type": "LinkedServiceReference"
}
}
}
執行管線
為執行此範例中的主要管線,下列值會傳遞給 masterSourceBlobContainer 和 masterSinkBlobContainer 參數:
{
"masterSourceBlobContainer": "executetest",
"masterSinkBlobContainer": "executesink"
}
主要管線會將這些值轉送到叫用的管線,如下列範例所示:
{
"type": "ExecutePipeline",
"typeProperties": {
"pipeline": {
"referenceName": "invokedPipeline",
"type": "PipelineReference"
},
"parameters": {
"sourceBlobContainer": {
"value": "@pipeline().parameters.masterSourceBlobContainer",
"type": "Expression"
},
"sinkBlobContainer": {
"value": "@pipeline().parameters.masterSinkBlobContainer",
"type": "Expression"
}
},
....
}
相關內容
查看其他支援的控制流程活動: