大数据:大数据主流工具,你知道几个?


导语:大数据主流工具,你知道几个?
业内有这样一种说法,SQL虽然在大数据分析领域久经考验,但是无奈长江后浪推前浪,和炙手可热的Hadoop相比,SQL已经过时了。这个说法有点言过其实,现在很多的项目都是将Hadoop作为数据存储,然后利用SQL进行前端查询。这说明Hadoop需要一种高级查询语言的支持。 Hadoop MapReduce虽然能够进行数据分析,但是太复杂了。于是,开发人员开发出了类似SQL的Pig和Hive。

  大数据时代,我们有很多的查询工具可以选择。虽然SQL占据着绝对优势,但是随着大数据的持续升温,也给了Apache Pig和Hive很大的发挥空间。工欲善其事必先利其器,如果选择了合适的平台和语言,会让数据的提取,处理和分析达到事半功倍的效果。未来,数据会越来越大,数据分析必须要更易操作。处理速度快和操作简单必定成为大数据分析的主流趋势。

  Apache Pig,Apache Hive和SQL是当今主流的大数据工具。它们各有优势,下面我们就先来简单介绍Apache Pig、Apache Hive和SQL。

大数据

  SQL

  结构化查询语言(SQL)是程序员的最佳伴侣,主要用于处理和提取数据。大数据改变了数据处理和可视化的方式。但是SQL严格的关系数据库模式和声明特性依然是数据分析的标杆。尽管SQL市场广阔,但是大数据也对SQL的功能和性能提出了挑战。

  Pig

  Apache Pig适合有SQL背景的程序员学习,其有以下两个特点:

  1.放宽了对数据存储的要求

  2.可以操作大型数据集

  Apache Pig是雅虎在2006年开发,除了上述特点,它还有很好的可扩展性和性能优化。 Apache Pig允许开发人员跟踪多个查询方法,从而降低了数据的重复检索。它支持复合数据类型(Map、Tuple、Bag),支持常见的数据操作,例如筛选、排序和Join。Apache Pig的这些特性得到了世界各地用户的认可,就连雅虎和推特也采用了Apache Pig。

  Hive

  尽管Apache Pig性能优异,但是它要求程序员要掌握SQL之外的知识。Hive和SQL非常相似,虽然Hive查询语言(HQL)有一定的局限性,但它仍然是非常好用的。Hive为MapReduce提供了很好的开源实现。它在分布式处理数据方面表现很好,不像SQL需要严格遵守模式。

  数据的提取、处理和分析没有一个万全之策,需要综合多种因素来选择,例如数据存储方法,编程语言结构以及预期的结果。下面我们就来对比一下Pig、Hive和SQL,看看它们各自都适合什么样的场景。

  Pig VS SQL

  SQL在DBMS系统的运行速度要比MapReduce(Pig运行在PigLatin平台)快。然而,RDBMS的数据加载很具挑战,设置困难。 PigLatin在声明式执行计划、ETL流程和管道修改方面更有优势。

  在很大程度上,SQL是声明式语言,而PigLatin是过程语言。SQL主要是指定完成的对象,即要完成“什么”,而Pig主要是制定完成的方式,即“如何”执行一个任务。在执行之前,Pig脚本要转化成MapReduce任务。不过,Pig脚本比相应的MapReduce任务要短,显著缩短了开发时间。

  Hive VS SQL

  SQL是一个被广泛用于事务性和分析查询的通用数据库语言。而Hive是以数据分析为目标而设计的,这也决定了Hive会缺少更新和删除功能,但是读取和处理海量数据的能力会很强。Hive和SQL是非常相似的,最主要的区别就是Hive缺少更新和删除功能。

  尽管Hive和SQL有所区别,但是如果你有SQL背景,就可以平稳过渡到Hive。另外,一定要注意两者在结构和语法上的差异。

  相信大家通过上面对Pig、Hive和SQL的介绍,对它们都有了一定的了解,下面我们就来介绍一下它们的具体适用场景。

  Apache Pig的适用场景

  Apache Pig适用于非结构化的数据集,可以充分利用SQL。Pig无需构建MapReduce任务,如果你有SQL学习的背景,那么入门会非常快。

  Apache Hive的应用场景

  很多企业都需要对历史数据进行分析,Hive就是一款分析历史数据的利器。但是Hive只有在结构化数据的情况下才能大显神威。Hive的软肋是实时分析,如果想要进行实时分析,可以采用HBase。

  SQL的应用场景

  SQL是三者之中资历最老的数据分析工具,随着用户需求的不断变更,SQL也在不断的自我更新,现在仍然是一个与时俱进的工具。对专业的数据分析来说,毫无疑问,SQL比Excel要强,但是,它在快速处理和分析数据方面仍然存在着短板。如果数据要求不是很苛刻,SQL是一个很好的选择,它的广泛性和灵活性得到了开发人员的认可。因为绝大数的开发人员都熟悉SQL,所以可以马上上手,同时SQL还提供了一些扩展和优化功能,可以根据需求来定制产品。

 

  现在还没有任何一个工具可以适用所有的数据,SQL、Pig和Hive都有各自的适用场景,所以适合自己应用场景的工具就是最好的工具。