Azure Data Factory 系列博客:
- ADF 第一篇:Azure Data Factory介紹
- ADF 第二篇:使用UI創建數據工廠
- ADF 第三篇:Integration runtime和 Linked Service
- ADF 第四篇:管道的執行和觸發器
- ADF 第五篇:轉換數據
- ADF 第六篇:Copy Data Activity詳解
- ADF 第七篇:控制流概述
- ADF 第八篇:傳遞參數(Pipeline的Parameter和Variable,Activity的output)和應用表達式
映射數據流(Mapping Data Flow)的核心功能是轉換數據,數據流的結構分為Source、轉換和Sink(也就是Destination),這種結構非常類似於SSIS的數據流。
在數據流中,數據就像流水(stream)一樣,從上一個組件,流向下一個組件。組件之間有graph相連接,把各個組件連接為一個轉換流(transformation stream),在數據流面板中,graph顯示為一根線,用於表示數據從一個組件流向另一個組件的路徑。
轉換組件是數據流的核心組件,每一個轉換組件都有輸入和輸出,接收上一個路徑上的組件輸入的數據,並向下一個路徑上的組件輸出數據。
一,創建映射數據流面板
打開一個數據工廠,切換到Author面板中,從“Factory Resources”中選擇“Data flows”,從后面的“...” (Actions)中選擇“New mapping dataflow”,新建數據流面板:
初始的數據流面板如下圖所示,dataflow1是數據流面板的名稱,面板的中央是畫布,可以向畫布中添加Source、轉換組件和Sink(destination)。
二,為數據流組件添加Source
從dataflow的面板中點擊“Add Source”為數據流添加源, 添加數據源之后,source1是源的名稱,右下方有一個“+”號,表示為源添加轉換功能。
在選中Source之后,面板中央的下方區域顯示為Source的屬性面板,
1,Source setting 面板
Source settings 用於設置Source的屬性,常用的Source屬性是Source type(源類型),最常用的類型是Dataset,表示從Dataset中獲取數據。
2,Optimize 面板
Optimize 選項卡 用於設置分區架構,可以設置Partition option、Partition type和 Number of partitions,分區會優化數據流的性能。
3,Inspect面板
Inspect 選項卡用於顯示數據流的元數據,該選項卡是一個只讀的視圖,從該選項卡中可以看到數據流的列數量(column counts),列變化、增加的列、類的數據類型、列的順序等。
三,添加轉換功能
點擊Source右小角的“+”號,為源添加轉換功能,這是數據流的核心功能,常用的轉換功能分為四組:Multiple inputs/outputs、Schema modifier、Row modifier和Destination。
1,多輸入/輸出(Multiple inputs/outputs)
- Join:用於表示連接,把多個Source(Input)連接成一個輸出流
- Conditional Split:條件拆分,把一個Source 按照條件拆分成多個輸出流
- Exists:需要兩個輸入Left stream和Right stream,按照指定的條件和Exist type輸出數據,如果Exist type是Exists,那么表示輸出Left Stream存在於Right stream的數據;如果Exist type是Doesn't exist,那么表示輸出Left stream不存在於Right stream的數據。
- Union:把多個輸入合並
- Lookup:需要兩個輸入,Primary stream和Lookup stream,把Primary stream中存在於Lookup stream中的數據輸出。
2,Schema Modifier
對列進行修改:
- Derive Column:派生列
- Select:選擇列
- Aggregate:對源中的數據進行聚合運算
- SurrogateKey:根據源的主鍵生成代理主鍵
- Pivot和Unpivot:透視和逆透視
- Windows:定義數據流中基於窗口的列的聚合
- Flatten:平展數據,例如,把JSON字段平展,生成多個字段
- Rank:排名
3,Row Moifier
對行進行修改:
- Filter:過濾行
- Sort:對行進行排序
- Alter Row:修改行,設置針對行的插入、刪除、更新和更新插入(upsert)策略
4,Destination
Sink:用於設置數據存儲的目標
四,運行和監控數據流
數據流實際上是Pipeline中的一個Activity,只有在Pipeline中創建數據流Activity,才能開始Debug,並設置觸發器。
1,調式數據流
在發布(publish)之前,需要對數據流進行調試,把數據流的“Data flow debug”設置為啟用:
調試完成之后,發布數據流,就可以把數據流保存到數據工廠中。
2,添加數據流Activity
在Pipeline中面板中添加Data flow 活動,
在Data flow活動的Settings選項卡中,在“Data flow”中設置引用的數據流,Run on (Azure IR) 用於設置IR,並可以設置日志級別(Logging Level),Verbose是默認選項,表示記錄詳細的日志。
3,監控數據路
監控數據流其實就是在Pipeline runs中查看管道執行的情況
參考文檔: