我有一些脚本可以处理我的网站日志。我已将此数据加载到 Hive 中的多个表中。我每天运行这些脚本来分析流量。
最近我发现我在这些脚本中编写的配置单元查询花费了太多时间。以前,生成报告需要大约 10-15 分钟,但现在需要数小时才能完成。
我对数据进行了分析,数据集增加了大约 5-10%。
我的一位朋友建议我,在加入多个 hive 表时,Hive 并不好,我应该将脚本切换到 Pig。与 Pig 相比,Hive 不擅长加入表格吗?
我有一些脚本可以处理我的网站日志。我已将此数据加载到 Hive 中的多个表中。我每天运行这些脚本来分析流量。
最近我发现我在这些脚本中编写的配置单元查询花费了太多时间。以前,生成报告需要大约 10-15 分钟,但现在需要数小时才能完成。
我对数据进行了分析,数据集增加了大约 5-10%。
我的一位朋友建议我,在加入多个 hive 表时,Hive 并不好,我应该将脚本切换到 Pig。与 Pig 相比,Hive 不擅长加入表格吗?
Is Hive bad at joining tables
不。Hive 实际上相当不错,但有时需要花点时间使用查询优化器。
根据您使用的 Hive 版本,您可能需要在查询中提供提示,以告诉优化器使用特定算法连接数据。您可以在此处找到有关不同提示的一些详细信息。
如果您正在考虑使用 Pig,我认为您的选择不应仅出于性能考虑。根据我的经验,使用 Pig 没有可量化的收益,我在过去几年都使用过,而且在性能方面没有明显的赢家。
然而,Pig 给您的是在定义您想要使用的连接类型时更加透明,而不是依赖于一些(有时是晦涩的)优化器提示。
最后,Pig 或 Hive 并不重要,它只取决于您决定如何优化查询。如果您正在考虑切换到 Pig,我将首先真正分析您在处理方面的需求是什么,因为您甚至可能会在性能方面下降。如果您想比较两者,这是一个很好的帖子。