Kettle - 获取文件名

最近有个需求,需要动态去获取文件,并将文件中的数据吃进数据,所以需要用到【获取文件名】这个组件。但使用该组件时一直未能正确获取到我想要那个文件,后来才发现系【获取文件名】组件中的“通配符”栏位的正则表达式写法不对所致,后经调整,测试通过。

本地文件下的文件列表:

由于项目需要,我们只想获取到 D:\tmp\c_20231128.csv 这个文件,并将其导进数据库。

【新建一个转换】- 然后在【核心对象】中依次将【获取文件名】- 【csv 文件输入】- 【表输出】托近工作区,然后依次将它们连接起来,如下图。

【获取文件名】组件

双击【获取文件名】,然后按照下列分别“文件或目录” 和“正则表达式”,然后点击【增加(A)】按钮;

 

接着点击【显示文件名称(S)…】按钮,就可以预览自己所获取的文件列表是否是自己想要的啦。

 正则所获取到的文件列表,正好是自己想要的文件。

点击【关闭】后,然后点击【获取文件名】组件中的【预览记录(P)】按钮,可以查看到获取到的文件的数据,记住第一个字段名是“filename”,以备下一步使用。接着依次点击【关闭(C)】,【确定(O)】按钮。

 【CSV文件输入】组件

双击【csv文件输入】组件,然后在“文件名字段(数据来源于前一步骤)”栏位的下拉框中选取“filename”;“包含列头行” 是否勾选,看自己需要,我这个文件是包含第一列的标题的,便于下一步的【表输出】组件设置;“文件编码” 看自己情况选择;然后点击【获取字段】,并修改“类型" 和“格式”,使其与数据库中表结构对应的自动一一对应,设置完毕后,点击【确定】即可。

 【表输出】组件

双击【表输出】组件,配置好自己需要写入的库和表,以及对应的数据库字段信息,然后点击【确定】即可。

 

测试运行 

注意:

配置【获取文件名】组件中的正则表达式时,应该填入c_.*\.csv 或c_.*.csv、c_.*csv,注意“*”符号前的“." 这个符号,否则得到的列表可能不是自己想要的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值