Informatica PowerCenter 10.2:第五目标表无法加载空值数据问题排查
Informatica PowerCenter 10.2 目标表5数据丢失问题排查
问题背景
我配置了一个从1个源表向5个目标表加载数据的映射:
- 4个常规表几乎每次工作流运行都会加载,数据正常
- 第5个表仅在所需字段为空值时加载,但空值存在时数据无法流入该表
- 已删除映射中不必要的Normalizer,问题仍未解决
- 调试器运行时数据能流入第5个表,但正常运行工作流时不行
- 数据未流入其他表,直接丢失,详细日志如下:
Message Code Message TT_11115 [ROUTER]: Output Group Index = [0] TT_11037 [TABLE 5 ERROR TABLE]: Output - 1, Dropped - 0 TT_11037 [TABLE 1]: Output - 4, Dropped - 0 TT_11037 [TABLE 2]: Output - 4, Dropped - 0 TT_11037 [TABLE 3]: Output - 4, Dropped - 0 TT_11037 [TABLE 4]: Output - 0, Dropped - 0 TT_11031 Transformation [EXPRESSION]: TT_11114 [EXPRESSION]: Input Group Index = [0], Input Row Count [1] TT_11034 [ROUTER]: Input - 1 TT_11115 [EXPRESSION]: Output Group Index = [0] TT_11037 [FILTER]: Output - 1, Dropped - 0 TT_11031 Transformation [FILTER[version 1]]: TT_11114 [FILTER]: Input Group Index = [0], Input Row Count [1] TT_11034 [EXPRESSION]: Input - 1 TT_11115 [FILTER]: Output Group Index = [0] TT_11037 [EXPRESSION 2]: Output - 0, Dropped - 0 TT_11031 Transformation [EXPRESSION 2[version 1]]: TT_11114 [EXPRESSION 2]: Input Group Index = [0], Input Row Count [0] TT_11034 [FILTER]: Input - 0 TT_11115 [EXPRESSION 2]: Output Group Index = [0] TT_11037 [TARGET TABLE 5]: Output - 0, Dropped - 0 TT_11033 Transformation to target [TARGET TABLE 5[version 6]]: TT_11114 [TARGET TABLE 5]: Input Group Index = [0], Input Row Count [0] TT_11034 [EXPRESSION 2]: Input - 0 TT_11038 Output - 0, Dropped - 0
日志关键分析
从日志流可以定位核心异常点:
- ROUTER输出1行,经EXPRESSION后FILTER输出1行(无丢弃)
- 但EXPRESSION2的输入行数为0,直接导致TARGET TABLE 5无数据流入
- 问题明确出在FILTER到EXPRESSION2的数据流环节,但日志未显示具体丢弃原因
排查步骤
1. 检查数据流连接有效性
- 确认FILTER的输出端口与EXPRESSION2的输入端口是否完全正确连接
- 排查是否存在隐藏的路由/过滤逻辑(比如未显示的Router转换被误添加在FILTER与EXPRESSION2之间)
- 验证EXPRESSION2的输入端口是否启用,未被设置为“不连接”状态
2. 验证版本与部署一致性
- 确认工作流关联的映射版本为最新修改版本(查看Workflow Manager中映射的版本号)
- 检查Repository中映射的版本记录,确认本地修改已同步到正式环境
- 重启Integration Service,清除旧配置缓存
3. 对比调试与正常运行的配置差异
- 检查Session配置中的行限制/采样规则:调试模式可能未启用限制,但正常运行时被误配置
- 验证Session的增量更新规则:是否在正常运行时触发了额外的数据过滤
- 查看映射的参数变量:调试与正常运行是否使用了不同参数值,导致逻辑差异
4. 排查EXPRESSION2的转换逻辑
- 打开EXPRESSION2转换,检查是否存在导致行丢弃的逻辑:比如输出端口使用
ABORT()函数,或条件判断错误过滤了空值行 - 验证输入字段的默认值设置:是否覆盖了空值,导致后续加载条件不满足
- 检查版本历史:确认EXPRESSION2的version 1逻辑与调试时使用的版本一致
5. 启用更详细的日志追踪
- 在Session配置中开启转换级详细日志(勾选「Enable Detailed Tracing」)
- 运行工作流后,查看EXPRESSION2的输入输出明细日志,定位每一行的处理过程
- 检查目标表5的数据库约束:是否存在主键/非空约束导致数据被静默丢弃(日志中TABLE5 ERROR TABLE输出1行,需验证该行是否为预期要加载的目标数据)
6. 检查事务与错误处理设置
- 验证Session的提交间隔与事务模式:是否因事务未提交导致数据未写入(但日志显示输入为0,此可能性较低)
- 确认目标表5的错误处理规则:是否将符合条件的行误导向错误表
内容的提问来源于stack exchange,提问作者venkatcg0
相关产品推荐
相关产品推荐

