2011-06-09 47 views
3

我想知道這是一艘在Talend以下問題最好的策略:戰略裝載一組文件在Talend

  • 我需要從一組分隔的文件存儲在一個加載數據(SAMPLE1.DAT,SAMPLE2.DAT,...,SAMPLEX.DAT)名稱的目錄
  • 目標將是MySQL數據庫中的表
  • 我必須一次加載所有數據,因爲在執行此任務之後,我需要使用同一表中的所有記錄

我有點困惑,因爲我不知道在Talend中是否可能。我正在看到tFileInputDelimited組件,但我沒有找到解決問題的方法。

感謝

回答

5

要從一個目錄中讀取多個文件,可以使用tFileList組件。它允許你指定一個目錄和一個文件名模式。與該模式匹配的目錄中的所有文件將被一個接一個地處理。

您需要使用tFileList組件中的「Iterate」鏈接到描述您想要對每個文件執行什麼操作的組件。在你的情況下,你可以從一個tFileInputDelimited組件開始(讀取文件)並將它的主輸出連接到一個tMysqlOutput組件。默認情況下,MySQL組件會將數據追加到現有的表中,這樣就可以得到您想要的結果。

在tFileInputDelimited組件中,您不會使用固定的文件名,而是使用由tFileList組件爲每次迭代(您的循環變量,可以這麼說)設置的變量文件名。該循環變量的名稱可以在工作室的「輪廓」視圖中看到,通常位於左下角。

1

你會使用組件tFileInputDelimited到TMAP(可選)爲tmysqlOutput

第1步:配置一些組件就是這樣,除非您將使用分隔的文件輸入: Step 1

步驟2:配置分隔文件的組件設置,單擊向導的磁盤:Step 2

第3步:通過在元數據數據庫連接右鍵單擊配置數據庫,然後按照嚮導:Step 3

第4步:右鍵單擊每個組件,然後選擇行>首頁>拖動到下一步流動。

第5步:打開您的tMap並將文件模式中的列映射到數據庫模式。

第6步:運行該作業,如果您已遵循所有嚮導,如果有錯誤只是懸停在紅色組件上,它通常會描述錯誤,它應該工作。你會看到作業運行了多少記錄。

第7步:你已經遠遠作出後,創建具有相同的架構作爲輸入tfiledelimited輸出,右鍵點擊輸入選擇行>拒絕並拖動到新的分隔式輸出,這是哪裏並且將會發送被tmap拒絕的記錄。