Pentaho导入txt至数据库时表头字段名不匹配问题如何解决
Pentaho 导入txt数据字段名不匹配问题解决方法
核心问题为源文件表头customer_和目标库要求的customer字段名不一致,以下两种方案可直接适配你现有的转换流程:
方案1:正确配置「Select values」步骤(你此前尝试的方案)
该步骤需要插在csv file input和text file output之间,调整后完整流程为:get file names -> csv file input -> select values -> text file output -> table output
配置操作:
- 双击打开Select values配置面板,必须切换到「Rename」标签页(默认打开的Select标签仅用于筛选保留字段,在该标签做重命名操作会丢失字段值)
- 点击「Get fields」自动加载所有输入字段,找到源字段
customer_,在该行对应的「Rename to」列填入目标字段名customer - 其余不需要改名的字段不用做额外配置,步骤会自动原样保留
- 配置完成后点「Preview rows」预览,确认输出字段里已经是
customer、字段值和源文件customer_列完全一致,再连接后续步骤
方案2:直接在CSV文件输入步骤重命名(无需新增步骤,更简便)
不用额外添加Select values组件,直接修改读文件环节的配置即可解决:
- 双击打开「csv file input」步骤,切换到「Fields」标签页
- 在字段列表中找到名称为
customer_的行,直接把「Name」列的内容修改为customer - 确认「Header row present」选项保持勾选(读取带表头的txt/csv文件默认是勾选状态,无需额外调整),点击确定即可。步骤读取文件时会直接把对应列识别为
customer字段,后续所有步骤拿到的字段名直接符合要求。
避坑提示
- 不要在Select values的默认Select标签页删除
customer_后手动新增customer字段,该操作不会继承原字段值,会导致该列数据全空 - 连接table output步骤时,建议勾选「Specify database fields」选项,在字段映射页手动确认流字段
customer和数据库表的customer字段已正确映射,避免自动隐式匹配出错 - 如果存在部分文件表头是
customer、部分是customer_的情况,可以在csv file input里取消「Header row present」的勾选,手动固定所有字段名配置,就能兼容两种表头的文件,不用额外做分支判断
内容的提问来源于stack exchange,提问作者dev_bi
相关产品推荐
相关产品推荐

