FAQ-常见dqc自定义表级字段解析错误

问题描述/异常栈

FAQ-常见dqc自定义表级字段解析错误 - 图1

发现版本
适用于任何版本
解决方案
以下方sql举例: with result_table as ( select userId, summerTimeLimitedHasDone, cnt from ( select userId, get_json_object(extInfo, '$.summerTimeLimitedHasDone') as summerTimeLimitedHasDone from xxx.music_summer_membership_xxx where dt = '${azkaban.flow.1.days.ago}' ) a left join ( select targetuserid, sum(num) as cnt from xxxx.middle_interest_update_record_xxx where dt = ${azkaban.flow.1.days.ago} and updatetype = 0 and interesttype = 1060 and interestid = 10234003 GROUP BY targetuserid ) b on a.userId = b.targetuserid ) SELECT COUNT(userId) as errorCnt FROM result_table WHERE summerTimeLimitedHasDone = 1 AND cnt != 30 **修正后代码:** with result_table as ( select userId, summerTimeLimitedHasDone, cnt from ( select userId, get_json_object(extInfo, '$.summerTimeLimitedHasDone') as summerTimeLimitedHasDone from xxxx.music_summer_membership_xxxxx where dt = "${azkaban.flow.1.days.ago}" ) a left join ( select targetuserid, sum(num) as cnt from xxxx.middle_interest_update_xxxx where dt = "${azkaban.flow.1.days.ago}" and updatetype = 0 and interesttype = 1060 and interestid = 10234003 GROUP BY targetuserid ) b on a.userId = b.targetuserid ) SELECT COUNT(userId) as errorCnt FROM result_table WHERE summerTimeLimitedHasDone = 1 AND cnt != 30 `
问题原因
如果是hive自定义sql解析失败的话,可以先到自助分析这边进行语法检查看看,那边会提示具体错误的地方。如果那边通过,可能是引号嵌套问题,用户编写的sql中使用了az参数${}语法,需要用双引号包住

作者:chenjie