SQL引擎初体验
背景
SQL引擎可以将不同的数据源数据做适配,在内存中进行操作,对使用方提供SQL查询能力。
常见的SQL引擎有:Hive,Impala,Spark SQL,Drill,HAWQ,Presto,Calcite,Kylin,Phoenix,Tajo,Trafodion和Oracle Big Data SQL,IBM Big SQL。
初体验
Calcite
将各种SQL语句解析成抽象语法术AST(Abstract Syntax Tree), 之后通过操作AST就可以把SQL中所要表达的算法与关系体现在具体代码之中。
Presto
Presto是一个运行在多台服务器上的分布式系统。 完整安装包括一个coordinator和多个worker。 由客户端提交查询,从Presto命令行CLI提交到coordinator。 coordinator进行解析,分析并执行查询计划,然后分发处理队列到worker。
Drill
当提交一个Drill查询时,客户端或应用程序以SQL语句的方式发送查询给Drill集群中的DrillBit。
DrillBit接收来自客户端和应用程序的Drill查询变成驱动整个查询的Foreman。Foreman解析器解析SQL,将自定义规则应用到特定的SQL操作符转换成特定的Drill理解的逻辑操作语法。集合的逻辑运算符形成逻辑的计划。逻辑计划描述了作业所需要生成的查询结果和定义了数据源与应用操作。
Phoenix
Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。
Tajo
A big data warehouse system on Hadoop。最后一个版本是2016年发布的。