我有一些处理我网站日志的脚本。我已将此数据加载到Hive中的多个表中。我每天都运行这些脚本来分析流量。
最近我发现我在这些脚本中编写的hive查询占用了太多时间。早些时候,它过去需要大约10-15分钟来生成报告,但现在需要花费数小时才能生成报告。
我对数据进行了分析,并对数据集增加了大约5-10%。
我的一位朋友建议我在加入多个hive表时Hive并不好,我应该将我的脚本切换到Pig。与Pig相比,Hive在加入牌桌时是不是很糟糕?
答案 0 :(得分:1)
Is Hive bad at joining tables
没有。 Hive实际上非常好,但有时候需要花一点时间来使用查询优化器。
根据您使用的Hive版本,您可能需要在查询中提供提示,以告知优化器使用特定算法加入数据。您可以找到有关不同提示here的一些详细信息。
如果您正在考虑使用Pig,我认为您的选择不应仅仅出于性能考虑而激发。根据我的经验,使用Pig没有可量化的收益,我在过去几年中都使用了猪,并且在性能方面没有明显的赢家。
然而,Pig定义的内容在定义您想要使用的连接类型时更具透明度,而不是依赖于某些(有时模糊的)优化器提示。
最后,Pig或Hive并不重要,这取决于你决定优化查询的方式。如果您正在考虑转换到Pig,我首先会真正分析您在处理方面的需求,因为您甚至可能会在性能方面下降。如果你想比较2,那么Here是一个很好的帖子。