业内有这样一种说法,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   

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都有各自的适用场景,所以适合自己应用场景的工具就是好的工具。

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2023-08-24 09:38:00
大数据资讯 关注县域数据能力建设,抢占产数业务发展先机
2023年《数字中国建设整体布局规划》正式发布,数据能力已成为我国区域发展的底座和创新引擎。 <详情>
2023-03-30 11:15:07
云资讯 分布式时代已至,数据如何更有价值?
无论是连通各大集群内大型超大型数据中心,还是连接边缘侧小型、边缘数据中心,分布式云计算都已成为这张算力网络最重要的支撑。在此背景下,云计算步入分布式时代。 <详情>
2023-03-01 19:27:00
市场情报 FlagOpen大模型技术开源体系,开启大模型时代“新Linux”生态
大数据+大算力+强算法=大模型”是当前人工智能发展的主要技术路径。语言大模型ChatGPT成为现象级应用,人工智能进入普及应用的新时期。 <详情>
2023-01-09 09:36:46
大数据资讯 我国互联网广告数据匿名实施服务正式上线
《指南》形成的“技术保障、评估规制、过程控制”的互信制衡机制,适用于各类互联网广告业务,包括广告投放、程序化交易、广告监测等应用场景下的数据匿名化处理。 <详情>
2022-12-30 10:10:19
大数据资讯 中国移动磐维数据库正式发布
未来,随着数据库功能和稳定性等进一步增强,磐维数据库将在中国移动内外部的广泛应用中积累更多复杂业务场景实践经验,进一步提升数据库产品的核心技术能力,助力数智化转 <详情>