主流开源SQL引擎分析
druid解析sql语法书

druid解析sql语法书Druid是一种开源的分布式实时分析(OLAP)数据库,它以其高性能和可扩展性而闻名。
作为一种列式存储数据库,Druid可以处理大规模的数据集,并提供快速的查询和聚合功能。
在Druid中,SQL是一种常用的查询语言,它允许用户以熟悉的方式编写查询,并从Druid数据库中检索数据。
SQL(Structured Query Language)是一种用于管理关系型数据库的标准化语言。
它提供了一种简单而强大的方式来查询和操作数据库中的数据。
Druid通过支持SQL语法,使得用户可以使用熟悉的查询方式来与Druid数据库进行交互。
在Druid中,SQL查询被解析为Druid查询语言(DQL),然后由Druid查询引擎执行。
DQL是一种特定于Druid的查询语言,它允许用户以更高效的方式查询和聚合数据。
Druid查询引擎将SQL查询转换为DQL查询,并利用Druid的列式存储和索引结构来加速查询过程。
Druid解析SQL语法书的过程可以分为以下几个步骤:1. 语法分析:Druid首先对SQL查询进行语法分析,以确保查询语句的正确性。
它会检查查询语句是否符合SQL语法规范,并报告任何语法错误。
2. 语义分析:在语法分析之后,Druid会对查询语句进行语义分析。
它会检查查询语句中的表名、列名和函数名是否存在,并验证它们的正确性。
如果查询语句中引用了不存在的表或列,或者使用了不支持的函数,Druid会报告相应的错误。
3. 查询优化:一旦查询语句通过了语法和语义分析,Druid会对查询进行优化。
它会尝试重写查询语句,以提高查询的性能和效率。
例如,Druid会尝试将多个查询合并为一个查询,以减少查询的开销。
4. 查询执行:最后,Druid将优化后的查询转换为DQL查询,并将其发送给Druid查询引擎执行。
Druid查询引擎会利用Druid的列式存储和索引结构,以最快的速度检索和聚合数据。
查询结果将返回给用户,供其进一步处理和分析。
数据库存储引擎的特点与应用场景

数据库存储引擎的特点与应用场景数据库是现代应用程序开发中非常重要的组件之一。
而数据库存储引擎作为数据库的核心组成部分,起着关键的作用。
数据库存储引擎负责数据的存储和检索,不同的存储引擎具有不同的特点和适用场景。
本文将介绍几种常见的数据库存储引擎,包括InnoDB、MyISAM、MongoDB等,并对它们的特点及应用场景进行详细分析。
1. InnoDB存储引擎InnoDB是MySQL中最流行的存储引擎之一。
它支持ACID(原子、一致、隔离和持久性)事务,保证了数据的可靠性和一致性。
InnoDB还提供了行级锁和MVCC(多版本并发控制)的特性,使其在高并发读写场景下表现出色。
InnoDB适用于大型复杂事务和高并发读写的应用,如电子商务网站、社交网络和金融系统。
2. MyISAM存储引擎MyISAM是另一种常用的MySQL存储引擎。
它具有快速插入和查询的特点,对于大量的数据读取和少量的写入操作非常高效。
但是,MyISAM不支持事务和行级锁,并且在并发写入场景下性能较差。
因此,MyISAM适合于读取频繁、写入较少的应用,比如新闻网站、博客和论坛。
3. MongoDB存储引擎MongoDB是一个NoSQL数据库,它采用了BSON(Binary JSON)格式存储数据。
MongoDB的存储引擎主要有两种:WiredTiger和MMAPv1。
WiredTiger引擎支持事务和多线程读写,适用于高并发的OLTP(联机事务处理)应用。
而MMAPv1引擎则适合于大数据分析和高吞吐量的批量写入场景。
MongoDB常被用于日志分析、用户行为分析和物联网等应用领域。
4. Oracle数据库存储引擎Oracle数据库是一个功能强大的关系型数据库管理系统(RDBMS),支持多种存储引擎。
其中,Oracle的默认存储引擎是ACID兼容的,并提供了丰富的特性和高级功能,如分区表、索引组织表和数据压缩。
Oracle适用于大型企业级数据库系统,如ERP(企业资源规划)系统和CRM(客户关系管理)系统。
大数据分析的工具和平台介绍

大数据分析的工具和平台介绍随着信息技术的进步和应用范围的扩大,大数据分析逐渐成为企业决策和业务发展的重要手段。
为了有效地处理和分析大数据,各种工具和平台应运而生。
本文将介绍几款主流的大数据分析工具和平台,以帮助读者了解它们的特点和应用场景。
一、HadoopHadoop是一个开源的大数据分析框架,由Apache基金会开发和维护。
它的核心组件包括HDFS(分布式文件系统)和MapReduce(分布式计算框架)。
Hadoop使用分布式存储和计算的方式来处理大规模数据,具有高可靠性和可扩展性的特点。
它适用于处理非结构化和半结构化数据,如日志文件、图像和音视频等。
二、SparkSpark是一个快速而通用的大数据处理引擎,由Apache软件基金会维护。
与Hadoop相比,Spark具有更高的计算速度和更强大的内存管理能力。
它支持多种编程语言,如Java、Python和Scala等,并提供了灵活的数据处理和分析接口。
Spark可以处理结构化和非结构化数据,并支持机器学习和图计算等高级功能。
三、SQL框架SQL框架是一类以结构化查询语言(SQL)为基础的大数据分析工具。
常见的SQL框架包括Apache Hive和Apache Impala等。
这些框架提供了类似于传统关系型数据库的查询语法和操作接口,使得用户可以方便地在大数据集上进行复杂的查询和分析。
SQL框架适用于需要处理结构化数据和进行复杂数据关联和聚合的场景。
四、TableauTableau是一款用于数据可视化和分析的商业智能工具。
它提供了丰富的可视化功能和交互式分析界面,用户可以通过拖拽和点击等简单操作来探索和展示数据。
Tableau支持与各种数据源的连接,包括Excel、SQL数据库和Hadoop等。
它适用于数据探索、报告和决策支持等任务。
五、R语言R语言是一种专门用于数据分析和统计建模的编程语言。
它的强大统计函数库和图形绘制能力使得数据分析师可以方便地进行各种数据处理和建模操作。
Presto分布式SQL查询引擎及原理分析

Presto 分布式SQL查询引擎及原理分析Presto是由 Facebook 推出的一个基于Java开发的开源分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。
Presto本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。
为何是SQL查询引擎?而不是数据库和Oracle、MySQL、Hive等数据库相比,他们都具有存储数据和计算分析的能力。
如MySQL具有 InnoDB存储引擎和有SQL的执行能力;如Hive 有多种数据类型、内外表(且这么叫)的管理能力,且能利用MR、TEZ执行HQL。
而Presto并不直接管理数据,他只有计算的能力。
Presto 支持的数据源常见的RDBMS都支持,如:Oracle、MySQL、PG等;NoSQL:MongoDB、Redis、ElasticSearch 等;大数据:Hive,Hbase(第三方)Kudu、Kafka 等;Presto 支持从多中数据源获取数据来进行运算分析,一条SQL查询可以将多个数据源的数据进行合并分析。
如如下SQL: a可以来源于MySQL,b可以来源于Hive。
select a.*,b.* from a join b on(a.id = b.id)Presto 优势1.多数据源、混合计算支持:支持众多常见的数据源,并且可以进行混合计算分析;2.大数据:完全的内存计算,支持的数据量完全取决于集群内存大小。
他不像SparkSQL可以配置把溢出的数据持久化到磁盘,Presto是完完全全的内存计算;3.高性能:低延迟高并发的内存计算引擎,相比Hive(无论MR、Tez、Spark执行引擎)、Impala 执行效率要高很多。
根据Facebook和京东的测试报告,至少提升10倍以上;4.支持ANSI SQL:这点不像Hive、SparkSQL都是以HQL为基础(方言),Presto是标准的SQL。
用户可以使用标准SQL进行数据查询和分析计算;5.扩展性:有众多 SPI 扩展点支持,开发人员可编写UDF、UDTF。
数据库存储引擎的选择对于查询性能的影响

数据库存储引擎的选择对于查询性能的影响数据库是现代软件应用中的核心存储系统之一,用于存储、管理和检索数据。
在构建数据库系统时,选择合适的存储引擎对于应用的性能至关重要。
不同的存储引擎具有不同的特性和性能优势,因此在选择合适的存储引擎时需要考虑查询性能的影响。
一、介绍和比较常用的数据库存储引擎1. InnoDBInnoDB是MySQL中最常用的存储引擎之一。
它支持事务、行级锁定和崩溃恢复功能,并且能够提供高并发性能和可靠的数据完整性。
对于读写比较平衡的应用场景,InnoDB通常表现出卓越的性能。
2. MyISAMMyISAM是另一个常用的MySQL存储引擎,它用于处理具有高读取需求的应用。
MyISAM没有事务支持,但在处理大量读取操作时具有较高的性能和低的系统开销。
然而,对于频繁的写入操作,MyISAM性能可能会较差。
3. MongoDBMongoDB是一个面向文档的数据库,它使用了类似JSON的BSON格式来存储数据。
它的主要特点是可伸缩性和灵活的数据模型。
对于复杂的查询和大数据量的应用场景,MongoDB在性能方面表现出色。
4. PostgreSQLPostgreSQL是另一个流行的开源关系型数据库管理系统。
它具有丰富的特性和良好的扩展性,能够处理较复杂的查询和大规模并发访问。
在高并发和大型数据量的应用中,PostgreSQL表现出优异的性能。
二、数据库存储引擎对查询性能的影响1. 事务支持存储引擎是否支持事务是选择的一个重要因素。
对于需要处理复杂操作或者对数据完整性要求较高的应用,选择有事务支持的存储引擎是关键。
事务的支持可以保证数据的一致性,并提供并发控制机制来避免数据丢失或损坏。
2. 并发性能数据库的并发性能是评估存储引擎性能的一个重要指标。
不同的存储引擎在并发操作方面可能表现出不同的优劣。
一些存储引擎支持行级锁定,可以避免行级别的竞争,提供高并发性能。
而一些存储引擎可能只支持表级锁定,导致较低的并发性能。
sql语法解析框架

sql语法解析框架
SQL语法解析框架是用于解析SQL语句的工具或库,它可以将SQL语句转换为抽象语法树(Abstract Syntax Tree,AST)或其他中间表示形式,以便进一步分析和处理。
以下是一些流行的SQL语法解析框架:
1.ANTLR:ANTLR是一款强大的语法分析工具,它可以用于构建SQL语法解析器。
ANTLR使用类似于Java的语法定义语言,通过定义SQL语句的语法规则,可以自动生成解析器和词法分析器。
2.JSqlParser:JSqlParser是一个Java库,用于解析和操作SQL语句。
它可以将SQL 语句转换为AST,并提供了一些方便的方法来操作AST,例如添加、删除或修改语句中的部分内容。
3.sqlparse:sqlparse是一个Python库,用于解析SQL语句。
它可以将SQL语句转换为AST,并提供了一些基本的AST遍历和操作方法。
4.Calcite:Calcite是一个开源的框架,用于构建数据库和数据处理系统。
它提供了一个SQL解析器,可以将SQL语句转换为AST,并支持动态生成执行计划。
5.Apache Calcite:Apache Calcite是一个基于Calcite的开源项目,用于构建分布式计算和数据库系统。
它提供了强大的SQL解析器和优化器,支持多种数据源和查询语言。
这些框架都具有不同的特点和优势,可以根据具体需求选择适合的工具。
SQLSERVER2024数据库引擎详细介绍

SQLSERVER2024数据库引擎详细介绍SQL Server 2024 数据库引擎是一种可靠、安全、高效的数据管理系统,适用于中小型企业和大型企业。
它提供了一系列功能和工具,可用于管理和处理大量数据,并支持关键的业务应用程序。
SQL Server 2024 数据库引擎具有以下特点和功能:1. 强大的数据管理能力:SQL Server 2024 数据库引擎可以处理大量的数据,在处理和管理数据时具有很高的性能和可靠性。
它支持多种数据类型,包括整型、字符型、日期型等,并提供了一系列的函数和存储过程,用于处理和操作这些数据。
2. 安全性:SQL Server 2024 数据库引擎提供了强大的安全功能,用于保护数据的安全性和完整性。
它支持对数据库和表进行权限管理,并提供了访问控制、加密技术等功能,以确保只有经过授权的用户才能访问数据。
3. 高可用性:SQL Server 2024 数据库引擎支持高可用性架构,包括故障转移集群和数据库镜像等功能,以确保数据库的连续性和可用性。
通过这些功能,可以提供无缝的故障恢复和持续的数据访问。
4. 高性能:SQL Server 2024 数据库引擎优化了查询处理和执行计划生成等关键过程,以提高查询性能。
它还提供了索引和分区等功能,可以加快数据检索速度,提高系统的响应能力。
5. 扩展性:SQL Server 2024 数据库引擎支持水平和垂直的扩展性,可以根据需要扩大数据库的规模。
它支持分布式数据库和复制技术,可以将数据分布到不同的服务器上,提高系统的处理能力。
6. 数据集成:SQL Server 2024 数据库引擎提供了集成数据的功能,可以将不同数据源的数据集成到一个统一的数据库中。
它支持ETL (Extract, Transform and Load)过程,可以抽取、转换和加载数据,以实现数据的集成和分析。
7. 跨平台支持:SQL Server 2024 数据库引擎可以在不同的操作系统平台上运行,包括Windows、Linux等。
flinksql原理

flinksql原理Flink是一个开源的流处理和批处理框架,具有高性能、高可靠性和容错性。
FlinkSQL是一种用于处理流数据和批数据的SQL查询语言。
本文将详细介绍FlinkSQL的原理,并探讨其在Flink框架中的实现。
FlinkSQL基于Apache Calcite,一个开源的SQL解析库。
它使用了类似于传统关系数据库管理系统(RDBMS)的SQL语法,并在此基础上扩展了支持流数据和数据流窗口的操作。
与传统的SQL查询不同,FlinkSQL 能够在数据无穷无尽的流中进行计算,并根据给定的时间窗口对数据进行聚合。
FlinkSQL的原理可以分为以下几个关键点:1. 解析和优化:首先,FlinkSQL解析器将输入的SQL查询转换为一个抽象的语法树(AST)。
然后,优化器通过对AST进行一系列的优化操作来提高查询的执行性能。
这些优化包括:谓词下推、投影消除、关联关系优化等。
2. 关系代数计划:优化器将AST转换为一棵关系代数表达式的树。
关系代数是一个用于描述关系数据库操作和查询的形式化语言。
FlinkSQL 利用关系代数来描述查询计划,并对其进行后续的优化和执行。
3.物理计划:关系代数表达式被转换为一个物理计划。
物理计划是一个基于底层算子的执行计划,用于指定实际执行查询的方式。
物理计划会考虑底层数据源的布局和分布,以及可用的计算资源。
4. 数据流转换:物理计划被翻译成一系列的数据流转换操作。
这些操作包括对输入数据进行过滤、投影、聚合和连接等。
数据流转换操作是由Flink的DataStream API提供的,它允许用户以编程方式定义数据处理逻辑。
5. 数据流执行:最后,数据流转换被转换为一个可以在Flink集群中并行执行的作业图。
Flink将数据流作业图提交给执行引擎,并利用集群中的计算资源进行数据处理。
作业图中的每个节点都可以在不同的计算节点上独立执行,以实现高度并行的数据处理。
总结来说,FlinkSQL的原理是通过将输入的SQL查询转换为关系代数表达式,然后将其转换为物理计划,再将物理计划转换为数据流转换操作,最终将数据流转换操作转换为并行执行的作业图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主流开源SQL引擎分析本文涵盖了6个开源领导者:Hive、Impala、Spark SQL、Drill、HAWQ 以及Presto,还加上Calcite、Kylin、Phoenix、Tajo 和Trafodion。
以及2个商业化选择Oracle Big Data SQL 和IBM Big SQL,IBM 尚未将后者更名为“Watson SQL”。
使用SQL 引擎一词是有点随意的。
例如Hive 不是一个引擎,它的框架使用MapReduce、TeZ 或者Spark 引擎去执行查询,而且它并不运行SQL,而是HiveQL,一种类似SQL 的语言,非常接近SQL。
“SQL-in-Hadoop”也不适用,虽然Hive 和Impala 主要使用Hadoop,但是Spark、Drill、HAWQ 和Presto 还可以和各种其他的数据存储系统配合使用。
不像关系型数据库,SQL 引擎独立于数据存储系统。
相对而言,关系型数据库将查询引擎和存储绑定到一个单独的紧耦合系统中,这允许某些类型的优化。
另一方面,拆分它们,提供了更大的灵活性,尽管存在潜在的性能损失。
下面的图1展示了主要的SQL 引擎的流行程度,数据由奥地利咨询公司Solid IT 维护的DB-Engines 提供。
DB-Engines 每月为超过200个数据库系统计算流行得分。
得分反应了搜索引擎的查询,在线讨论的提及,提供的工作,专业资历的提及,以及tweets。
来源:DB-Engines,2017年1月/en/ranking虽然Impala、Spark SQL、Drill、Hawq 和Presto 一直在运行性能、并发量和吞吐量上击败Hive,但是Hive 仍然是最流行的(至少根据DB-Engines 的标准)。
原因有3个:∙Hive 是Hadoop 的默认SQL 选项,每个版本都支持。
而其他的要求特定的供应商和合适的用户;∙Hive 已经在减少和其他引擎的性能差距。
大多数Hive 的替代者在2012年推出,分析师等待Hive 查询的完成等到要自杀。
然而当Impala、Spark、Drill 等大步发展的时候,Hive只是一直跟着,慢慢改进。
现在,虽然Hive 不是最快的选择,但是它比五年前要好得多;∙虽然前沿的速度很酷,但是大多数机构都知道世界并没有尽头。
即使一个年轻的市场经理需要等待10秒钟来查明上周二Duxbury 餐厅的鸡翅膀的销量是否超过了牛肉汉堡。
在下面的图2中可以看出,相对于领先的商业数据仓库应用,用户对顶尖的SQL 引擎更感兴趣。
来源:DB-Engines,2017年1月/en/ranking对于开源项目来说,最佳的健康度量是它的活跃开发者社区的大小。
如下面的图3所示,Hive 和Presto 有最大的贡献者基础。
(Spark SQL 的数据暂缺)来源:Open Hub https:///在2016年,Cloudera、Hortonworks、Kognitio 和Teradata 陷入了Tony Baer 总结的基准测试之战,令人震惊的是,供应商偏爱的SQL 引擎在每一个研究中都击败了其他选择,这带来一个问题:基准测试还有意义吗?AtScale 一年两次的基准测试并不是毫无根据的。
作为一个BI 初创公司,AtScale 销售衔接BI 前端和SQL 后端的软件。
公司的软件是引擎中立的,它尝试尽可能多的兼容,其在BI 领域的广泛经验让这些测试有了实际的意义。
AtScale 最近的关键发现,包括了Hive、Impala、Spark SQL 和Presto:4个引擎都成功运行了AtScale 的BI 基准查询;∙取决于数据量、查询复杂度和并发用户数,每个引擎都有自己的性能优势:Impala 和Spark SQL 在小数据量的查询上击败了其他人;Impala 和Spark SQL 在大数据量的复杂join 上击败了其他人;Impala 和Presto 在并发测试上表现的更好。
∙对比6个月之前的基准测试,所有的引擎都有了2-4倍的性能提升。
Alex Woodie 报告了测试结果,Andrew Oliver 对其进行分析。
让我们来深入了解这些项目。
Apache HiveApache Hive 是Hadoop 生态系统中的第一个SQL 框架。
Facebook 的工程师在2007年介绍了Hive,并在2008年将代码捐献给Apache 软件基金会。
2010年9月,Hive 毕业成为Apache 顶级项目。
Hadoop 生态系统中的每个主要参与者都发布和支持Hive,包括Cloudera、MapR、Hortonworks 和IBM。
Amazon Web Services 在Elastic MapReduce(EMR)中提供了Hive 的修改版作为云服务。
早期发布的Hive 使用MapReduce 运行查询。
复杂查询需要多次传递数据,这会降低性能。
所以Hive 不适合交互式分析。
由Hortonworks 领导的Stinger 明显的提高了Hive 的性能,尤其是通过使用Apache Tez,一个精简MapReduce 代码的应用框架。
Tez 和ORCfile,一种新的存储格式,对Hive 的查询产生了明显的提速。
Cloudera 实验室带领一个并行项目重新设计Hive 的后端,使其运行在Apache Spark 上。
经过长期测试后,Cloudera 在2016年初发布了Hive-on-Spark 的正式版本。
在2016年,Hive 有100多人的贡献者。
该团队在2月份发布了Hive 2.0,并在6月份发布了Hive 2.1。
Hive 2.0 的改进包括了对Hive-on-Spark 的多个改进,以及性能、可用性、可支持性和稳定性增强。
Hive 2.1 包括了Hive LLAP(”Live Long and Process“),它结合持久化的查询服务器和优化后的内存缓存,来实现高性能。
该团队声称提高了25倍。
9月,Hivemall 项目进入了Apache 孵化器,正如我在我的机器学习年度总结的第二部分中指出的。
Hivemall 最初由Treasure Data 开发并捐献给Apache 软件基金会,它是一个可扩展的机器学习库,通过一系列的Hive UDF 来实现,设计用于在Hive、Pig 和Spark SQL 上运行MapReduce。
该团队计划在2017年第一季度发布了第一个版本。
Apache Impala2012年,Cloudera 推出了Impala,一个开源的MPP SQL 引擎,作为Hive 的高性能替代品。
Impala 使用HDFS 和HBase,并利用了Hive 元数据。
但是,它绕开了使用MapReduce 运行查询。
Cloudera 的首席战略官Mike Olson 在2013年底说到Hive 的架构是有根本缺陷的。
在他看来,开发者只能用一种全新的方式来实现高性能SQL,例如Impala。
2014年的1月、5月和9月,Cloudera 发布了一系列的基准测试。
在这些测试中,Impala 展示了其在查询运行的逐步改进,并且显著优于基于Tez 的Hive、Spark SQL 和Presto。
除了运行快速,Impala 在并发行、吞吐量和可扩展性上也表现优秀。
2015年,Cloudera 将Impala 捐献给Apache 软件基金会,进入了Apache 孵化计划。
Cloudera、MapR、Oracle 和Amazon Web Services 分发Impala,Cloudera、MapR 和Oracle 提供了商业构建和安装支持。
2016年,Impala 在Apache 孵化器中取得了稳步发展。
该团队清理了代码,将其迁移到Apache 基础架构,并在10月份发布了第一个Apache 版本2.7.0。
新版本包括了性能提升和可扩展性改进,以及一些其他小的增强。
9月,Cloudera 发布了一项研究结果,该研究比较了Impala 和Amazon Web Services 的Redshift 列存储数据库。
报告读起来很有意思,虽然主题一贯的需要注意供应商的基准测试。
Spark SQLSpark SQL 是Spark 用于结构化数据处理的组件。
Apache Spark 团队在2014年发布了Spark SQL,并吸收了一个叫Shark 的早期的Hive-on-Spark 项目。
它迅速成为最广泛使用的Spark 模块。
Spark SQL 用户可以运行SQL 查询,从Hive 中读取数据,或者使用它来创建Spark Dataset和DataFrame(Dataset 是分布式的数据集合,DataFrame 是统一命名的Dataset 列)。
Spark SQL 的接口向Spark 提供了数据结构和执行操作的信息,Spark 的Catalyst 优化器使用这些信息来构造一个高效的查询。
2015年,Spark 的机器学习开发人员引入了ML API,一个利用Spark DataFrame 代替低级别Spark RDD API 的包。
这种方法被证明是有吸引力和富有成果的;2016年,随着2.0 的发布,Spark 团队将基于RDD 的API改为维护模式。
DataFrame API现在是Spark 机器学习的主要接口。
此外,在2016年,该团队还在Spark 2.1.0的Alpha 版本中发布了结构化的流式处理。
结构化的流式处理是构建在Spark SQL 上的一个流处理引擎。
用户可以像对待静态源一样,用同样的方式查询流式数据源,并且可以在单个查询中组合流式和静态源。
Spark SQL 持续运行查询,并且在流式数据到达的时候更新结果。
结构化的流通过检查点和预写日志来提供一次性的容错保障。
Apache Drill2012年,由Hadoop 分销商的领导者之一MapR 领导的一个团队,提出构建一个Google Dremel 的开源版本,一个交互式的分布式热点分析系统。
他们将其命名为Apache Drill。
Drill 在Apache 孵化器中被冷落了两年多,最终在2014年底毕业。
该团队在2015年发布了1.0。
MapR 分发和支持Apache Drill。
2016年,超过50个人对Drill 做出了贡献。
该团队在2016年发布了5个小版本,关键的增强功能包括:∙Web 认证∙支持Apache Kudu 列数据库∙支持HBase 1.x∙动态UDF 支持2015年,两位关键的Drill 贡献者离开了MapR,并启动了Dremio,该项目尚未发布。
Apache HAWQPivotal 软件在2012年推出了一款商业许可的高性能SQL 引擎HAWQ,并在尝试市场营销时取得了小小的成功。