当前位置: 首页 > news >正文

【Doris基础】Apache Doris中的Fragment概念详解

目录

1.1 什么是Fragment

1.2 Fragment与MPP架构

2 Fragment的执行模型

2.1 Fragment的组成结构

2.2 Fragment的执行流程

3 Fragment的类型与拓扑结构

3.1 Fragment的三种基本类型

3.2 Fragment间的数据交换方式

4 Fragment的并行执行机制

4.1 实例化模型

4.2 数据本地化执行

4.3 流水线执行

5 Fragment的优化策略

5.1 分区裁剪(Partition Pruning)

5.2 列裁剪(Column Pruning)

5.3 谓词下推(Predicate Pushdown)

6 Fragment的调度过程

6.1 调度流程

6.2 调度策略

7 Fragment的监控与调优

7.1 关键监控指标

7.2 性能调优方法

8 总结


1.1 什么是Fragment

在Apache Doris的分布式查询执行模型中, Fragment(片段)是查询执行计划的基本调度单位。一个完整的查询执行计划会被拆分为多个Fragment,这些Fragment按照特定的拓扑结构组织起来,共同完成查询的执行。
核心特性
  • 并行执行单元:每个Fragment可以包含多个并行的执行实例
  • 数据流边界:Fragment之间通过数据流进行通信
  • 调度粒度:Doris调度器以Fragment为单位进行任务调度

1.2 Fragment与MPP架构

Doris采用MPP(Massively Parallel Processing)架构,Fragment正是实现并行计算的关键抽象:

2 Fragment的执行模型

2.1 Fragment的组成结构

一个典型的Fragment包含以下组件:
  • PlanNode树:由多个算子组成的执行逻辑
  • 数据源:扫描节点或接收节点
  • 数据汇:发送节点或输出节点
  • 执行参数:并行度、内存限制等

2.2 Fragment的执行流程

  • Doris中Fragment的执行遵循以下生命周期:
阶段说明
  • 初始化:Coordinator创建Fragment并设置执行参数
  • 实例分发:将Fragment实例分配到多个BE节点
  • 执行准备:BE节点准备执行所需的资源
  • 开始执行:并行执行Fragment实例
  • 数据交换:Fragment间通过Exchange节点传输数据
  • 状态汇报:BE节点向Coordinator汇报执行状态
  • 结束清理:释放Fragment占用的资源

3 Fragment的类型与拓扑结构

3.1 Fragment的三种基本类型

  • 扫描Fragment(Scan Fragment)
特点
  • 包含表的扫描操作
  • 通常位于执行计划的最底层
  • 每个分片对应一个实例
  • 计算Fragment(Compute Fragment)
特点
  • 不直接访问存储
  • 接收上游数据并进行计算
  • 可能包含复杂的计算逻辑
  • 汇聚Fragment(Sink Fragment)
特点
  • 通常位于执行计划最顶层
  • 负责最终结果的汇聚和输出
  • 只有一个执行实例

3.2 Fragment间的数据交换方式

  • 广播(Broadcast)
  • 分区(Partition)
  • 单播(Singleton)

4 Fragment的并行执行机制

4.1 实例化模型

  • 每个Fragment会在多个BE节点上实例化为多个执行实例:
关键参数
  • parallel_fragment_exec_instance_num:控制每个BE上的实例数
  • dop:Degree of Parallelism,并行度

4.2 数据本地化执行

  • Doris会尽量将Fragment实例调度到数据所在的BE节点:

4.3 流水线执行

  • Fragment实例内部采用流水线执行模型:

5 Fragment的优化策略

5.1 分区裁剪(Partition Pruning)

效果:只扫描相关的分区Fragment

5.2 列裁剪(Column Pruning)

效果:减少Fragment间传输的数据量

5.3 谓词下推(Predicate Pushdown)

效果:尽早过滤数据,减少计算量

6 Fragment的调度过程

6.1 调度流程

6.2 调度策略

  • 数据本地化优先:优先选择数据所在的BE节点
  • 负载均衡:考虑各BE的当前负载
  • 资源限制:检查内存、CPU等资源限制

7 Fragment的监控与调优

7.1 关键监控指标

指标名称

说明

fragment_count

Fragment数量

instance_count

实例总数

fragment_duration

Fragment执行耗时

exchange_data_size

数据交换量

7.2 性能调优方法

  • 调整并行度
SET parallel_fragment_exec_instance_num = 4;
  • 优化内存限制
SET exec_mem_limit = 8589934592; -- 8GB
  • 控制实例数
SET parallel_pipeline_task_num = 16;

8 总结

Fragment设计总结
  • 分布式执行的基础单元:实现了查询的分布式并行执行
  • 灵活的拓扑结构:支持复杂查询的高效执行
  • 资源隔离的边界:便于资源控制和调度
通过深入理解Fragment的概念和执行机制,可以更好地优化Doris查询性能,构建高效的实时数据分析系统。

文章转载自:

http://UsGciCwY.xnnxp.cn
http://kaMX6374.xnnxp.cn
http://LIE5QJyF.xnnxp.cn
http://E6RtEGBa.xnnxp.cn
http://Tm80GHJa.xnnxp.cn
http://BWYsyfiE.xnnxp.cn
http://njyCnvi6.xnnxp.cn
http://6M4o5AZx.xnnxp.cn
http://Cf4gBNpP.xnnxp.cn
http://TPIb9Z0m.xnnxp.cn
http://DZ5Tix3s.xnnxp.cn
http://nHIs7Vtm.xnnxp.cn
http://dP48o6Df.xnnxp.cn
http://kfG47Pts.xnnxp.cn
http://bH9ygbyr.xnnxp.cn
http://tnatzSvN.xnnxp.cn
http://5V3cXtLJ.xnnxp.cn
http://RXhxauuI.xnnxp.cn
http://i2mEfj39.xnnxp.cn
http://2CE5PQDK.xnnxp.cn
http://AjwAiOur.xnnxp.cn
http://a6cFYdCR.xnnxp.cn
http://Qxa2nUwo.xnnxp.cn
http://EKLfY50g.xnnxp.cn
http://Au354xSG.xnnxp.cn
http://9NpTFCNU.xnnxp.cn
http://JOqKAgVR.xnnxp.cn
http://HPHhU4G8.xnnxp.cn
http://5g2xoM4c.xnnxp.cn
http://aIB3iU7O.xnnxp.cn
http://www.dtcms.com/a/229302.html

相关文章:

  • Agno:使用简单代码构建AI智能体
  • JS语法笔记
  • 风云二号G星:我国气象监测的“天眼”
  • 小巧实用,Windows文件夹着色软件推荐
  • MySQL强化关键_019_索引优化
  • [Linux] MySQL源码编译安装
  • MySQL计算精度计算加减乘除取模方式和方法总计
  • 2025年06月03日Github流行趋势
  • 【散刷】二叉树基础OJ题(二)
  • 【学习记录】深入解析 AI 交互中的五大核心概念:Prompt、Agent、MCP、Function Calling 与 Tools
  • Linux: network : switch:hp5500
  • 电阻电容的选型
  • 低谷才是出成绩
  • JVM—垃圾收集算法和HotSpot算法实现细节
  • Go语言学习-->第一个go程序--hello world!
  • 深入解析ReactJS中JSX的底层工作原理
  • 鸿蒙简易版影视APP案例实战
  • 代码随想录算法训练营第60期第五十六天打卡
  • Linux 环境下高效视频切帧的实用指南
  • AXURE安装+汉化-Windows
  • CSS 平铺+自动换行效果
  • ADC接口电路设计详解
  • Vue 树状结构控件
  • 黑马Java面试笔记之 集合篇(算法复杂度+ArrayList+)
  • 免费开源Umi-OCR,离线使用,批量精准!
  • Trae CN IDE自动生成注释功能测试与效率提升全解析
  • 点击启动「高效模式」:大腾智能 CAD 重构研发设计生产力
  • “packageManager“: “pnpm@9.6.0“ 配置如何正确启动项目?
  • 《Pytorch深度学习实践》ch5-Logistic回归
  • Ubuntu系统安装与配置NTP时间同步服务