需求:从FTP指定文件夹中获取各指标CSV文件,并将所有文件数据存到一张数据表中,若该指标已在数据表中存在,则删除所有该指标的老数据,插入新数据;每处理一个CSV文件都要将其备份到本地,并将FTP上对应的CSV文件删除。


前置
1、tFTPConnection:配置相关FTP链接
2、tDBConnection:配置数据库相关内容,其中可以在Advanced setting中将Auto Commit点上,由此可以实现自动提交内容,省去后续嵌套tDBCommit组件。

操作
1、tFTPGet:获取对应的FTP文件夹下的文件。
(1)其中Use an existing connection选中已设置好的FTP链接组件。
(2)在Local directory中输入用于存储CSV文件的本地路径,在Remote directory中输入我们要访问的FTP文件夹路径(前面记得带上“/”)
(3)Files中可以设置文件掩码,用于过滤出需要的文件。
2、tFTPClose:获取到需要的文件后可以关闭对应的FTP链接。
3、tFileList:用于遍历已经存于本地路径下的CSV文件。其中Directory输入的是本地路径,Files中填写掩码。(与下级组件的链接方式选Iterate遍历)
4、tFileExist:判断文件是否存在,如果文件存在,执行下一操作,如果不存在,则进行相应的处理,例如关闭DB链接,关闭FTP链接等。
5、tSetGlobalVar:设置全局参数,取值为文件名的指标名称,主要用于数据表的过滤。
(1)以本需求为例:
Key:K1
Value:((String)globalMap.get(“tFileList_3_CURRENT_FILE”)).substring(0,((String)globalMap.get(“tFileList_3_CURRENT_FILE”)).lastIndexOf(“.”)).split(“_”)[1]
6、tDBInput tDBOutput:依据全局参数中设定的指标名称进行数据筛选,删除操作。
7、tFileInputDelimited:用于读取CSV文件中的数据

8、tMap:进行栏位映射
9、tDBOutput:将tMap处理好的数据存入对应数据表中
10、tFileCopy:进行文件拷贝(备份)

11、tFTPConnection ,tFTPDelete ,tFTPClose:创建FTP链接,删除当前遍历的CSV文件,关闭FTP链接

One thought on “使用Talend将FTP的CSV文件数据存入数据库当中”

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注