Pig vs SQL
SQL所操作的关系型数据库速度上较Pig通过PigLatin操作的MapReduce快一些,然而关系型数据库的数据加载很有挑战性所以设置比较困难。PigLatin在声明式执行计划、ETL流程和管道的修改上则有着优势。
整体上来看SQL是一门声明式语言而PigLatin属于过程式语言。在SQL中我们指定需要完成的任务而在Pig中我们则指定任务完成的方式。Pig脚本其实都是转换成MapReduce任务来执行的,不过Pig脚本会比对应的MapReduce任务简短很多所以开发的速度要快上很多。
Hive vs SQL
SQL是一门通用的数据库语言,大量的事务和分析语句都是由SQL完成的。Hive则是以数据分析为目标所设计的,这意味着虽然Hive缺乏更新和删除这样的功能但读取和处理大量数据的速度会比SQL快得多。所以Hive SQL看起来像SQL但在更新和删除等功能上两者还是有很大区别的。虽然有所不同,但如果你有SQL背景的话学习起Hive还是很容易的。不过要注意两者在构造和语法上的区别否则容易混淆。
现在我们已经对三种数据挖掘语言进行了介绍和对比,接下来就来分析一下三种语言最适用的情况。