求大神!!doris查询hive,表新增字段,但是使用新增字段进行查询时过滤失效,返回结果值错误

如上图所示,sensitive_query_flag为hive表新增的字段,20240227分区是最新刷进去的数据,其他几个分区均为历史数据分区,在这种情况下使用sensitive_query_flag=1 进行过滤,对历史分区均失效,使用presto及spark情况下,sensitive_query_flag=1 是可以过滤掉为NULL的数据的

有大神知道是什么原因吗 该如何解决

可以给下具体的复现步骤么?我们复现下

好的,感谢关注,具体的复现步骤如下:
1.新建一张hive中 orc格式的分区表,以int类型的dt作为为分区,如下
CREATE TABLE IF NOT EXISTS dbname.table_name (
id bigint,
type bigint ,
state string
) COMMENT ‘’
PARTITIONED BY (dt INT COMMENT ‘yyyymmdd’)
STORED AS ORC
tblproperties (‘orc.compress’ = ‘SNAPPY’);

2.使用spark sql通过INSERT OVERWRITE TABLE dbname.table_name PARTITION(dt=xxxx) 写入多个分区的数据,如 dt=20240228,dt=20240227,dt=20240226,dt=20240225

3.新增字段,执行如下ddl
ALTER TABLE dbname.table_name ADD COLUMNS(
sensitive_query_flag BIGINT COMMENT ‘’
)cascade;

4.再次通过 INSERT OVERWRITE TABLE dbname.table_name PARTITION(dt=20240228) 刷入20240228分区的数据,在我的使用场景中sensitive_query_flag 值为0或1,此时通过sensitive_query_flag = 1 对 dt>=20240225 进行过滤时,只会对重新写入的分区 dt=20240228生效,对其余分区的结果均表现为失效,查出的结果包括值为NULL的情况

按照以上结果执行结果图如下(以新增字段作为where条件,只会对添加字段后重新写入的分区生效,对历史分区会存在错误数据):

使用的doris版本是 2.0.4

hello 这个有结果了嘛 是我有什么地方没设置对吗

小伙伴好~Doris 问答论坛已迁移,辛苦将问题转发至新论坛提问哦。

【论坛迁移公告】全新论坛地址 ask.selectdb.com ,后续所有内容将迁移至新论坛