in查询结果缺少数据

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】通过flink cdc,使用pipeline方式自动建表,将mysql的数据用cdc同步到starrocks里。同步之后,我查询一张大表数据,select * xxx where id in (xxx,xxx,xxx),发现每次查询的条数都不一样,且数据量都比预计的少。同时,我基于这张表构建了一个物化视图,执行类似的查询,in条件相同,每次查询结果一样,而且条数是正确的。

【背景】我做了以下尝试:1.修改查询语句:将where id 改为where trim(id),查询正常。并且我检查了所有的数据,trim(id)和id是一样的,不存在id前后有空字符。2,我重启了所有节点后,再执行查询,发现正常。3.我试了关闭cbo_enable_low_cardinality_optimize、materialized_view_rewrite_mode: DEFAULT -> disable 、use_page_cache: true -> false 都不行(可以从profile看到)
补充重启细节:1. 同步cdc插入数据后,重启所有sr节点,表现正常
2.先重启所有sr节点,再同步cdc插入数据,还是缺少数据

【业务影响】查数据不准确
【是否存算分离】否
【StarRocks版本】3.3.20和3.3.22都试过
【集群规模】3fe+3be(fe和be分开部署)
【机器信息】8C32G
【联系方式】1147083244@qq.com
【附件】
查询sql:
select mac from tauc_info.mysql_tpuc_isp_network_deco where trim(mac) in (“9CA2F4D1B85F”,“9CA2F4D1B862”,“48225445C8D0”,“9C53228952D4”,“48225445D510”,“9C5322894FFE”,“9CA2F4D1B9FD”,“9CA2F4D1BBA4”,“9C53228950FA”,“9C5322894FEC”);

select mac from tauc_info.mysql_tpuc_isp_network_deco where trim(mac) in (“9CA2F4D1B85F”,“9CA2F4D1B862”,“48225445C8D0”,“9C53228952D4”,“48225445D510”,“9C5322894FFE”,“9CA2F4D1B9FD”,“9CA2F4D1BBA4”,“9C53228950FA”,“9C5322894FEC”);

建表语句:

CREATE TABLE mysql_tpuc_isp_network_deco (
device_id varchar(120) NOT NULL COMMENT “”,
ctime datetime NOT NULL DEFAULT “1970-01-01 00:00:00.000” COMMENT “”,
mtime datetime NOT NULL DEFAULT “1970-01-01 00:00:00.000” COMMENT “”,
mac char(36) NULL COMMENT “”,
…省略其他字段
) ENGINE=OLAP
PRIMARY KEY(device_id)
DISTRIBUTED BY HASH(device_id)
PROPERTIES (
“bloom_filter_columns” = “mac”,
“compression” = “LZ4”,
“enable_persistent_index” = “true”,
“fast_schema_evolution” = “true”,
“replicated_storage” = “true”,
“replication_num” = “3”
);






补充进展:重启所有FE和BE之后,查询正常,profile显示olap_scan这一步行数不一样。之前缺少数据


GitHub已回复,找到原因了:char类型在主键表里面存在bug,对char类型建立bloom filter索引会导致索引有问题。建议改为varchar类型解决。