Hadoop上的SQL如何帮助大数据分析?
Hadoop上的SQL是一套分析应用工具,将SQL风格的查询和数据处理与最新的Hadoop数据框架元素相结合。Hadoop上SQL的出现是大数据处理的一个重要发展,因为它通过对Hadoop处理的大量大数据运行SQL查询,让更广泛的人群成功使用Hadoop数据处理框架。显然,Hadoop框架以前是人们无法访问的,尤其是在查询功能方面。在此基础上,开发了许多工具,有望在质量和速度上提高企业处理和分析大数据的生产率。学习这个工具不需要投入大量的资金,因为传统的SQL知识就应该这样做。
Hadoop上SQL的定义。
Hadoop上的SQL是一组应用程序,允许您对Hadoop数据处理框架托管的大数据运行SQL风格的查询。显然,通过向Hadoop添加SQL,数据查询、检索和分析变得更加容易。由于SQL最初是为关系数据库设计的,所以必须根据包括MapReduce和Hadoop分布式文件系统(HDFS)的Hadoop 1模型和没有MapReduce和HDFS的Hadoop 2模型进行修改。
最早将SQL与Hadoop相结合的努力之一是使用HiveQL软件创建Hive数据仓库,它可以将SQL风格的查询转换为MapReduce作业。之后,我们开发了几个可以做类似工作的应用程序。后来的工具有钻子、大SQL、HAWQ、黑斑羚、哈达普特、毒刺、H-SQL、拼接机、普雷斯托、PolyBase、Spark、JethroData、Shark(Spark上的蜂巢)和Tez(Tez上的蜂巢)。
Hadoop上的SQL是如何工作的?
Hadoop上的SQL通过以下方式与Hadoop协同工作:
Hadoop环境中的连接器将SQL查询转换为MapReduce格式,以便Hadoop能够理解查询。
推送系统在Hadoop集群中执行SQL查询。
系统根据集群的工作量,在MapReduce-HDFS集群之间划分大量的SQL查询。
似乎SQL查询不会改变它的性质;这就是Hadoop,它根据自己理解的格式调整查询。
在SQL Hadoop上的主要优势。
如前所述,Hadoop上的SQL是一个重要的开发环境,它使更多的人能够访问大数据分析,并使数据分析变得更容易和更快。毫无疑问,Hadoop数据框架已经成为大数据分析的好工具,但它只能被一小部分人访问,这不仅是因为学习其独特的架构需要付出巨大的努力,还因为它与其他技术的兼容性。Hadoop上的SQL有望解决这些问题。
现在更多的人可以访问Hadoop。
似乎Hadoop上的SQL让Hadoop更加平等,因为现在有更广泛的人可以使用Hadoop来处理和分析数据。之前,为了使用Hadoop,你需要了解Hadoop架构——MapReduce、Hadoop分布式文件系统或HBase。现在,您可以插入几乎任何分析或报告工具,并访问和分析数据。得益于Hadoop上的SQL,一些Hadoop引擎上的SQL,如Cloudera Impala、concurrent language、Hadapt、CitusDB、InfiniDB、MammothDB、MemSQL、Pivotal HAWQ、Apache Drill、slochab、Progress DataDirect、Simba、Splice Machine等,现在已经商业化,可以用于大数据。显然,这让Hadoop面对了更广泛的受众,现在我们可以期待增加大数据投资的回报。
使用Hadoop分析大数据现在更容易了。
现在,您只需要对大数据运行旧的SQL查询来检索和分析数据。SQL已经从仅仅是一个关系数据库工具发展到大数据分析工具,这确实是一个重大的变化。您不必担心Hadoop如何处理查询——它有自己的方法来解释SQL查询并为您提供结果。专家认为,虽然Hadoop分布式文件系统确实有大数据并行处理的商品集群,但如果与SQL交互查询配合使用,可以提高其处理能力。在HDFS和SQL结合之前,使用HDFS处理数据需要很长时间,这项任务需要专业的数据科学家。并且查询不是交互式的。Apache Tez框架包括Spark分析引擎和Hive数据仓库的Stinger交互查询加速器。这些问题都解决了。零售商Target Corporation的战略和架构组经理Anu Jain认为,“确保为用户提供交互式查询访问对我们来说非常重要。通过Tez,我们可以为我们的业务提供这种能力。”
正如Gartner调查显示的那样,交互分析在Hadoop用户中的受欢迎程度一直在增加。调查显示,32%的受访者使用HDFS或HBase的第三方界面,27%使用Hive创建的查询,23%使用特定于的Hadoop。
分发的工具,如Cloudera Impala和Pivotal HAWQ。关于Hadoop上SQL的另一个视角
虽然Hadoop上的SQL似乎将解决我们在Hadoop上遇到的许多问题,但还有另一种观点认为SQL可能存在很多问题,尤其是在与Hadoop结合使用时。根据这种观点,在涉及大数据时,SQL可能不是那么高效的分析工具。根据Hadoop Summit用户小组成员John Williams的说法,SQL可能不是处理大数据的最佳分析工具。根据威廉姆斯的说法,他是TrueCar平台运营高级副总裁,该公司为用户提供在线购车平台,“大型数据集上的SQL执行时间很慢。与此同时,使用YARN和Tez之类的东西,SQL上的Hadoop变得越来越快。“
这不是SQL的唯一问题。当您将SQL与Hadoop结合使用时,需要注意数据研究,模式构思,索引和查询创建以及规范化等许多开销任务,并且您可能会花费大量的时间和精力。经过所有这些努力,无法保证您已完成任何永久性的工作。如果有的话,随着应用程序的更改,您可能需要重做已经完成的操作。而不是SQL,应该基于Java和Python完成以数据为中心的大型开发,因为这些语言更适合非结构化数据处理。
结论
关于Hadoop上的SQL是否能解决人们面临使用Hadoop的问题,评委们仍然不清楚。但显然,行业需要一个更好的替代Hadoop自己的数据查询功能,而这个替代方案必须是交互式的。Hadoop工具上的SQL提供了交互式分析,这很有用。企业不希望浪费时间去尝试从复杂,耗时的分析中理解。目前,企业在Hadoop工具上发现SQL非常有用。
标签: