Kettle and CSV or Text Files
本節說明如何讀取 CSV 與 Text 檔案,以及如何匯出 Text 檔案。
CSV Files Input
本例取自 sample 資料夾中的 CSV Input - Reading customer data with error logging.ktr 。
本例的流程如下圖。其中讀取 CSV 檔案是 Input 下的 CSV file input。而 Dummy 位於 Flow 下,可作為轉換作業的終點,類似 job 的 SUCCESS。(下圖中的 Erros 只是變更步驟名稱,仍為一個 Dummy 步驟)
設定 CSV file input,Filename 為檔案路徑。下方欄位可設定要選取的欄位與格式。而設定格式的原因是希望匯入的原始資料,能有基本一致的格式。因此,若資料原始格式與 Kettle 所設定的格式不合,程式會拋出錯誤訊息。而透過 Error Handling,可幫助我們將不合的資料篩選出來。
設定 Error Handling ,右鍵點選 CSV file input 並選擇 Define error handling...。如下圖所示。
選擇後可設定錯誤訊息的欄位名稱,可如範例檔設定名稱,如下圖。
設定完畢後點選執行,可看到 Errors 此步驟有三筆錯誤資料,如下圖所示。透過此方式,可篩選原始資料中格式不合的部份,維持資料乾淨。
Text Files Input
本例改自 sample 資料夾中的 Text Input - fixed length.ktr 。
本例的流程如下圖。其中讀取 Text files 的功能是在 Input 下的 Text file input。而 Sort Row 可以排序資料,位於 Transform 下。
設定 Text file input,File or directory為檔案路徑。可點選下方的 Preview rows 查看是否有成功抓取到檔案。
設定 Sort rows,在 Fieldname 可選擇要排序的欄位,如下圖。
設定完畢後點選執行,即可將此文檔匯入並排序。
Text Files Output
本例取自 samples 資料夾中的 Text File Output - Number formatting。
本例流程如下圖。其中前三步為 Input 下的 Generate Rows,可用來產生常數資料。Text file output 位於 Output 下。
首先設定 Generate Rows,Limit 為產生的資料筆數。Fields 可設定變數名稱、型態與格式。
設定完 Generate Rows 後,設定 Text file output 。設定如如下圖。Filename 為檔案輸出路徑,Extention 為檔案輸出格式。若要輸出為 CSV 格式,則輸入 csv。另可設定輸出檔案名是否含日期或時間。
點選 Content 如下圖。Separator 為欄位分隔方式。主要可設定逗號,分號與 TAB 空格分隔。
點選 Fields 如下圖。點選 Get Fields 可抓取前步驟的欄位,並可設定輸出格式。若有欄位不需輸出則直接刪除即可。點選 Minimal width 可縮減欄位空間。
設定完畢後點選執行,即可輸出文檔。