3fe3be, 物化视图无数据

【详述】异步物化视图,单一基表聚合,基表为本地主键表,表达式分区,自动刷新,向基表插入数据后,视图无数据,手动刷新物化视图,仍然无数据,be内无日志,fe有执行日志无报错, 手动执行物化视图中的select有数据,但是fe会报错,貌似是在做查询rewrite使用物化视图失败,但是执行成功,数据也正常
【背景】
【业务影响】
【是否存算分离】存算一体
【StarRocks版本】3.1.6
【集群规模】3fe+3be(fe与be独立部署)
【机器信息】8C/128G/千兆
【联系方式】微信sj500716, 电话18600668587
【附件】


上图是当前物化视图状态

物化视图fe执行日志.txt (23.4 KB)
上面日志是FE中执行物化视图刷新的日志

fe报错.txt (9.3 KB)
上面是执行物化视图中的select,FE的报错日志

物化视图脚本.txt (21.8 KB)
上面是物化视图的创建脚本

  1. 刷新失败可以尝试下,refresh materialized view xxx force吗? (https://docs.starrocks.io/docs/sql-reference/sql-statements/data-manipulation/REFRESH_MATERIALIZED_VIEW/)
  2. 刷新失败的问题,能升级到最新的3.1版本再看看吗? 因为3.1.6上面没有把刷新异常的堆栈打出来。
  3. 查询时报错,确实是改写时的问题,不过这个只是warning不影响查询。这个在最新的3.1.x上应该已经解决了的。

执行过REFRESH MATERIALIZED VIEW dwd_uf20_his_fuholddrop_wc_di_day_cp_mv force; 后, 效果没变, 刷新状态还是false,如下:

我下面试试升级一下版本到3.1.12, 再看看效果

现在升级到了3.1.12, 刷新物化视图, 状态仍然是failed, 删除物化视图重建, 效果相同,如下:

image

手动执行物化视图中的select仍然可以成功,并且结果正常, fe中仍然有报错, 如下:

fe报错1.txt (9.1 KB)

请问这个问题是否跟基表的分区方式或者其他原因有关系呢? 基表的建表语句如下:

基表建表语句.txt (4.4 KB)

复现了这个问题, 如果我的基表是分区表, 物化视图就不会刷新, 测试如下:
create table sjtest1_p
(id bigint(18),
INIT_DATE BIGINT(10))
ENGINE = OLAP
PRIMARY KEY (id,INIT_DATE)
PARTITION BY (INIT_DATE)
DISTRIBUTED BY HASH(id,INIT_DATE);

CREATE MATERIALIZED VIEW IF NOT EXISTS rtdata_sr.sjtest1_mv
refresh ASYNC
as
select count(1) from rtdata_sr.sjtest1_p;

insert into sjtest1_p(id,INIT_DATE) values (1,20240614);
insert into sjtest1_p(id,INIT_DATE) values (2,20240614);
insert into sjtest1_p(id,INIT_DATE) values (3,20240614);
insert into sjtest1_p(id,INIT_DATE) values (4,20240614);

select * from sjtest1_mv;