如何选择基于Hadoop的SQL引擎

日期: 2014-04-02 作者:Rick van der Lans翻译:陈洪钰 来源:TechTarget中国 英文

在Hadoop和NoSQL技术中,人们逐渐把焦点转移到了Hadoop上的SQL引擎。今天,可选择的引擎越来越多,反倒让组织陷入了选择困境。本文将罗列几点选择引擎时需要考量的因素,供您参考。

基于Hadoop的SQL技术一大优势在于可以使用熟悉的SQL语言,访问存储在Hadoop中的大数据集。用户几乎可以应用任何报表或工具来分析和研究数据。在Hadoop上还不能应用SQL的时候,要访问Hadoop中的大数据集,需要十分了解Hadoop的技术应用程序界面,比如HDFS、MapReduce或HBase。现在有了基于Hadoop的SQL引擎,每个人都可以使用他喜欢的工具了。对企业而言,相当于Hadoop开放了更大的窗口,有更多的企业可以应用Hadoop处理大数据。

有哪些技术可以选择

第一个基于Hadoop的SQL引擎是Apache Hive,不过过去一年里,有很多新产品出现,包括CitusDB、Cloudera Impala、Concurrent Lingual、Hadapt、InfiniDB、 JethroData、MammothDB、Apache Drill、MemSQL、Pivotal HawQ、Progress DataDirect、ScleraDB、Simba和Splice Machine。

除了上述引擎之外,数据虚拟化服务器也应在此列,因为它们对Hadoop数据实现了SQL访问。虚拟化服务器可以访问所有数据源,包括Hadoop,不同的数据源都可以集成。数据虚拟化服务器有很多,包括Cirro Data Hub、Cisco/Composite

当然,还有一些SQL数据库管理系统也支持多种数据源。它们在自己的SQL数据库或Hadoop中存储数据,提供对Hadoop数据的SQL访问。比如EMC/Greenplum UAP、 HP Vertica (on MapR)、Microsoft PolyBase、Actian ParAccel 和Teradata Aster Database (via SQL-H)。

这么多基于Hadoop的SQL工具可以使用,可以说是让组织眼花缭乱。那么该如何选择呢?它们彼此的差别又在哪呢?

事实上,不同的技术之间差别很大,比如说,CitusDB知道数据存储在哪里,可以更快地访问数据;JethroData存储索引,可以直接访问数据;Splice Machine提供交易型SQL界面。

要选择正确的技术,需要比对细节。以下是具体的考虑因素:

SQL语言

支持的SQL语言越多,能使用的应用程序也就越多。并且,支持的语言越丰富,Hadoop能运行的查询程序就越多,应用和报表工具要做的就越少。

节点连接

在大表上快速有效地执行节点连接并不容易,尤其是在SQL引擎不知道数据存储在哪的情况下。效率低下的连接过程会导致大量的I/O,以及不同节点之间巨大的数据传输,最终影响处理速度。

非结构化数据

SQL是为结构化数据设计的。表中的每一条记录都位于同一列,每一列都有同样的属性。但在大数据时代,并不是所有的数据都是结构化的。Hadoop文件中可能包含嵌套的数据、可变的数据(具有层级结构)、无模式的数据和自我描述的数据。基于Hadoop的SQL引擎必须能够把所有数据都转换为关系数据,并优化这些数据之间的查询。

存储模式

Hadoop支持一些标准存储格式,比如Parquet、Avro和ORCFile。基于Hadoop的SQL技术使用的格式越多,其他引擎和技术能够读取的格式也就越多。这极大地减少了复制数据的工作。

用户定义函数

要在SQL上执行复杂的分析函数,比如高斯判别分析和购物篮分析等,很重要的前提是SQL对该函数的支持。这样的函数被称为用户定义函数(UDF)。基于Hadoop的SQL引擎需要能够在多节点上分部执行用户定义函数。

多用户工作负载

还需要考量的一个因素是,引擎应该如何在不同的查询和不同类型的查询之间划分资源。比如,不同应用程序的查询有不同的处理优先级;需要运行较长时间的查询应该让位于需要立即处理的查询;如果计划外的或资源密集型的查询占用很多资源的话,应该被取消或暂停查询。基于Hadoop的SQL技术需要更加智能的工作负载管理。

数据联合

并不是所有的数据都存储在Hadoop中。大部分企业数据还存储在其他数据源中,比如SQL数据库。基于Hadoop的SQL引擎需要支持存储在不同类型数据源中的数据的连接。换言之,它必须支持数据联合。

应用Hadoop的企业部署SQL引擎是大势所趋。企业在选择不同技术的时候,希望能考虑到上述因素。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐