FAQ-常见dqc自定义表级字段解析错误
更新时间: 2025-09-12 18:01:07
阅读 23
FAQ-常见dqc自定义表级字段解析错误
问题描述/异常栈
发现版本
适用于任何版本解决方案
以下方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
文档反馈
以上内容对您是否有帮助?