Talend 7.3中如何配置tLogRow仅记录处理出错的行?
Talend 7.3 行级错误日志记录方案
方案一:基于tSchemaComplianceCheck自动捕获行级数据错误
- 所需组件:
tSchemaComplianceCheck、tLogRow(仅错误分支使用)、原有流程的输入/处理组件 - 操作步骤:
- 将原有流程的输出通过主连接接入
tSchemaComplianceCheck组件 - 在
tSchemaComplianceCheck配置界面,勾选需要校验的规则:比如日期格式匹配、字段类型合规、非空约束等(精准匹配你要捕获的格式错误日期这类问题) - 从
tSchemaComplianceCheck的Reject输出分支连接到tLogRow,配置该tLogRow输出错误行的原始数据+系统自动生成的错误描述(可选择"Error"输出模式,或自定义输出字段) tSchemaComplianceCheck的Main输出分支继续正常后续处理,无需连接tLogRow
- 将原有流程的输出通过主连接接入
方案二:自定义条件判断实现错误行分流
- 所需组件:
tMap、tLogRow(仅错误分支使用)、原有流程组件 - 操作步骤:
- 在原有流程中插入
tMap,将输入数据导入tMap编辑界面 - 在
tMap中新增一个输出分支作为错误流,设置过滤条件:例如用Talend内置函数判断日期合法性,公式示例:!TalendDate.isValidDate(row1.date_column, "yyyy-MM-dd") - 将错误分支输出连接到
tLogRow,配置输出错误行的字段及自定义错误提示(比如拼接"日期格式错误:" + row1.date_column) tMap的主输出分支保留正常数据,继续后续处理
- 在原有流程中插入
注意事项
- 针对百万级数据量,建议将
tLogRow设置为文件输出模式,避免控制台输出导致性能卡顿 - 两种方案都可扩展输出字段,比如增加错误类型、处理时间等信息,便于后续排查
- 务必仅在错误分支连接
tLogRow,主流程不配置tLogRow,确保错误信息不会被正常行淹没
内容的提问来源于stack exchange,提问作者N-JEL
相关产品推荐
相关产品推荐

