首页 > 其他分享 >dremio PhysicalPlanReader 简单说明

dremio PhysicalPlanReader 简单说明

时间:2023-01-11 19:55:41浏览次数:49  
标签:dremio java PhysicalPlanReader drill 简单 序列化 com

dremio 在经过sql 解析,sql转换,优化器,物理执行计划,会包含一个基于jackson序列化的格式的执行计划信息(整体与drill是类似的)

提供的能力

  • 注册自定义的jackson 序列化处理模块(包含了protobuf),以及子类型(connectionReader 以及PhysicalOperator 都会包含)
  • 提供序列化以及反序列化能力(主要是protobuf 以及json 相关的,方便处理查询计划)

参考类图

 

 

SabotContext 方法中的初始化

  • 参考代码
 
this.reader = new PhysicalPlanReader(config, classpathScan, lpPersistence, endpoint, catalogService, this);
  • 其他模块的集成使用
    都会基于SabotContext 提供的reader provider 能力进行处理,比如MaestroServiceImpl 以及CommandCreator的调用,之后会通过参数传递给其他模块使用

说明

PhysicalPlanReader 主要是dremio 在不行阶段方便共享执行计划的一种方法(内部基于了json +protobuf+jackson),不少服务模块都间接依赖了此

参考资料

sabot/kernel/src/main/java/com/dremio/exec/planner/PhysicalPlanReader.java
sabot/kernel/src/main/java/com/dremio/exec/server/SabotContext.java
https://drill.apache.org/docs/drill-query-execution/
https://confusedcoders.com/data-engineering/apache-drill/understanding-apache-drill-logical-plan
sabot/kernel/src/main/java/com/dremio/exec/maestro/MaestroServiceImpl.java
sabot/kernel/src/main/java/com/dremio/exec/planner/sql/handlers/commands/CommandCreator.java

标签:dremio,java,PhysicalPlanReader,drill,简单,序列化,com
From: https://www.cnblogs.com/rongfengliang/p/17044765.html

相关文章

  • leaflet的简单使用
    一、官网https://leafletjs.com/reference.html  leaflet是一个轻量级的地图组件,但是由于地图使用的是瓦片地图图片,而leaflet使用的图片是https://tile.openstreetmap......
  • 简单抓包一例
    客户端抓包相对简单,由于服务端发过来的前两个包没收到,且开起来SACK功能,所以在客户端通知服务端已收到(2921-5841)后,服务端通过两个包重传了(1-2921)。服务端共发送了(9096)。......
  • mac分屏功能怎么用?mac分屏magnet上手简单
    mac分屏功能怎么用?很多时候想两个页面一起看,或者打开一个Excel一个页面,想照着写,来回切换效率非常慢,如果可以像Windows分屏就会很方便。其实Mac系统是自带分屏功能的。Window......
  • 最简单的for循环语句
    前言在前面的文章中,壹哥给大家讲解了顺序结构、分支结构,接下来我们就来学习Java里的循环结构。Java里的循环结构,可以通过while、do-while、for、foreach等方式进行实现,今......
  • 使用File类创建简单的文件目录检索小工具
    File类的常用方法序号方法描述1publicStringgetName()返回由此抽象路径名表示的文件或目录的名称。2publicStringgetParent()****、返回此抽象路径名......
  • tinyproxy简单应用(linux设置网络代理、中转)
    1、安装yuminstalltinyproxy-y 2、修改配置文件修改代理ip和端口vim/etc/tinyproxy/tinyproxy.conf 3、服务管理systemctlstarttinyproxysystemc......
  • 编译打包rabbitmq然后一键部署的简单方法
    摘要之前总结过一版,但是感觉不太全面想着本次能够将使用中遇到的问题总结一下.所以本次是第二版介质下载rabbitmq不区分介质的打包文件rabbitmq-server-generic-......
  • MapUtil简单使用
    1maven <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.11</version>......
  • postman 使用简单汇总
    postman官网下载地址:https://www.postman.com/downloadsPostman支持功能1、快速构建2、参数化与变量设置提取3、查看请求数据4、提供断言功能5、批量运行6、设置环......
  • jpa常用语法简单使用 第一种:JPQL 第二种:原生sql
    jpa常用语法https://blog.csdn.net/weixin_44758923/article/details/127965476动态拼接第一种:JPQL@Query("selectdfromDoctordwhere(?1isnullor?1=''o......