优化器在 Apache Pig 架构中做了啥?

Posted

技术标签:

【中文标题】优化器在 Apache Pig 架构中做了啥?【英文标题】:What does optimizer do in Apache Pig architecture?优化器在 Apache Pig 架构中做了什么? 【发布时间】:2018-11-15 06:55:00 【问题描述】:

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

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

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

上面写着:

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

我不清楚projectionpushdown 是什么意思。

【问题讨论】:

【参考方案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 进行的优化,用于修剪加载器以仅加载必要的列。相应的加载器当然必须支持列修剪。此优化也与pushdown 优化具有相同的想法,通过在数据 ETL 管道中尽可能早的步骤限制数据。 (参考:https://pig.apache.org/docs/latest/perf.html#optimization-rules#ColumnMapKeyPrune)

【讨论】:

以上是关于优化器在 Apache Pig 架构中做了啥?的主要内容,如果未能解决你的问题,请参考以下文章

UrlEncodedFormEntity 在 Apache HttpClient 4 中做了啥?

自动恢复在 Apache Pulsar 中做了啥?

elementFormDefault 在 XSD 中做了啥?

猪优化器是不是在加入前过滤空值?

BuildContext 在 Flutter 中做了啥?

nextState 在 shouldComponentUpdate 中做了啥?