Pentaho Kettle 9.4迁移时Database Join别名在kitchen.sh运行报错求助
Pentaho Kettle 9.4 Database Join步骤别名字段在kitchen.sh运行时丢失的问题
问题详情
- 版本迁移背景:从Pentaho Kettle 5.0迁移部分作业至9.4版本
- 问题场景:在Database Join步骤中执行带别名的查询,示例语句:
后续步骤引用select u.user_id as user_found from user u where u.user_id = ?user_found字段时,通过kitchen.sh运行作业会触发错误:Fields 'user_found' used in the condition are not found in input from previous steps
- 矛盾点:本地Spoon环境运行无此错误,且该字段已正确配置在Database Join步骤的输入/输出字段列表中,目前临时解决方案是通过Select Values步骤重新映射字段。
同类问题反馈及可能原因
- 多名用户反馈这是Kettle 9.x版本的已知元数据缓存问题:kitchen.sh批量运行时会加载旧的作业元数据缓存,未实时解析查询语句中的别名字段
- 运行时字段检测逻辑差异:Spoon本地运行会实时解析查询输出的字段信息,而kitchen.sh依赖预定义的元数据配置,若配置字段的别名与查询实际返回的别名存在隐性差异(比如大小写、不可见空格),就会触发字段找不到的错误
可选临时解决办法
- 刷新作业元数据:在Spoon中打开作业,点击菜单栏
File->Refresh,重新保存后再用kitchen.sh运行 - 强制指定输出字段名:在Database Join步骤的输出字段配置中,手动指定字段名为
user_found,确保和查询中的别名完全一致(包括大小写) - 临时去掉查询别名:直接使用原字段名查询,后续再通过Select Values步骤重命名字段,以此排查是否为别名解析逻辑导致的问题
内容的提问来源于stack exchange,提问作者The Search
相关产品推荐
相关产品推荐

