dremio 查询执行阶段简单说明

内容实际来自官方架构介绍,图以前也在博客中放过,现在进行说明下

参考执行图

阶段说明

参考上图,dremio将执行分为可4个阶段

  • 客户端通过jdbc,odbc,rest 提交查询到协调节点
  • 计划阶段 
    此阶段可以细分3步 
    a. 协调节点解析查询为dremio的通用关系模型 
    b. 协调节点基于数据源的统计信息,生成查询执行计划,以及源的功能能力 
    c. 协调节点进行查询计划的重写(会使用到数据反射,考虑的东西比较多,比如排序,分区,数据分布,以及数据源的能力)
  • 执行 
    此阶段可以细分3步 
    a. 引擎从数据源并行的读取数据为arrow buffers,数据通常直接来自数据湖存储,有时也可能来自数据反射,或者外部数据源 
    当读取外部数据源的时候,引擎提交的是原生查询(jdbc ,mongo。。。) 
    b. 引擎执行查询的查询计划 
    c. 一个引擎合并来自一个或者多个引擎的数据,并通过stream 的模式到协调节点(pipeline)
  • 客户端从协调节点接受数据

说明

所有的数据操作都在执行节点(实际是指sql 数据类的操作),dremio 的执行实际上与大部分分布式查询引擎的流程类似(trino 等),只是dremio 又提供了不少其他比较方便的能力可以加速数据的使用

参考资料

https://www.dremio.com/downloads/DremioArchitectureGuide.pdf
https://www.dremio.com/blog/dremio-cloud-under-the-hood/
https://docs.dremio.com/24.2.x/help-support/lakehouse-arch/

posted on 2024-03-04 08:00  荣锋亮  阅读(42)  评论(0编辑  收藏  举报

导航