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

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

20160920105214847

大数据时代,我们有很多的查询工具可以选择。虽然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