|
|
1
150
看看这个 post 来自艾伦·盖茨,雅虎的猪建筑师!,这与何时使用类似SQL的Hive而不是Pig进行比较。他提出了一个非常有说服力的例子,说明了Pig(与声明性SQL相比)等过程性语言的有用性及其对数据流设计器的实用性。 |
|
|
2
57
Hive旨在吸引一个熟悉SQL的社区。它的理念是我们不需要另一种脚本语言。配置单元支持使用用户选择的语言(可以嵌入在SQL子句中)映射和减少转换脚本。它在Facebook中被熟悉SQL的分析师以及用Python编程的数据挖掘人员广泛使用。Pig中的SQL兼容性工作已经在AFAIK中被放弃,因此这两个项目之间的区别非常明显。 支持SQL语法也意味着可以与现有的BI工具(如微策略)集成。配置单元有一个ODBC/JDBC驱动程序(这是一个正在进行的工作),应该允许在不久的将来发生这种情况。它还开始添加对索引的支持,这将允许支持此类环境中常见的深入查询。 最后——这与问题不直接相关——Hive是一个用于执行分析查询的框架。虽然它的主要用途是查询平面文件,但没有理由不能查询其他存储。目前,配置单元可用于查询存储在Hbase中的数据(Hbase是一个键值存储,与大多数RDBMS的核心一样),HadoopDB项目已使用配置单元查询联邦RDBMS层。 |
|
|
3
37
我觉得这是最有帮助的(不过,已经一岁了)- http://yahoohadoop.tumblr.com/post/98256601751/pig-and-hive-at-yahoo 它特别谈到了猪与蜂巢,以及它们在雅虎的工作时间和地点。我觉得这很有见地。一些有趣的注释: 对数据集进行增量更改/更新时:
通过流媒体使用其他工具时:
关于将配置单元用于数据仓库:
|
|
|
4
28
看一看 猪Vs蜂巢 比较 nut shell 从一篇“dezyre”文章 蜂巢 比 猪 在:分区、服务器、Web界面和JDBC/ODBC支持。 一些区别:
|
|
|
5
17
我相信你问题的真正答案是,它们是独立的项目,没有中央协调的目标。它们很早就处于不同的空间,随着两个项目的扩展,它们逐渐与时间重叠。 摘自Hadoop O'Reilly的书:
|
|
|
6
12
使用pig/hive查询可以获得类似的结果。主要区别在于理解/编写/创建查询的方法。
Pig倾向于创建一个数据流:在每个步骤中,您都要做一些处理
值得注意的是,对于Hive,您可以很好地使用该数据的接口(beexwaxforhue,或Hive web接口),它还为您提供有关数据(模式等)的信息的元存储,这些信息作为数据的中心信息非常有用。 对于不同的查询,我同时使用Hive和Pig(我使用那个可以更快/更轻松地编写查询的查询,我主要是以这种方式进行即席查询),它们可以使用相同的数据作为输入。但目前我大部分工作都是通过蜂蜡完成的。 |
|
|
7
12
Pig允许在管道中的任意点加载数据和用户代码。如果数据是流式数据(例如来自卫星或仪器的数据),这一点尤其重要。 基于RDBMS的Hive需要首先导入(或加载)数据,然后才能对其进行操作。因此,如果在流数据上使用配置单元,则必须继续填充bucket(或文件),并在每个bucket(或文件)上使用配置单元 填满 bucket,同时使用其他bucket来保存新到达的数据。 猪也使用懒惰评价。它使编程更加容易,人们可以使用它以不同的方式分析数据,比使用类似SQL的语言(如Hive)更自由。所以,如果你真的想分析一些非结构化数据中的矩阵或模式,并想对它们进行有趣的计算,用Pig你可以进行一些公平的距离,而用Hive,你需要一些其他的东西来处理结果。 Pig在数据导入方面比像Hive这样的RDBMS友好语言更快,但在实际执行方面慢。 Pig非常适合并行化,因此它可能在数据集庞大的系统中具有优势,即在您更关心结果吞吐量而不是延迟(获取任何特定结果数据的时间)的系统中。 |
|
|
8
10
蜂巢对猪- 配置单元是一个SQL接口,它允许精通SQL的用户或其他工具,如Tableu/Microstrategy/任何其他具有SQL接口的工具或语言。。 PIG更像是一个ETL管道..带有一步一步的命令,如声明变量、循环、迭代、条件语句等。 当我想一步一步地编写复杂的逻辑时,我更喜欢编写Pig脚本而不是hive QL。当我习惯于编写一个sql来提取我想要的数据时,我就使用Hive。对于配置单元,在查询之前需要定义表(就像在RDBMS中一样) 两者的目的是不同的,但是在幕后,两者都做同样的事情,转换成map-reduce程序 |
|
|
9
8
阅读这个链接中猪和蜂巢的区别。 http://www.aptibook.com/Articles/Pig-and-hive-advantages-disadvantages-features 所有方面都给出了。如果你不知道该选择哪一个,那么你必须看到那个网页。 |
|
|
10
7
|
|
|
11
5
我在下面找到了一个有用的链接来探索如何以及何时使用蜂箱和猪。 http://www.hadoopwizard.com/when-to-use-pig-latin-versus-hive-sql/ |
|
12
4
|
|
|
13
4
配置单元不是完整的数据库。Hadoop和HDFS的设计约束和限制限制了Hive的功能。 配置单元最适合于数据仓库应用程序,其中 1) 分析相对静态的数据, 2) 不需要快速响应时间,并且 3) 当数据变化不快时。 配置单元不提供OLTP、在线事务处理所需的关键功能。它更接近于OLAP工具,在线分析处理。 因此,Hive最适合于数据仓库应用程序,在这些应用程序中,维护和挖掘大型数据集以获取洞察、报告等。 |
|
|
14
4
简单地说,Pig是一个用于创建与Hadoop一起使用的MapReduce程序的高级平台,我们将使用Pig脚本将大量数据处理成所需的格式。 一旦获得处理过的数据,该处理过的数据就保存在HDFS中,以便以后处理以获得期望的结果。 在存储的处理数据之上,我们将应用HIVE SQL命令来获得所需的结果,在内部,这个HIVE SQL命令运行MAP Reduce程序。 |
|
|
15
4
简而言之,要对这两个方面进行非常高层次的概述: 1) Pig是hadoop上的关系代数 2) Hive是hadoop上的SQL(比Pig高一级) |
|
|
16
3
猪身上不可能的蜂巢能做什么? 分区可以使用HIVE完成,但不能在PIG中完成,这是一种绕过输出的方法。 什么猪能做蜂巢里不可能做的事? 位置引用-即使您没有字段名,我们也可以使用像$0这样的位置引用-对于第一个字段,$1对于第二个字段,依此类推。 另一个基本区别是,PIG不需要模式来编写值,但是HIVE需要模式。 您可以使用JDBC和其他方法从任何外部应用程序连接到配置单元,但不能使用PIG。 注意:两者都运行在HDFS(hadoop分布式文件系统)之上,并且语句被转换为Map Reduce程序。 |
|
|
17
3
当我们使用
因此,它内部包含两个主要活动: 1) 加载数据处理 2) 生成内容并用于报告等。。 加载/数据处理->Pig将对其有所帮助。 这有助于ETL(我们可以使用pig脚本执行ETL操作)。 处理结果后,我们可以使用配置单元根据处理的结果生成报告。 蜂巢: 它建立在hdfs之上,用于仓库处理。 我们可以使用hive从pig生成的处理内容轻松生成临时报告。 |
|
|
18
1
猪什么都吃!这意味着它可以使用非结构化数据。 配置单元需要架构。 |
|
|
19
1
一般来说,Pig对于ETL类型的工作负载是有用的。例如,每天需要对数据执行的一组转换。 当您需要运行临时查询或只是想浏览数据时,配置单元会发光。它有时可以充当可视化层(Tableau/Qlikview)的接口。 两者都是必不可少的,而且服务于不同的目的。 |