Doris4.1.2 存算一体, 偶发bug, 自动分区表 全表查询OK, 通过分区筛选查询不到数据, 重建该表重导数据分区裁剪生效,建表语句如下:
CREATE TABLE IF NOT EXISTS `dws`.`dws_test`(
`dt` date NOT NULL COMMENT 'yyyy-MM-dd'
,`aa` varchar(512) NULL COMMENT 'aa'
,`bb` varchar(512) NULL COMMENT 'bb'
,`cc` varchar(512) NULL COMMENT 'cc'
,`dd` datetime(6) NULL COMMENT 'dd'
,`ee` varchar(512) NULL COMMENT 'ee'
,`etl_time` datetime(6) NULL COMMENT 'ETL时间'
)
ENGINE=OLAP
UNIQUE KEY(`dt`, aa)
COMMENT '指标统计'
AUTO PARTITION BY RANGE(date_trunc(`dt`, 'DAY')) ()
DISTRIBUTED BY HASH(`aa`) BUCKETS 10
PROPERTIES(
"partition.retention_count" = "700"
);
select * from `dws`.`dws_test`; -- 可以查到
select * from `dws`.`dws_test` where dt >= '2026-07-10'; -- 查不到
select min(dt),max(dt) from `dws`.`dws_test`; -- 结果为 2026-07-10 2026-07-15
explain select * from `dws`.`dws_test` where dt >= '2026-07-10';
-- 通过explain结果如下:
-- PLAN FRAGMENT 0
-- OUTPUT EXPRS:
-- dt[#0]
-- im_send_emp_id[#1]
-- im_send_user_id[#2]
-- metric_code[#3]
-- msg_send_time[#4]
-- im_send_emp_no[#5]
-- im_send_emp_name[#6]
-- metric_name[#7]
-- etl_time[#8]
-- PARTITION: UNPARTITIONED
-- HAS_COLO_PLAN_NODE: false
-- VRESULT SINK
-- MYSQL_PROTOCOL
-- 0:VEMPTYSET(61)
-- ========== STATISTICS ==========
重建表重导数据后 select * from dws.dws_test where dt >= '2026-07-10' 可以查到了,分区裁剪生效了, 跟我之前的这个问题一样,只是触发的方式不一样
https://doris-forum.org.cn/questions/D13U4/ban-ben-xiu-gai-zi-duan-lei-xing-zhi-hou-fen-qu-cai-jian-bu-dao-shu-ju