环境
- doris版本: doris-3.0.6.2-rc01
- selectdb版本: v25.1.1
背景
由于业务需要, 需要在doris中查询aws的athena数据, 而athena的metadata存放于aws的glue, 因此参考doris官方文档, 创建外部catalog读取数据, 文档地址: https://doris.apache.org/zh-CN/docs/3.x/lakehouse/metastores/aws-glue?_highlight=glue#hive-glue-catalog
现象
- 开始使用的时候查询分区较少的表的时候, 能够正常出结果, 但是如果查询分区多的表时, fe便会出现内存/cpu拉满, 导致新会话无法连接, 服务器无响应(将分区的值写入到 where 中也无法解决这个问题).
- 正常现象, 查询的表分区约为 1000+

cpu和内存在短暂的飙高之后稳定下来 - 异常现象, 查询的表分区数目粗略估计为58w个

cpu和内存拉升之后, 未能降下来, 且发起的sql卡死
- 正常现象, 查询的表分区约为 1000+
分析
- 结合AI以及查看源码发现, doris会在事务发起的时候, 全量拉取所有分区的.
期望
- doris在分析sql生成执行计划的时候, 能够将where中跟分区有关的条件下沉到分区的查找中, 避免全量拉取所有分区的产生的fe宕机现象