有数据但是根据分区字段查询不出来

【详述】分区表根据分区字段查询,查不出来数据
【背景】查询数据
【业务影响】数据查询失败
【StarRocks版本】3.1.0
【集群规模】2fe+3be
【机器信息】be fe每台8C/128G,
建表语句:
CREATE TABLE srm.ssta_settle_header (
settle_header_id bigint(20) NOT NULL COMMENT “”,
tenant_id bigint(20) NOT NULL COMMENT “租户ID”,
storage_time datetime NULL COMMENT “创建时间”
) ENGINE=OLAP
PRIMARY KEY(settle_header_id, tenant_id)
PARTITION BY (tenant_id)
DISTRIBUTED BY HASH(settle_header_id)
PROPERTIES (
“replication_num” = “2”,
“in_memory” = “false”,
“enable_persistent_index” = “true”,
“replicated_storage” = “true”,
“compression” = “LZ4”
);

查询语句1:查不到数据
SELECT * from srm.ssta_settle_header WHERE tenant_id = 28344

查询语句2:能查到settle_header_id = 15且tenant_id = 28344的数据
SELECT * from srm.ssta_settle_header WHERE settle_header_id = 15

说明:以上tenant_id是分区字段,只根据当分区字段查询数据时,有的分区可以查到数据,有的分区查不到数据。

其他:_statistics_.column_statistics表中查询不到ssta_settle_header的数据

麻烦获取下有无分区数据的explain costs + sql和profile

explain_costs.txt (3.6 MB)

完整建表语句.txt (28.3 KB)

profile.txt (14.3 KB)

SELECT hex(tenant_id),hex(28344) from srm.ssta_settle_header WHERE settle_header_id = 15,看下这个结果是啥

set enable_column_expr_predicate=false;设置这个之后试试


还是一样查不到数据

是存算分离版本吗

不是存算分离的。

查不出来数据的原因是分区被裁空了,不过3.1.0-1778465 没复现出来问题,可以show partitions from ssta_settle_header_bak;看看分区的情况


我看是有这个分区的

搞个query dump把,我们复现下

dump_file (68.7 KB)

SELECT * from srm.ssta_settle_header PARTITIONS(p28344) where settle_header_id = 15; 这样查看看能查到数据么?


有数据

SELECT settle_header_id, tenant_id, storage_time from srm.ssta_settle_header where settle_header_id = 15;
帮忙再来个这个SQL的query dump吧,多谢多谢

应该是_bak表(查不出数据的有bug的表,我给备份了。)也是有数据的。

dump_file (39.8 KB)