ORACLE和StarRocks数据对比出现部分明显异常值

【详述】sr2.5.12版本,用routine load方式从oracle同步数据到sr主键模型,算某个字段sum值时,会突然出现一个很大的值(前后几次都是不超过100,但是异常时突然会到几十万),数据同步正常(源库没有出现这么大波动数据)
【背景】SR使用routine load方式同步到主键模型表,通过打标的方式已排除ORACLE删除的记录
【业务影响】
【StarRocks版本】2.5.12
【联系方式】社区群15-John Huang
【验证方式】
ORACLE同步时带上提交的SCN存入每行StarRocks记录,对比时取StarRocks当前最大的scn
1.oracle使用 as of scn查询sum
2.StarRocks使用 where scn<=并排除oracle已删除数据查询sum

ORACLE数据变化稳定且routine load写入正常

【附件】
创建语句.sql (1.6 KB)
对比结果.txt (161 字节)

辛苦也发下查询的SQL语句

您好,我的查询语句类似这样,最后的tkn_scn会根据实际情况变化,但是都是取到当前最大的tkn_scn后马上就执行查询对比
查询语句.sql (169 字节)

  1. Oracle里查询的时候没有where delete_flag is null吗?查询语句里的roadstockamount是什么列?
  2. 你可以试试对比的时候不计算sum值,查询记录下select id1,id2,amount,tkn_scn from target_table where delete_flag is null and tkn_scn<=746802256353 order by amount desc limit 20;看下异常时候的数据明细是什么样的

1.oracle有这列,默认为空,删除数据前会改为非空值,在同一个事务里面执行删除动作;roadstockamount就是前面建表语句的id2列,查询语句忘记修改
2.是在定时任务里面执行对比,由于变化比较频繁,发现异常后再执行会有新的差异情况

可以在定时任务里加一个SQL吗,对比两边amount最大的20条原始数据,有明细数据也方便看差异
另外你们oracle里原始数据会有amount特别大的值吗?是否存在oracle删除了这类数据,但是下游sr有延迟还没打标删除,导致结果差异较大呢?

您好,关于您提到的两点:
1.查两边最大的明细值可能我得再看下能不能加;
2.我看目前最大的值有超过1万的,但是我发现异常数据是出现在以下两点情况基础上发生的,不会是因为源端删除,目标端没删除导致的
第一点:这个表白天没有数据删除(是晚上定时删除)
第二点:我观察异常数据前几分钟的检查,sum值都是很小的

每天都有对比异常的情况吗?异常的时间点有规律吗?另外如果不加任何过滤条件,starrocks这边的sum的结果大概在什么量级呢?

您好,每天都有对比异常的情况,没有时间规律,没有筛选条件的结果数量级在100以内