如何将 Power Center 映射导出到 SQL 语句?

发布于 2025-01-12 21:38:00 字数 115 浏览 0 评论 0原文

是否始终可以将 Informatica PowerCenter 映射导出到 SQL 语句序列?我们该怎么做呢?如果我们能以编程方式做到这一点,那就加分了。

我的映射是从一个关系数据库到另一个关系数据库。

Is it always possible to export an Informatica PowerCenter mapping to a sequence of SQL statements? How would we do it? Plus points if we can do it programmatically.

My mapping is from a relational database to another relational database.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

紧拥背影 2025-01-19 21:38:00

实际上,只要满足某些条件,Informatica 就可以将整个映射转换为 INSERT-SELECT 语句。

  • 最重要的是:下推优化选项必须可用(AFAIR 它是单独许可的,因此并不总是可用)
  • 会话属性 Pushdow Optimization 需要设置为 Full

然后 Pushdown优化查看器 (更多信息) 允许您先睹为快,看看查询是完全映射转换为 SQL 语句的结果。

注意:这可能还需要启用允许临时视图进行下推

注意2:此功能有许多限制(例如,使用局部变量时不可能实现,等等)。

Well, Informatica actually makes it possible to convert the whole mapping to a INSERT-SELECT statement, as long as some conditions are met.

  • Most importantly: Pushdown Optimization option must be available (AFAIR it is licenced separately, hence not always available)
  • Session property Pushdow Optimization needs to be set to Full

Then Pushdown Optimization Viewer (more info) allows you to take a sneak peek at the query being a result of complete mapping transformation into SQL statement.

NOTE: This may also require enabling Allow Temporary View for Pushdown.

NOTE2: This feature has a number of limitations (eg. it's not possible when local variables are used, etc.).

情何以堪。 2025-01-19 21:38:00

不,目前 Infa 没有提供任何以编程方式将 infa 映射转换为 SQL 的选项(否则谁会使用 informatica :D )。
如果你想为映射编写 SQL,那么你需要使用某种编程语言来编写一些东西 - 可以,但会很困难。有时,如果涉及多个数据库、文件、XML/http 转换、复杂逻辑等,这可能是不可能的。

这里是一些关于简单 1-1 映射的指南,该映射由来自同一数据库的 1 个或多个源、表达式、查找 tr 和一个目标组成-

SQ1 -->|
       |--> EXP--> TGT
SQ2 -->|--> LKP--> |
  1. 使用元数据表找出源到目标的映射 SQL。您需要进入小部件级别才能找出确切的逻辑。
  2. 也获取 LOOKUP 表信息。
  3. 获取源名称。要从源获取,您可以使用 select 语句(如果需要,请使用 join)。
  4. 获取目标名称。要将数据加载到目标中,您需要编写insert into。

您的整个 SQL 应该如下所示

insert into 
<<get the table from step4>>
SELECT
<<get the expression logic from step 1 >>
FROM 
<<get source/sources from step 3>>
LEFT JOIN <<get lookup table and join condition from step 2>>

再次强调,映射可能非常复杂,有时即使是简单的调整也会使您的程序失败。我建议,在投入时间之前先分析一下复杂性。
这是一个可以用来分析的映射分析工具(由我尊敬的 SO 用户创建)。
https://xmlanalyzer.maciejg.pl/

No, currently Infa doesn't give any option to convert a infa mapping to a SQL programmatically (else who will use informatica :D ).
If you want to write a SQL for a mapping then you need to write something using some programming language - you can but it will be difficult. Sometime it may be impossible if it involves multiple DBs, files, XML/http transform, complex logic etc.

Here is some guidance for simple 1-1 mapping consists of 1 or multiple sources from same DB, expression, lookup tr, and one target -

SQ1 -->|
       |--> EXP--> TGT
SQ2 -->|--> LKP--> |
  1. use the metadata tables to find out source to target mappings SQL. You need to go to widget level to find out exact logic.
  2. get LOOKUP table info as well.
  3. get source names. To fetch from source, you can use select statement (use join if needed).
  4. get target names. To load data into target, you need to write insert into.

Your whole SQL should look like this

insert into 
<<get the table from step4>>
SELECT
<<get the expression logic from step 1 >>
FROM 
<<get source/sources from step 3>>
LEFT JOIN <<get lookup table and join condition from step 2>>

Again, the mapping can be really complex and sometime even simple tweak can throw your program off. I recommend, analyze the complexity before investing time on this.
Here is a mapping analyzer tool you can use to analyze (created by a SO user i respect).
https://xmlanalyzer.maciejg.pl/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文