首页 > 解决方案 > 优化器在 Apache Pig 架构中做了什么?

问题描述

我是 Apache Pig 的新手,并试图了解它的架构。

链接参考 - https://www.tutorialspoint.com/apache_pig/apache_pig_architecture.htm

谁能解释优化器在 Apache Pig 架构中的作用是什么?

它说:

Parser 生成的有向无环图传递给逻辑优化器,由逻辑优化器进行投影、下推等逻辑优化。

我不清楚是什么projection意思pushdown

标签: apache-pighadoop2

解决方案


Pig 进行了许多优化,您可以在此处阅读有关它们的更多信息:https ://pig.apache.org/docs/latest/perf.html#optimization-rules 。让我们更深入地看一下您提到的优化:

下推优化

Pushdown或者predicate-pushdown是许多语言中的常见优化,例如 Pig、Hive、Spark、SQL 等。predicate-pushdown概念的要点(来源:http ://www.dbms2.com/2014/07/15/the-point-of-predicate-下推/):

  • 如果您在一个地方发出查询以针对另一个地方的大量数据运行,则可能会产生大量网络流量,这可能会很慢且代价高昂。
  • 然而……如果你可以将查询的部分“下推”到数据存储的位置,从而过滤掉大部分数据,那么你可以大大减少网络流量。

在 Pig 的范围内,PredicatePushdownOptimizer优化器将相关的过滤条件推送到加载器作为提示,以便尽可能早地在数据 ETL 管道中过滤掉数据。(参考:https ://pig.apache.org/docs/latest/perf.html#optimization-rules#PredicatePushdownOptimizer )

投影优化

Projection或者ColumnMapKeyPrune是 Pig 进行的优化,以修剪加载器以仅加载必要的列。相应的加载器当然必须支持列修剪。pushdown这种优化也与通过在数据 ETL 管道中尽可能早的步骤限制数据的优化具有相同的想法。(参考:https ://pig.apache.org/docs/latest/perf.html#optimization-rules#ColumnMapKeyPrune )


推荐阅读