為了避免文本文件在導(dǎo)出的數(shù)據(jù)時過大,分別導(dǎo)出在多個文件文本中。怎么利用kettle讀取文件目錄下的數(shù)據(jù)結(jié)構(gòu)一致的所有數(shù)據(jù)文件信息和內(nèi)容?如下圖所示:
其實在kettle中有step為Get File Names 和Text Input兩個步驟,可以通過設(shè)置這兩個步驟的屬性來實現(xiàn)在文件目錄下讀取指定文件后綴名的文件的信息和數(shù)據(jù)。
通過這樣的設(shè)置文件信息(文件名,大小,路徑等)可以是一個流變量 ( Stream Variable),并且從上一個步驟中獲取相應(yīng)的值,這樣就提供了無限的靈活性; 具體的屬性設(shè)置如下: Get File Names:選擇一個文件目錄,并設(shè)定目錄下文件名的正則表達式。這里選擇的是txt類型數(shù)據(jù)文件,因此正則表達式設(shè)為customers-.*\.txt$,選取F:\test目錄下所有customers-開頭并且后綴為.txt的文件
文本文件輸入:下方從上一步驟獲取文件名,步驟讀取的文件名來自Get File Names步驟,在輸入里的字段被當作文件名填寫Get File Names輸出的字段uri。 若是單純的讀取文件目錄下指定文件數(shù)據(jù),就不需要那么麻煩設(shè)置,直接在文本文件輸入步驟中文件和規(guī)則表達式中按上圖所示填寫就可以了。
這里需要說明通過這種設(shè)置后文本文件輸入中字段選項無法自動獲取字段。不過可以先不設(shè)置從前一步驟獲取文件名,利用這個步驟的自身屬性先獲取字段,然后再設(shè)置。 附:Pentaho Kettle Steps: Get File Names 獲取文件相關(guān)信息字段信息如下 filename - 包括文件名稱以及擴展名,以及文件路徑的整體 |
|