如何从服务器每天生成的 FTP 中获取动态文件?

How can I fetch a dynamic file from FTP server-generated every day?

FTP 位置每天都有交易输入 CSV 文件。我需要读取这些输入文件并在每日批量执行时处理它们。文件的名称每天都保持不变,但日期每天都会附加在文件名的末尾,
例如:

Day1
    General_Ledger1_2020-07-01,
    General_Ledger2_2020-07-01,
    General_Ledger3_2020-07-01,
    General_Ledger4_2020-07-01,
    General_Ledger5_2020-07-01
    Day2
    General_Ledger1_2020-07-02,
    General_Ledger2_2020-07-02,
    General_Ledger3_2020-07-02,
    General_Ledger4_2020-07-02,
    General_Ledger5_2020-07-02

如何在每次作业运行时将此日期信息附加到输入文件名?

我之前遇到过类似的问题,这可以使用文件路径中的计算参数来解决。在这里,您可以创建将动态检索文件的表达式。

例子,

 CONCAT( UPPER(lit('$(Prefix)')), ADD_DAYS( TODATE(lit('$(currentTime)'), 'yyyy-mm-dd'), 'yyyy-mm-dd' ,-1),'.csv')

表达式中断:

  • $(currentTime) :此系统参数将获取当前日期(这还将包括时间戳)。

  • (TODATE(lit('$(currentTime)'), 'yyyy-mm-dd') : TODATE 将只从整个时间戳中获取日期,格式为 ‘yyyy-mm-dd’.

  • ADD_DAYS(TODATE(lit('$(currentTime)'), 'yyyy-mm-dd'), 'yyyy-mm-dd' ,-1)ADD_DAYS 此处会将 -1 添加到从中检索的日期。 TODATE()。因此 (2020-04-24) + (-1) 会给我们 2020-04-23

  • $(Prefix)$(Prefix) 将是用户将在运行时提供的字符串类型的用户定义输入参数 – 因为这 前缀将始终是动态的。

  • CONCAT() : 最后把所有的结果合并起来形成准确的文件路径 CONCAT() 就可以了。也在一些静态之间 添加字符串,因为对于要读取的每个文件,它始终是固定的。