在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中国
翻译
相关推荐
-
乘风破浪!拥抱数据洪流
全球产生的数据量达到惊人的地步,2013年生成的数据总量约为3.5 ZB。到2020年,保守估计,全球年数据量将达到44 ZB。企业该如何在大数据的时代取胜?
-
Dr. Elephant:Hadoop和Spark的优化“神器”
美国加州软件公司Pepperdata的应用程序分析软件建立在Dr. Elephant开源项目上。主要目的是让更多的Hadoop和Spark应用程序投入生产。
-
Spark和Hadoop分析遇障碍?可以试试容器啊
将定制的Spark和Hadoop试点项目转移到生产中是一项艰巨的任务,但容器技术缓解了这种艰难的过渡。
-
Teradata发布开源Kylo软件 实现数据管道快速搭建与管理
企业运用Teradata天睿公司推出的数据湖管理软件平台Kylo,能够更简单、更经济、更迅速地开发数据湖,并专注于实现显著业务成果。