优化程序在Apache Pig架构中起什么作用?

时间:2018-11-15 06:55:01

标签: apache-pig hadoop2

我是Apache Pig的新手,正试图了解其架构。

链接已引用-https://www.tutorialspoint.com/apache_pig/apache_pig_architecture.htm

谁能解释一下优化器在Apache Pig架构中的作用?

它说:

  

由解析器生成的有向无环图被传递到逻辑优化器,该逻辑优化器执行诸如投影和下推之类的逻辑优化。

我不清楚projectionpushdown是什么意思。

1 个答案:

答案 0 :(得分:1)

Pig进行了许多优化,您可以在这里进一步了解它们:https://pig.apache.org/docs/latest/perf.html#optimization-rules。让我们更深入地了解一下您提到的优化:

下推式优化

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

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

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

投影优化

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