1. 程式人生 > >ADF 第五篇:轉換資料

ADF 第五篇:轉換資料

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

 

 

 

參考文件:

Transform data using mapping data f