Doris 2.1.7 启用nereids优化器 查询数据跳动,单独指定副本结果相同

Viewed 62

使用catalog insert into 同步的低版本doris源数据,数据为离线的。表均为三副本存储
跑查询时发现数据结果不一致
分别设置
use_fix_replica为 0 1 2,结果均相等
使用use_fix_replica为-1时进行查询,结果每次运行都不一致,且数据差距较大

更新一下sql
其中userid和productid 都是 各自三副本的uniq表的key
SELECT count(*) FROM senior.dws_trd_renew_share_tmp a join senior.dwd_user_group_l_tmp dugl on a.userid=dugl.userid and a.upProductId=dugl.productId;

如果set replica 为任何一个次序的副本,值都是对的,只有为-1时,除了之前聚合值,发现count的条数就是不对的,且数据会非常不稳定,不是在几个固定值间跳

更新一下新的情况
其中productid 在两个表中都是bigint(20),
当 abs 处理=号右侧这个bigint后,查询结果也正常
SELECT count(*) FROM senior.dws_trd_renew_share_tmp a join senior.dwd_user_group_l_tmp dugl on a.userid=dugl.userid and a.upProductId=abs(dugl.productId);

或者当SET enable_nereids_planner=false;后,查询数据恢复正常

1 Answers

方便提供一下复现的步骤吗,包括表结构和部分数据。
也可以加我微信(hhj_0530)线上看看