kettle從入門到精通 第五十一課 ETL之kettle Avro input

慕容尘轩發表於2024-04-05

1、我們在學習nifi的過程中有接觸到Avro schema,當時我在想kettle應該也支援Avro,果不其然kettle也是支援Avro檔案的讀和寫的。今天我們一起來學習下kettle中如何使用Avro input 讀步驟。對Avro 不瞭解的,可以學習文章ETL工具-nifi乾貨系列 第四講 Avro schema 序列化框架

開啟spoon,拖拉Avro input和寫日誌步驟到畫布,然後連線,如下圖所示:

2、雙擊Avro input 步驟進行配置,如下圖所示:

Step name:自定義步驟名稱

Source-Format:資料來源格式,有Avro file,JSON datum,Binary datum,Avro file(use alternate schema),本次演示採用Avro file

Avro file(Avro 檔案)

源材料位於單個位置。模式嵌入在資料中。
JSON datum(JSON 資料)
源材料位於不同位置。資料以JSON格式包含,並且模式與資料分離。
Binary datum(二進位制資料)
源材料位於不同位置。資料以二進位制格式包含,並且模式與資料分離。
Avro檔案(使用備用模式)
源材料位於不同位置。模式與資料分離。

Source-Source:

from file,透過瀏覽選擇Avro 檔案

from field,透過選擇前置步驟的欄位進行設定

3、Avro fields,本選項卡主要是提取Avro 資料檔案中的欄位,點選Get fileds之後會自動填充,然後可以繼續進行調整設定,如下圖所示:

Avro path (Avro type):Avro源的位置(及其格式型別)。

Indexed values:

Avro路徑集合中要使用的索引鍵。您可以使用此欄位進行對映或陣列擴充套件,從而將陣列或對映值擴充套件為返回多行資料。

要返回對映元素,請指定索引鍵。
要返回陣列元素,請指定陣列索引號,或者使用星號萬用字元 (*) 來返回陣列的所有元素。
當此欄位留空時,不會返回欄位的資料。

Name:輸入欄位的名稱。

Type:輸入欄位的型別,例如String或Date。

Format:輸入欄位的格式。

Pass through fields from previous step:

選擇之後將欄位從上一步傳遞到下一步,同時將當前步驟中的欄位傳遞到下一步。

清除選擇不將上一步欄位傳遞到下一步。

Allow null values for missing paths or fields:

選擇以使用null值替換傳入資料中的缺失欄位。
清除選擇以不使用null值替換缺失欄位。

4、Lookup fields

你可以使用查詢欄位選項卡建立變數,並將它們對映到特定欄位,以在解碼時用作對 Avro 結構的查詢。

更多細節可以參考官網文件https://docs.hitachivantara.com/r/en-us/pentaho-data-integration-and-analytics/10.1.x/mk-95pdia003/pdi-transformation-steps/avro-input/options/lookup-fields-tab

相關文章