完全下推优化是不是允许数据库服务器在没有 Informatica Server 干预的情况下将数据加载到目标表?

Posted

技术标签:

【中文标题】完全下推优化是不是允许数据库服务器在没有 Informatica Server 干预的情况下将数据加载到目标表?【英文标题】:Does full Push Down Optimization allow Database Server to load data to target tables without intervention of Informatica Server?完全下推优化是否允许数据库服务器在没有 Informatica Server 干预的情况下将数据加载到目标表? 【发布时间】:2020-05-09 07:45:22 【问题描述】:

我想详细了解 Informatica 中的下推优化 (PDO)。 根据我的研究,您可以在 Informatica 拥有以下 3 种 PDO:

源端 PDO 目标侧 PDO 完整的 PDO

我很想知道完整的 PDO 是否可以将整个 Informatica 代码推送到源数据库或目标数据库,或者将部分代码推送到源数据库并保留到目标数据库?如果将整个代码推送到目标数据库然后返回的结果应该由目标数据库服务器本身加载到目标表,那么从性能的角度来看,这将是一件好事。 需要您的帮助来了解它是如何工作的。如果在目标启用 PDO,则结果将返回到 Informatica Power Center (IPC) 服务器,然后由 IPC 负责将目标 DB 返回的结果处理到目标表,还是由目标数据库服务器直接处理到目标表?

【问题讨论】:

【参考方案1】:

PDO 是 Informaticatransformations 的一个巨大的 SQL 子句。 Informatica 根据它可以/不能做的任何事情创建一个大的 SELECT 语句或 INSERT/UPDATE 语句,并在数据库中发出它,而不是在服务器中处理它。 当您运行为

配置的会话时 源端 PDO - 集成服务分析从源到目标的映射,或者在它到达下游转换之前,它无法推送到源数据库。创建大 SELECT 语句。 目标端 PDO - 集成服务分析从目标返回到源的映射,或者在它到达上游转换之前它无法推送到目标数据库。创建大的 INSERT/UPDATE 语句。 完整的 PDO - 集成服务分析从源到目标的映射,或者在它到达下游转换之前它无法推送到目标数据库。当源和目标在同一个数据库上时工作。

没有单一的最佳实践。一切都取决于您的映射。如果您有简单的转换,那么目标 PDO 很好。如果您有多个活动转换或联合、连接器、查找到另一个数据库,则应根据它们与源/目标的距离来确定 PDO。

您可以通过此了解更多信息 - https://docs.informatica.com/data-integration/powercenter/10-4-0/advanced-workflow-guide/pushdown-optimization.html

【讨论】:

谢谢 Koushik,很好的解释和有用的 URL。我仍然很想知道的一件事-如果查询执行的目标 PDO 天气结果首先返回到集成服务,然后集成服务将结果填充到目标表(@target DB)或目标数据库服务器可以直接加载返回的/对目标表的查询执行结果记录? 这取决于 IC 创建单个 SQL 的可能性。如果它可以创建单个 SQL,那么它将直接在 DB 中发出。否则,它会在应用到目标之前将数据提取到 IC 服务器中。例如,如果有一个简单的映射,如 Source -> SQ -> EXP->FIL->Target。 IC 将直接创建 INSERT INTO ... SELECT ...FROM SOURCE 语句并发出到目标数据库。

以上是关于完全下推优化是不是允许数据库服务器在没有 Informatica Server 干预的情况下将数据加载到目标表?的主要内容,如果未能解决你的问题,请参考以下文章

谓词下推

Mysql性能优化:什么是索引下推?

Mysql系列—— 索引下推优化

s3 select和athena有什么区别

Spark查询优化之谓词下推

索引索引下推