请列举 Apache Doris 中可用的分布式查询引擎,并阐述其内部机制如何支撑高效的数据查询?
考察说明
考查对 Doris 架构中查询引擎组成及高效查询机制的理解。
回答思路
- 【回答框架 1】Doris 核心查询引擎是自研的 MPP(大规模并行处理)引擎,采用分布式调度与执行,将查询计划切分为多个分片任务并行执行,通过多节点并行扫描和计算提升吞吐。
- 【回答框架 2】除 MPP 引擎外,Doris 还支持通过 Catalog 方式对接外部数据源,如 Hive、Iceberg、Hudi 等,实现联合查询,但这类查询仍由 MPP 引擎统一调度,只是数据读取层面扩展。
- 【回答框架 3】高效查询的关键在于:列式存储与向量化执行,减少 IO 和 CPU 开销;分区与分桶裁剪,减少扫描数据量;物化视图和 Rollup 预聚合加速汇总查询;以及基于成本的优化器(CBO)选择最优执行计划。
- 【回答框架 4】同时,Doris 利用多副本并行扫描、动态分区裁剪、缓存机制等手段降低延迟,并通过内存表(如 Duplicate Key 模型)和索引(如前缀索引)加速点查。
- 【关键点 1】Doris 采用 MPP 分布式查询引擎,支持并行执行。
- 【关键点 2】列式存储和向量化执行显著提升查询性能。
- 【关键点 3】分区、分桶裁剪和物化视图减少数据扫描量。
- 【关键点 4】CBO 优化器与多种索引机制共同保障高效查询。
- 【易错点 1】不能将外部数据源的查询能力等同于 Doris 内部引擎,其性能受限于数据源本身。
- 【易错点 2】MPP 并非所有场景都最优,需结合数据分布和查询特征。
- 【易错点 3】物化视图有维护成本,可能影响写入性能。