SQL解析工具对比分析

目录

1 SQL引擎基础认知

2 SQL工具引擎对比分析

3 参考资料


1 SQL引擎基础认知

功能:将用户输入的SQL语句序列转换为一个可执行的操作序列,并返回查询的结果集。
SQL的解析引擎包括查询编译与查询优化和查询的运行,主要包括3个步骤:

查询分析 ---> 制定逻辑查询计划(优化相关)---> 制定物理查询计划(优化相关)

 

  • 查询分析: 将SQL语句表示成某种有用的语法树.

  • 制定逻辑查询计划: 把语法树转换成一个关系代数表达式或者类似的结构,这个结构通常称作逻辑计划。

  • 制定物理查询计划:把逻辑计划转换成物理查询计划,要求指定操作执行的顺序,每一步使用的算法,操作之间的传递方式等。
    查询分析各模块主要函数间的调用关系:

 

2 SQL工具引擎对比分析

引擎名称

产品

是否基于Antlr

资料

出品方

备注

sqlparser

greenplum

 

http://www.sqlparser.com/

 

收费的

Queryparser

未知

未知

https://www.infoq.cn/article/uber-opensource-queryparser

滴滴

资料很少

Apache Calcite

Kylin/Drill/Flink

否,基于parser.cc

 

apache

 

阿里druid内嵌的一个解析器

Druid连接池

否,Druid没有抽出这个解析模块单独命名,号称比基于Antrl的解析器快十倍

 

阿里

 

hive sql解析

hive

是,基于Antrl写的一个解析工具。

后来也是用了Calcite。

 

 

有人说这个模块也比较好抽出来,说可以单独抽出来使用

spark sql解析

Spark

是,属于Catalyst的parse模块,直接基于Antlr,而没有使用calcite

 

 

 

 

 

 

 

 

 

 

3 参考资料

https://www.infoq.cn/article/the-year-in-sql-engines

https://www.zhihu.com/question/51676071

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值