[英]In Pentaho kettle, how to check the filename is exists or not?
我是pentaho水壺的新手...
現在,我有一個包含許多.txt文件的文件夾。
舉例來說:20121012.txt,20121014.txt .....
每次我運行水壺作業時,它將grep所有這些文件以導入數據庫。
我需要在導入db之前處理檢查,以防止數據重復。
問題是,如何讓水壺注意到已經導入的文件名?
例如:
20121012.txt <=如果該文件被導入,它將在下一次檢查它的文件名,如果它是相同的文件名,則不會被導入。
在這種情況下,我不能僅在“檢查文件是否存在”步驟中簡單地設置特定文件“ 20121012.txt”。 這是因為txt文件很大。 如果文件名是一天,則1年包含365-366天。 我無法以這種方式對所有文件進行硬編碼。
因此,可能的方法是在導入數據庫之前檢查該過程文件的文件名是否存在。
這就是我的問題,我該怎么做? 我需要使用哪些步驟或工作流程? 任何人都可以提供可以執行此操作的詳細步驟嗎?
希望收到您的來信,如果您需要更多信息,請告訴我。
謝謝大家的幫助!
您可以通過將已處理的文件列表存儲在數據庫中的表之類的位置來完成此操作。 在另一步驟中加載表,然后通過合並將步驟中的流合並,並僅傳遞文件加載步驟中不在其他流中的那些文件。
確保以后再用所有新處理的文件更新已處理過的表。
您可以使用“獲取文件名”步驟。 在此步驟中:設置用於存儲文件的文件夾,然后設置通配符(例如,如果要從文件夾中獲取所有文件,則為“。*”)。
如果數據庫存儲了已導入的文件名,則可以使用“數據庫查找”檢查文件名是否已存在於數據庫中,然后過濾流以僅傳遞數據庫中未找到的文件名,從而使轉換獨立。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.