starrocks 查询分区优化报错

starrocks 报错,版本 : 2.5.21

2024-12-14 13:32:24,549 WARN (starrocks-mysql-nio-pool-1633290|80818086) [PartitionColPredicateEvaluator.prunePartitions():71] eva
luate range partitions failed.
java.lang.NullPointerException: null
at com.starrocks.sql.optimizer.rewrite.PartitionColPredicateExtractor.extract(PartitionColPredicateExtractor.java:53) ~[st
arrocks-fe.jar:?]
at com.starrocks.sql.optimizer.rewrite.PartitionColPredicateEvaluator.prunePartitions(PartitionColPredicateEvaluator.java:
59) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.rewrite.OptOlapPartitionPruner.prunePartitions(OptOlapPartitionPruner.java:85) ~[starrocks-
fe.jar:?]
at com.starrocks.sql.optimizer.rule.transformation.PartitionPruneRule.transform(PartitionPruneRule.java:67) ~[starrocks-fe
.jar:?]
at com.starrocks.sql.optimizer.task.RewriteTreeTask.rewrite(RewriteTreeTask.java:63) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.task.RewriteTreeTask.rewrite(RewriteTreeTask.java:81) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.task.RewriteTreeTask.rewrite(RewriteTreeTask.java:81) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.task.RewriteTreeTask.rewrite(RewriteTreeTask.java:81) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.task.RewriteTreeTask.rewrite(RewriteTreeTask.java:81) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.task.RewriteTreeTask.rewrite(RewriteTreeTask.java:81) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.task.RewriteTreeTask.rewrite(RewriteTreeTask.java:81) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.task.RewriteTreeTask.rewrite(RewriteTreeTask.java:81) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.task.RewriteTreeTask.rewrite(RewriteTreeTask.java:81) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.task.RewriteTreeTask.execute(RewriteTreeTask.java:46) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.task.SeriallyTaskScheduler.executeTasks(SeriallyTaskScheduler.java:68) ~[starrocks-fe.jar:?
]
at com.starrocks.sql.optimizer.Optimizer.ruleRewriteOnlyOnce(Optimizer.java:563) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.Optimizer.logicalRuleRewrite(Optimizer.java:296) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.Optimizer.rewriteAndValidatePlan(Optimizer.java:367) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.Optimizer.optimizeByCost(Optimizer.java:135) ~[starrocks-fe.jar:?]
at com.starrocks.sql.optimizer.Optimizer.optimize(Optimizer.java:96) ~[starrocks-fe.jar:?]
at com.starrocks.sql.StatementPlanner.createQueryPlan(StatementPlanner.java:125) ~[starrocks-fe.jar:?]
at com.starrocks.sql.StatementPlanner.plan(StatementPlanner.java:84) ~[starrocks-fe.jar:?]
at com.starrocks.sql.StatementPlanner.plan(StatementPlanner.java:49) ~[starrocks-fe.jar:?]
at com.starrocks.qe.StmtExecutor.execute(StmtExecutor.java:457) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:345) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ConnectProcessor.dispatch(ConnectProcessor.java:454) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ConnectProcessor.processOnce(ConnectProcessor.java:731) ~[starrocks-fe.jar:?]
at com.starrocks.mysql.nio.ReadListener.lambda$handleEvent$0(ReadListener.java:55) ~[starrocks-fe.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_322]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_322]
at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_322]

来个query dump

从日志没有找到对应的query_id …

怎么找到这个对应的 queryId ,线上请求太多,这条日志没有打印出来那个 queryId

审计日志里面找找State=ERR的sql

是不是用了不等于某个分区的过滤条件

没有搜到,但是有一个发现, show partitions from table 的结果里最新的3个分区居然没有数据,但是用 select 表加分区条件可以查询出来数据,这是为啥

我们这张表是用 insert overrite 某些分区来更新的