建立資料處理站的活動和管線

已完成

Azure Data Factory 內的活動定義為在資料上執行的動作,共有三個類別:

  • 資料移動活動
  • 資料轉換活動
  • 控制活動

資料移動活動

資料移動活動只是將資料從這個資料存放區移至另一個資料存放區。 您可以使用複製活動來執行資料移動活動,或使用 JSON。 許多類型的資料存放區都可支援作為來源和接收器。 這份清單不斷增加,您可以在這裡找到最新資訊

資料轉換活動

您可以使用對應資料流,在 Azure Data Factory 的製作工具內以原生方式執行資料轉換活動。 或者,您可以呼叫計算資源,透過轉換來變更或增強資料,或執行資料分析。 其中包括計算技術,例如 Azure Databricks、Azure Batch、SQL Database 和 Azure Synapse Analytics、機器學習服務、Azure 虛擬機器和 HDInsight。 您可以利用儲存在目錄中任何現有的 SQL Server Integration Services (SSIS) 套件並在 Azure 中執行

因為這份清單不斷演進,您可以在這裡取得最新資訊

控制活動

以圖形方式製作 ADF 解決方案時,您可以在設計中使用控制流程來協調管線活動,包括序列中的鏈結活動、分支、定義管線層級的參數,以及在以隨選方式或觸發程序叫用管線時傳遞引數。 目前功能包括:

控制活動 描述
執行管線活動 執行管線活動可讓 Data Factory 管線叫用另一個管線。
ForEachActivity ForEach 活動會定義管線中重複的控制流程。 此活動用於逐一查看整個集合,然後以迴圈執行指定的活動。 此活動的迴圈實作與程式設計語言中的 Foreach 迴圈結構相似。
WebActivity Web 活動可用於從 Data Factory 管線呼叫自訂的 REST 端點。 您可以傳遞資料集和連結服務,以供活動取用和存取。
查閱活動 「查閱活動」可用於讀取或查閱任何外部來源的記錄/資料表名稱/值。 此輸出可供後續活動進一步參考。
取得中繼資料活動 GetMetadata 活動可用於擷取 Azure Data Factory 中任何資料的中繼資料。
Until 活動 實作 Do-Until 迴圈,類似於程式設計語言中的 Do-Until 迴圈結構。 它會以迴圈的方式執行一系列活動,直到與該活動相關聯的條件評估為 True 為止。 您可以在 Data Factory 中針對 until 活動指定逾時的值。
If 條件活動 「If 條件」可用於根據評估為 True 或 False 的條件進行分支。 If 條件活動所提供的功能,與 If 陳述式在程式設計語言中提供的功能相同。 它能在條件評估為「是」時執行一系列的活動,並在條件評估為「否」時執行另一系列的活動。
Wait 活動 在管線中使用 Wait (等待) 活動時,管線便會等待一段指定的時間,然後再繼續執行後續的活動。

您可以在這裡取得最新資訊

活動和管線

定義活動

使用 JSON 標記法時,活動區段內可定義一個或多個活動。 主要的活動類型有兩種:執行和控制活動。 執行 (也稱為計算) 活動,包括資料移動和資料轉換活動。 這些活動具有下列最上層結構:

{
    "name": "Execution Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "linkedServiceName": "MyLinkedService",
    "policy":
    {
    },
    "dependsOn":
    {
    }
}

下表會描述上述 JSON 的屬性:

屬性 描述 必要
NAME 活動名稱。 Yes
description 說明活動用途的文字。 No
type 定義活動的類型。 Yes
linkedServiceName 活動所使用的連結服務名稱。 對於 HDInsight、機器學習批次評分活動和預存程序活動而言為必要
typeProperties typeProperties 區段中的屬性依每個活動的類型而定。 No
原則 會影響活動之執行階段行為的原則。 此屬性包含逾時和重試行為。 No
dependsOn 此屬性用於定義活動相依性,以及後續活動如何相依於先前活動。 No

定義控制項活動

Data Factory 中的控制項活動會以 JSON 格式定義如下:

{
    "name": "Control Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "dependsOn":
    {
    }
}

下表會描述上述 JSON 的屬性:

屬性 描述 必要
NAME 活動名稱。 Yes
description 說明活動用途的文字。 Yes
type 定義活動的類型。 Yes
typeProperties typeProperties 區段中的屬性依每個活動的類型而定。 No
dependsOn 此屬性用於定義活動相依性,以及後續活動如何相依於先前活動。 No

定義管線

以 JSON 格式定義管線的方式如下:

{
    "name": "PipelineName",
    "properties":
    {
        "description": "pipeline description",
        "activities":
        [
        ],
        "parameters": {
         }
    }
}

下表會描述上述 JSON 的屬性:

屬性 描述 必要
NAME 管線的名稱。 Yes
description 說明管線用途的文字。 No
activities [活動] 區段內可以有一或多個已定義的活動。 Yes
parameters [參數] 區段可以在管道內定義一或多個參數,讓管道變得更有彈性而可重複使用。 No

範例

下列 JSON 定義名為 "MyFirstPipeline" 的管線,其中包含一個 HDInsightHive 的活動類型,該類型會從名為 "StorageLinkedService" 的連結服務中所儲存的指令碼名稱 "partitionweblogs.hql" 呼叫查詢,並透過名為 "AzureBlobInput" 的輸入和名為 "AzureBlobOutput" 的輸出。 該管線會針對名為 "HDInsightOnDemandLinkedService" 連結服務中定義的計算資源執行此工作

管線排程為每月執行一次,並會在失敗時嘗試執行 3 次。

{
    "name": "MyFirstPipeline",
    "properties": {
        "description": "My first Azure Data Factory pipeline",
        "activities": [
            {
                "type": "HDInsightHive",
                "typeProperties": {
                    "scriptPath": "adfgetstarted/script/partitionweblogs.hql",
                    "scriptLinkedService": "StorageLinkedService",
                    "defines": {
                        "inputtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/inputdata",
                        "partitionedtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/partitioneddata"
                    }
                },
                "inputs": [
                    {
                        "name": "AzureBlobInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobOutput"
                    }
                ],
                "policy": {
                    "concurrency": 1,
                    "retry": 3
                },
                "scheduler": {
                    "frequency": "Month",
                    "interval": 1
              },
                "name": "RunSampleHiveActivity",
                "linkedServiceName": "HDInsightOnDemandLinkedService"
            }
        ],
        "start": "2017-04-01T00:00:00Z",
        "end": "2017-04-02T00:00:00Z",
        "isPaused": false,
        "hubName": "ctogetstarteddf_hub",
        "pipelineMode": "Scheduled"
    }
}