异步物化视图对晚到数据补录问题

【详述】 数据补录,假如10.1日、10.5日上传两天日数据,会使用10.1日补录10.2、10.3、10.4中间数据,但10.6日真正生产的数据数据上传了,已经补录的数据没有被更新,尝试在PROPERTIES加unique_constraints发现加不上去,针对这个问题我该如何处理?
【业务影响】
【StarRocks版本】:3.1
【集群规模】例如:3fe(1 follower+2observer)+5be(fe与be混部)


在PROPERTIES加unique_constraints发现加不上去

这个命令能发下吗?

CREATE MATERIALIZED VIEW test.eqpt_elec_power_day_dws_view
PARTITION BY start_dt
DISTRIBUTED BY HASH(equipment_id)
REFRESH ASYNC START(‘2023-10-26 14:00:00’) EVERY (interval 1 MINUTE)
PROPERTIES (
“unique_constraints” = “equipment_id,generate_dt”,
“replication_num” = “3”,
“replicated_storage” = “true”,
“storage_medium” = “HDD”
) 是我的写法有问题?加上约束后晚到的数据会更新已经生成的数据?

这块可能理解有点问题:
unique_constraints约束和foreign_key_constraints约束仅用于查询重写。导入数据时,不保证进行外键约束校验。您必须确保导入的数据满足约束条件。

能再详细描述下你们补数据的需求吗?最好也写清楚下物化视图的SQL逻辑和DDL语句

每天传感器都会上传一条数据,但由于各种原因可能会导致数据上传失败。这就可能出现这样的情况:假设在基表中,第10.1、10.2和10.4号设备上传了数据,但在第10.3号设备这一天没有数据上传。在这种情况下,我们会采取以下步骤:首先,通过异步物化视图和自定义UDAF(用户定义的聚合函数)将10.2号设备的数据补录到10.3号设备的日期上。
然后,当采集人员在第10.5号设备这一天发现10.3号设备没有上传数据时,他们会手动上传这一天的真实数据。由于之前已经通过物化视图和UDAF进行了数据补录,现在需要确保新的真实数据能够更新已经补录的数据。这可以通过设备ID和日期(dt)的唯一组合来确认这一天的数据?异步物化视图该如何让后面来的数据更新已经存在的数据?

异步物化视图是怎么补录数据的呢?如果期望物化视图里设备ID和日期(dt)的组合是唯一的,可以在定义物化视图的时候对相关列做下类似group by之类的操作。另外物化视图是insert overwrite的方式更新的,每次刷新物化视图都会根据定义的SQL逻辑来重刷数据

好的,感谢,我去试试看