问题描述:
Dolphin上同样的一段Doris SQL,在T+2的时候运行实例是成功的,结果T+1的时候实例失败
SQL逻辑:
with a as () insert overwrite table table_name partition p'${pt}' select * from table_name2;
SQL主要是用来将T+2的全量数据和T+1的增量数据合并去重,得到一份新的全量数据插入到T+1的分区
报错日志:
问题排查:
1:先检查了下代码和工作流的参数配置,确认没有任何变动 排除SQL问题
2:找运维了解了下云服务器的DolphinScheduler有没有更换过版本(因为目前在测试),确认排除平台的问题
3:在客户端重新执行了一下,报的错是一样的,然后建了一个test表,然后插入数据测试,发现对于上面的SQL语法是支持的
4:通过检查数据,发现T+2的全量表的分区字段值是'2024-10-24',但是T+1的增量表的分区字段值是'2024-10-25',需要插入到p20241025中,
发现分区字段的值必须为2024-10-25才能插入成功
解决办法:
在代码中,从原来的直接取pt字段值,改成参数的形式,新分区中的pt值设置为'${dt}',dt = '$[yyyy-MM-dd-1]' 问题解决,重新运行,运行成功。