使用SQL处理Hadoop查询的10种方法

x33g5p2x  于2020-12-20 发布在 Hadoop  
字(1.8k)|赞(0)|评价(0)|浏览(3188)

SQL是一种过时的技术,开始受到批评。另一方面,Hadoop是一项备受关注的新技术。这是一种常识。

但是,许多在Hadoop数据上部署方便的SQL的项目使用Hadoop内置的报告功能,并且需要一种能够处理Hadoop中存储的数据的SQL查询而不是将Hadoop数据导出到现有数据库的产品。显示。

MaR的最新版本(4.0.1)提供了专有的Hadoop发行版,具有四个引擎,可以处理SQL中的Hadoop查询。这四个引擎是用于Hadoop的非常好的SQL查询系统。

但是,还有许多其他适用于Hadoop的SQL技术。这些是为满足各种要求和实践而开发的技术。首先,介绍MapR的四个SQL引擎。

Apache Hive

第一个针对Hadoop的SQL解决方案。它具有MySQL行为,语法和界面的仿真,包括命令行客户端。

包含Java API和JDBC驱动程序,供那些在支持MySQL风格查询的Java应用程序中进行投资的人使用。它相对简单易用。但是,它的缺点是速度慢且只读。这导致了一些改善缺点的举措。

Stinger

Hortonworks提供了自己的Hadoop发行版,它开发了Apache Hive并启动了Stinger项目,以此来提高其性能。

该项目的最新“产品” Stinger.next旨在使查询响应时间少于一秒。它还计划支持事务操作,例如插入,更新和删除。

预计将在未来18个月内实施,并且还包括SQL分析等功能。

Apache Drill

是Google Dremel(又名BigQuery)的开源版本,旨在支持各种数据存储中的低延迟查询。

它还具有高可伸缩性,并支持Hadoop和NoSQL等多个查询接口。此外,查询可以各种执行速度处理,范围从几毫秒(1/1000)到几分钟。

MapR声称Drill是一种前瞻性技术,但它与现有技术向后兼容。这也是推动该项目的众多原因之一。

Spark SQL

Apache的Spark项目旨在以实时内存并行方式处理Hadoop数据。

底层Spark SQL的特点是能够对数据编写SQL查询。更好的方法是将Apache Hive用于Apache Spark。这是因为它重用了Hive技术的关键元素。

鉴于此,它可以作为已经在使用Spark的环境的附件(包括较早的项目Shark)。除了这四种技术外,还有六种脱颖而出。

Apache Phoenix

开发人员将此称为“ HBase的SQL皮肤”。

为了实现高性能和读/写操作,这是一种通过内置JDBC驱动程序使用诸如SQL之类的命令处理HBase查询的方法。

那些使用HBase的人可以轻松地引入和利用它。这是因为它是开源的,并且具有诸如加载批量数据之类的有用功能。

Cloudera Impala

Impala可描述为Dremel / Apache Drill的另一种实现,它扩展了配置单元,以便现有配置单元用户可以充分利用其优势。

可以对存储在HDFS或HBase中的数据进行查询。SQL语法与Apache Hive相同。但是,Impala和Drill之间的区别在于它隐藏了源。也就是说,只有Hadoop可以查询。

适用于HD的HAWQ

Pivotal还提供了独立的Hadoop发行版Pivotal HD。

HAWQ是Pivotal的专有技术,可在HDFS中处理SQL查询。换句话说,Pivotal支持并行SQL处理并与SQL标准具有高度兼容性,但基本上是仅Pivotal的产品。

Presto

是一项由Facebook工程师开发并在内部使用的技术。这个开源查询引擎让人想起Apache Drill,因为它与源代码无关。

可以使用ANSI SQL命令在Hive和Cassandra中处理查询。开发人员可以通过开发链接到他们使用的服务提供商接口的连接器来扩展系统。它支持某些数据插入功能,但这是非常基本的。无法处理更新。您只能插入。

Oracle大数据SQL

实际上,Oracle发布针对Hadoop的SQL查询引擎只是时间问题。

与Drill一样,它支持来自Hadoop和其他NoSQL存储的查询。但是,与Drill不同,它仅在Oracle产品中可用。此外,由于只能与Oracle Database 12c或更高版本集成,因此市场化受到很大限制。

IBM BigSQL

也是一个时间问题。2013年初,IBM发布了有关BigSQL的第一个技术预览版。

但是可悲的是,它仅适用于某些IBM后端产品。这是IBM的Hadoop InfoSphere BigInsights。前端可以包括标准的JDBC / ODBC客户端。

相关文章