故障报告
1. 问题(故障)描述
ETL进行规则转换时报错:
error at file[msg_load_etl.c] line[675], ZCBUS-20001: mysql_store_result failed: Subquery returns more than 1 row
error at file[msg_load_etl.c] line[1056], ZCBUS-20001: mysql_store_result failed: Subquery returns more than 1 row
[ERR] LOAD THD[1] loading message error, ZCBUS-20001: mysql_store_result failed: Subquery returns more than 1 row
环境信息:
ETL配置规则:
colmap(column_name=BLDW_GAJGJGDM,optype=modify,data_type=string,sqlfunction=(select IFNULL((select new_code from DZ_CODES.DZ_CQ_DZ_CODE_GXS_QG where old_code=#BLDW_GAJGJGDM#),#BLDW_GAJGJGDM#))),
colmap(column_name=XXCZDW_GAJGJGDM,optype=modify,data_type=string,sqlfunction=(select IFNULL((select new_code from DZ_CODES.DZ_CQ_DZ_CODE_GXS_QG where old_code=#XXCZDW_GAJGJGDM#),#XXCZDW_GAJGJGDM#))),
colmap(column_name=XXDJDW_GAJGJGDM,optype=modify,data_type=string,sqlfunction=(select IFNULL((select new_code from DZ_CODES.DZ_CQ_DZ_CODE_GXS_QG where old_code=#XXDJDW_GAJGJGDM#),#XXDJDW_GAJGJGDM#)))
2. 问题(故障)原因
映射关系表DZ_CODES.DZ_CQ_DZ_CODE_GXS_QG中存在重复数据,导致ETL转换时根据映射规则查询此表会返回多行数据,但是转换的数据应是一一对应的,因此会报错提示(Subquery returns more than 1 row)。
3. 解决
1.删除映射关系表(DZ_CODES.DZ_CQ_DZ_CODE_GXS_QG)中的重复数据
2.为避免后续发生相同问题,为映射表添加主键
4. 参考
文档更新时间: 2023-05-05 20:36 作者:liyue