使用 Pentaho Kettle 通过 SFTP 获取文件

问题描述 投票:0回答:1

我在 SFTP 上有文件,名称格式为:

  • 145388__交易搜索_Bede7d_20230823080418000000_101e736810b34134.csv
  • 145388__交易搜索_Bede7d_20230822080346000000_41314bd7d21cda0e.csv

我只想从 SFTP 获取那些具有

Bede7d_TodaysDate
的文件。所以
Bede7d_20230823
。 我在“使用 SFTP 获取文件”中的“文件”选项卡下的通配符选项中使用了此公式,正则表达式为
.*Bede7d_\d{8}.*

我尝试输入正则表达式 -

.*Bede7d_\d{8}.*

并且期望只得到

145388__transaction-search_Bede7d_20230823080418000000_101e736810b34134.csv

但是我得到了所有以

Bede7d_.

开头的文件

它不起作用。请问有什么建议吗?

javascript etl pentaho kettle pentaho-data-integration
1个回答
0
投票

根据您尝试读取的文件名,正则表达式

.*Bede7d_\d{8}.*
将匹配这两个文件。因为
\d{8}
将匹配
.*Bede7d_
之后的所有 8 位数字。有关此问题中正则表达式的更多信息:https://stackoverflow.com/a/2149692/1131789

要回答您的问题,如果您只想过滤与当前日期匹配的文件,您可以尝试以下选项:

  1. 将正则表达式(通配符)更改为:
    .*Bede7d_20230823.*
    ,其中 20230823 是当前日期。您还可以将日期设置为 PDI 中的变量。

  1. 另一个选项,将之前的正则表达式保留为
    .*Bede7d_\d{8}
    并使用 Pentaho DI 中的“过滤步骤”根据当前日期过滤必要的文件。
© www.soinside.com 2019 - 2024. All rights reserved.