建立資料處理站的活動和管線
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"
}
}