對映資料流(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中檢視管道執行的情況
參考文件: