doris查询数据,随机负载到不同节点,数据和元数据返回验证不一致

Viewed 4

生产环境doris 3fe + 4be
大概半个月前从3.0.4升级到3.1.4

昨天有个发版需求,发版后线上发版的报表视图出现多次刷新数据返回不一致,以及视图的元数据不一致(字段缺失)

开发阶段,会在这个环境提前创建视图,验证查询性能,所以开发阶段会创建ads视图(基于dw。ods等物理表创建关联视图)

发布生产阶段,会重新执行create or replace view xxxx as select xxxx的逻辑。

这两个阶段的view sql,可能一样,也可能额外加一个字段

历史很多次都是这么操作的,没有出现过问题。

测试发现

  1. 接口返回偶发性报错 缺少ancestors字段(元数据不一致)
  2. 接口返回数据不稳定,反复刷新数据会变(数据不一致)

仔细分析发现是3个fe的元数据不一致,master节点数据和元数据正常,follower节点缺失,不正常

由于数据差距极大,感觉是可以排除follower同步元数据延迟导致的

查询实时数据和历史数据都误差极大,人数类指标可以差几倍

image.png

数据不一致,举例:比如master的人数返回1300,follower返回400,误差极大,甚至历史日期,查前几天的也是误差极大。

经过往下深入分析,发现问题出现在ads的视图层。最终把create or replace view xx
前面加一个drop view。先删除再创建解决。

但是不清楚这个bug是怎么来的,具体什么原因导致的

0 Answers