PDI文件迁移时获取文件大小、类型及数据同步实现咨询
解决Pentaho文件迁移时获取文件属性的方案
核心组件与流程方案
- 用Get File Names组件提取属性:别只把它当批量扫目录的工具,配合你已有的数据库源表,把表中读取的
源文件路径作为输入,就能精准获取单个文件的大小、扩展名、修改时间等属性。勾选组件设置里的对应选项,这些属性会自动生成新字段输出。 - 自定义属性用Modified Java Script Value补全:如果需要更灵活的属性(比如把扩展名转成易读的文件类型),加个这个组件写几行JS就行,示例代码:
// 根据扩展名生成文件类型描述 var ext = filename_extension; file_type = ext == 'xlsx' || ext == 'xls' ? 'Excel文件' : ext == 'txt' ? '文本文件' : '其他文件'; - 迁移与结果分支处理:继续用你已有的
Copy Files/Move Files组件完成迁移,这个组件会输出result字段(成功为Y,失败为N),以此做分支:- 成功分支:用
Table Output把文件路径、大小、类型等属性插入到文件详情表。 - 失败分支:用
Table Update把失败记录更新到配置表副本,可额外加个失败原因字段标记问题。
- 成功分支:用
完整流程步骤
- 用
Table Input读取数据库里的配置数据,输出源文件路径、目标文件路径等字段。 - 接
Get File Names,设置“文件名来源”为“从字段获取”,选择源文件路径,勾选需要的属性字段。 - (可选)加
Modified Java Script Value自定义处理属性。 - 接
Copy Files/Move Files,配置源、目标路径字段,勾选“记录错误”。 - 用
Filter rows组件按result字段拆分成功/失败分支,分别处理数据插入和配置副本更新。
注意点
- 确保数据库里的文件路径是绝对路径,避免组件找不到文件。
- 迁移组件的“记录错误”一定要勾选,否则失败记录无法被正确识别。
内容的提问来源于stack exchange,提问作者Vasanth
相关产品推荐
相关产品推荐

