表演加入时Hive vs Pig

时间:2013-01-10 14:49:10

标签: hadoop hive apache-pig piglet

我有一些处理我网站日志的脚本。我已将此数据加载到Hive中的多个表中。我每天都运行这些脚本来分析流量。

最近我发现我在这些脚本中编写的hive查询占用了太多时间。早些时候,它过去需要大约10-15分钟来生成报告,但现在需要花费数小时才能生成报告。

我对数据进行了分析,并对数据集增加了大约5-10%。

我的一位朋友建议我在加入多个hive表时Hive并不好,我应该将我的脚本切换到Pig。与Pig相比,Hive在加入牌桌时是不是很糟糕?

1 个答案:

答案 0 :(得分:1)

Is Hive bad at joining tables

没有。 Hive实际上非常好,但有时候需要花一点时间来使用查询优化器。

根据您使用的Hive版本,您可能需要在查询中提供提示,以告知优化器使用特定算法加入数据。您可以找到有关不同提示here的一些详细信息。

如果您正在考虑使用Pig,我认为您的选择不应仅仅出于性能考虑而激发。根据我的经验,使用Pig没有可量化的收益,我在过去几年中都使用了猪,并且在性能方面没有明显的赢家。

然而,

Pig定义的内容在定义您想要使用的连接类型时更具透明度,而不是依赖于某些(有时模糊的)优化器提示。

最后,Pig或Hive并不重要,这取决于决定优化查询的方式。如果您正在考虑转换到Pig,我首先会真正分析您在处理方面的需求,因为您甚至可能会在性能方面下降。如果你想比较2,那么Here是一个很好的帖子。