我有連續的傳感器數據每隔5分鐘以文件形式進入。我只想在過去一小時內選擇文件並執行所需的處理。 例如:talend作業在12:01 pm運行,它僅從11:00 am至12:00 pm選取所有文件。如何僅使用Talend處理文件過去一小時?
任何人都可以請建議我應該採取的方法,使這發生在talend內。有沒有內置的組件可以選擇前一小時的文件?
我有連續的傳感器數據每隔5分鐘以文件形式進入。我只想在過去一小時內選擇文件並執行所需的處理。 例如:talend作業在12:01 pm運行,它僅從11:00 am至12:00 pm選取所有文件。如何僅使用Talend處理文件過去一小時?
任何人都可以請建議我應該採取的方法,使這發生在talend內。有沒有內置的組件可以選擇前一小時的文件?
使用tFileProperties,您將在其中獲得名爲mstring_name的內置架構。通過此列,您將獲得最後修改時間文件,並在tJava或tJavaRow您可以使用talendDate功能
迭代中的所有文件請檢查是否近一小時制這次的謊言和tJavaRow寫這樣的代碼:
Date lastModifiedDate = TalendDate.parseDate("EEE MMM dd HH:mm:ss zzz yyyy", input_row.mtime_string);
Date current_date = TalendDate.getCurrentDate();
if(TalendDate.diffDate(current_date, lastModifiedDate,"HH") <= 1) {
output_row.abs_path = input_row.abs_path;
}
由此您將獲得過去一小時之間的所有文件。
希望這有助於..
這裏是一個完整的工作設計:
tFileList --->(迭代)----> tFileProperties ---->(ROW1主)--- - > tJavaRow ----> if ----> tFileInputDelimited ----> main -----> tMap ----> main -----> tFileOutput
您正在設置的上下文tJavaRow,如果條件爲空,檢查其可空性:
context.getProperty(「file」)!= null & &!context.g etProperty(「文件」)。的isEmpty()
在此之後使用上下文,你正在做的
評論是不適合擴展討論;這個對話已經[轉移到聊天](http://chat.stackoverflow.com/rooms/151409/discussion-on-answer-by-preetyk-how-to-process-files-only-for-the-past-小時全光照)。 –
沒有內置組件,它會給你基於時間的文件。
但是,您可以通過使用tFileList - > tFileProperties來完成此操作。配置tFileList按最後修改日期排序,然後tFileProperties會給你修改日期。從那裏,您可以根據日期值進行過濾 - 如果超過一小時,則停止,否則進行處理。
這是一個糟糕的設計你想要做什麼。相反,你應該在你的工作開始時存儲,然後在下一次執行時從那裏選擇下限。只要想想如果你的工作在4小時內不能成功運行會發生什麼......你將失去數據,這是不可接受的。 –
感謝您的建議@BalazsGunics。我正在努力實施相同的 –