Hadoop上的SQL如何帮助进行大数据分析?

作者: Roger Morrison
创建日期: 19 九月 2021
更新日期: 19 六月 2024
Anonim
大数据入行必听,Big Data技术栈全梳理!
视频: 大数据入行必听,Big Data技术栈全梳理!

内容



资料来源:Maciek905 / Dreamstime.com

带走:

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作业。之后,开发了一些可以完成类似工作的应用程序。后来的工具中突出的有Drill,BigSQL,HAWQ,Impala,Hadapt,Stinger,H-SQL,Splice Machine,Presto,PolyBase,Spark,JethroData,Shark(Hive on Spark)和Tez(Hive on 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处理和分析数据的意义上讲,似乎Hadoop上的SQL使Hadoop变得更加平等。以前,要使用Hadoop,您需要了解Hadoop体系结构— MapReduce,Hadoop分布式文件系统或HBase。现在,您可以插入几乎所有分析或报告工具,并访问和分析数据。借助Hadoop上的SQL,许多Hadoop引擎上的SQL(例如Cloudera Impala,并发语言,Hadapt,CitusDB,InfiniDB,MammothDB,MemSQL,Pivotal HAWQ,Apache Drill,ScleraDB,Progress DataDirect,Simba和Splice Machine现已上市)用于大数据。显然,这使Hadoop向更广泛的受众开放,现在他们可以期望增加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%的受访者使用诸如Cloudera Impala和Pivotal HAWQ之类的特定于Hadoop发行版的工具。

关于Hadoop上SQL的另一种观点

尽管看起来Hadoop上的SQL可以解决我们与Hadoop有关的许多问题,但另一种观点认为SQL可能存在很多问题,尤其是与Hadoop结合使用时。根据这种观点,当涉及大数据时,SQL作为一种分析工具可能毕竟没有那么高效。根据Hadoop Summit用户小组成员John Williams的说法,SQL可能不是处理大数据的最佳分析工具。 TrueCar平台操作高级副总裁Williams表示,TrueCar为用户提供在线汽车购买平台,“在大型数据集上的SQL执行时间很慢。同时,使用YARN和Tez等工具,基于SQL的Hadoop变得越来越快。”

这不是SQL的唯一问题。将SQL与Hadoop结合使用时,您需要照顾很多日常工作,例如数据研究,模式构思,索引和查询创建以及规范化,并且可能会花费大量时间和精力。经过所有这些努力,不能保证您已永久完成任何事情。如果有任何更改,则随着应用程序的更改,您可能需要重做已完成的操作。代替SQL的是,应基于Java和Python进行针对大数据的开发,因为这些语言更适合于非结构化数据处理。

结论

关于Hadoop上的SQL是否可以解决使用Hadoop的人们所面临的问题,尚无定论。但是显然,该行业需要Hadoop自己的数据查询功能的更好替代方案,并且该替代方案必须是交互式的。 Hadoop上的SQL工具提供了交互式分析,这很有用。企业不想浪费时间试图从复杂,费时的分析中获得启发。目前,企业发现Hadoop工具上的SQL非常有用。