我是Apache Pig的新手,正试图了解其架构。
链接已引用-https://www.tutorialspoint.com/apache_pig/apache_pig_architecture.htm
谁能解释一下优化器在Apache Pig架构中的作用?
它说:
由解析器生成的有向无环图被传递到逻辑优化器,该逻辑优化器执行诸如投影和下推之类的逻辑优化。
我不清楚projection
和pushdown
是什么意思。
答案 0 :(得分:1)
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-pushdown/) :
在Pig的PredicatePushdownOptimizer
范围内,优化器将相关的过滤条件推送到加载程序,以作为提示,以尽可能早地在数据ETL管道中过滤掉数据。 (参考:https://pig.apache.org/docs/latest/perf.html#optimization-rules#PredicatePushdownOptimizer)
Projection
或ColumnMapKeyPrune
是Pig进行的一种优化,以修剪加载程序以仅加载必要的列。当然,相应的加载程序必须支持列修剪。通过在数据ETL管道的最早可能步骤中限制数据,此优化也与pushdown
优化具有相同的思想。 (参考:https://pig.apache.org/docs/latest/perf.html#optimization-rules#ColumnMapKeyPrune)