近日在做informatica项目时,要求参照informatica中原有的mapping方式实现。那么当知道源表或者目标表或者是映射时,如何快速的找出分散在不同的Subject的mapping或者是三者的关系?方法就是通过查询informatica的元数据表实现。

??????? 与ODI一样,informatica也会有自己的独立存储储存开发过程中产生的主题、源、目标、转换等和一些系统表来支撑informatica环境的正常运行。知道了原理,又不想在开发界面上像无头苍蝇的乱找,就花了点时间研究informatica的数据库。

??? OPB开头的表通常就是用于存储开发过程产生的源、目标、映射、转换、会话、工作流等和运行过程产生的session,看表的名字基本上都能猜测出用途,常用作查询的有:opb_subject、opb_mapping、opb_targ、OPB_SRC、opb_widget_inst。

opb_subject定义了主题,informatica中的开发是按照主题进行的。一个主题一个folder。

opb_mapping定义了映射,是informatica开发过程中最为复杂的部分,ETL的过程反映在映射里,里面会涉及数据抽取、转换、清洗。

opb_targ定义了目标表

OPB_SRC定义了源数据。

opb_widget_inst定义了组件的信息,一个mapping的源、目标、转换三者之间的关系可通过此表找到。

以下列出常用的方法:

1)知道目标表查找所有的映射:

SELECT DISTINCT m.mapping_name
? FROM opb_widget_inst w, opb_mapping m, opb_targ t
?WHERE m.mapping_id = w.mapping_id
?? AND t.target_id = w.widget_id
?? AND t.target_name = 'W_OFFER_D'
?? AND w.widget_type = 2 --限定为目标表

2、找出源、目标、映射、主题、工作流、会话之间的关系

SELECT f.subj_name AS folder_name,
?????? wf.task_name AS workflow_name,
?????? se.instance_name AS session_name,
?????? m.mapping_name,
?????? src.instance_name AS source_name,
?????? tgt.instance_name AS target_name
? FROM opb_subject f,
?????? opb_task wf,
?????? (SELECT workflow_id,
?????????????? instance_id,
?????????????? task_id,
?????????????? task_type,
?????????????? instance_name,
?????????????? MAX(version_number)
????????? FROM opb_task_inst sess
???????? WHERE sess.task_type = 68
???????? GROUP BY workflow_id,
????????????????? instance_id,
????????????????? task_id,
????????????????? task_type,
????????????????? instance_name) se,
?????? (SELECT session_id, mapping_id, MAX(version_number)
????????? FROM opb_session
???????? GROUP BY session_id, mapping_id) s,
?????? opb_mapping m,
?????? (SELECT mapping_id, instance_name, widget_type, MAX(version_number)
????????? FROM opb_widget_inst
???????? GROUP BY mapping_id, instance_name, widget_type) src,
?????? (SELECT mapping_id, instance_name, widget_type, MAX(version_number)
????????? FROM opb_widget_inst
???????? GROUP BY mapping_id, instance_name, widget_type) tgt
?WHERE /*wf.is_visible = 1
?? AND*/
?wf.subject_id = f.subj_id
?AND se.workflow_id = wf.task_id
?AND wf.task_type = 71
?AND se.task_id = s.session_id
?AND s.mapping_id = m.mapping_id
-- AND m.is_visible = 1
?AND src.mapping_id = m.mapping_id
?AND src.widget_type = 1
?AND tgt.mapping_id = m.mapping_id
?AND tgt.widget_type = 2
?AND f.subj_id = 38

此外,映射和源表的关系也可以通过以下sql执行:

SELECT sr.source_name, NULL, s.mapping_name
? FROM opb_mapping s, opb_dbds od, opb_src sr
WHERE s.subject_id IN (43, 38)
?? AND sr.dbdid = od.dbd_id
?? AND od.mapping_id = s.mapping_id
?? AND (s.mapping_name LIKE 'SDE%' OR s.mapping_name LIKE 'SIL%')
ORDER BY s.mapping_name

查看Source Quelifier的sql可从OPB_WIDGET_ATTR表查询,attri_id=1时的attri_value

查看会话级别的pre/post sql可从OPB_SWIDGET_ATTR表查询

数据库中还有一些REP开头的表,是用于支撑informatica运行的 基本信息表。
---------------------
作者:qingqingxuelang
来源:CSDN
原文:https://blog.csdn.net/qingqingxuelang/article/details/7689016
版权声明:本文为博主原创文章,转载请附上博文链接!

Informatica参考的更多相关文章

  1. 如何下载安装informatica PowerCenter

    1.进入oracle官网注册新用户   https://edelivery.oracle.com/osdc/faces/Home.jspx 2.在搜索中输入:  informatica 参考博客:   ...

  2. Informatica元数据库解析

    Informatica所有的元数据信息均以数据库表的方式存到了元数据库中.当然Infa本身工具提供了很多的人性化的功能,使我们在开发时可以很方便的进行操作,但人们的需求总是万变的,需要方便的取到自己需 ...

  3. Informatica学习:1、安装介质的获取与安装

    本文目标: 为方便学习Informatica工具,在个人电脑上部署Informatica Powercenter. 所用系统:win7 64位. Informatica安装包括服务器端.客户端安装两个 ...

  4. WINDOWS7环境下Informatica的安装[新手]

    环境: 操作系统:Windows7(64位): 数据库:Oracle 11g R2: 数据库字符集:UTF-8 一.下载: (参考链接:https://blog.csdn.net/u011031430 ...

  5. Informatica学习:2、配置存储库服务和集成服务

    继续上一篇的1.安装介质的获取与安装,本文介绍服务端的存储库服务和集成服务的配置. 安装好Informatica的客户端和服务端后,需要登陆Administration Console,配置存储库服务 ...

  6. INFORMATICA 开发规范

    目    录 Informatica开发规范.... 1 目    录.... 2 1        编写目的.... 4 2        ETL研发责任人界定.... 4 3        ETL ...

  7. I01-通过查询资料库方式来监控Informatica调度情况

    --登陆INFA资料库,运行下面的SQL --想要更加个性化查询的话注意看SQL倒数第二第三行的备注 SELECT RUN_DATE, START_TIME , END_TIME, FOLIDER , ...

  8. Informatica旗下PowerCenter的元数据库解析

    因客户需求,最近重拾Informatica下的PowerCenter产品,主要研究数据血缘关系.从PowerCenter本身来看,它是一个功能非常强大,速率非常高效的一款付费的ETL工具,可以满足各种 ...

  9. Hyper-v 安装CentOS 7 (其他虚拟机一样参考)

    平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html hyper-v安装很多人没弄过,我这里介绍一下.(其他虚拟机参 ...

随机推荐

  1. 对Kubernetes的研究

    服务发现和负载平衡 自动包装 存储编排 自愈 自动部署和回滚 秘密和配置管理 批量执行 水平缩放 是一个对docer进行管理的平台.

  2. @ControllerAdvice全局数据预处理

    在传统项目的Controller的方法中传入参数,对象中的属性相同时,会出现以下错误         Book类和Author类     这是因为两个对象中的name相同,传参时分不清西游记和六小龄童 ...

  3. spring boot 简介(基于SSM框架的一个升级版本吧)

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...

  4. Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》

    当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用户访问时是通过如http://www.XX.com的方式访问,在请求时,浏览器首先会查询DNS服务 ...

  5. Spring Security 3.1 中功能强大的加密工具 PasswordEncoder

    Spring Security 3.1 中功能强大的加密工具 PasswordEncoder 博客分类: security spring springsecurity  好吧,这种加密机制很复杂,还是 ...

  6. Step3 - How to: Host and Run a Basic Windows Communication Foundation Service

    This is the third of six tasks required to create a Windows Communication Foundation (WCF) applicati ...

  7. Linux下安装mysql教程

    Linux下安装mysql  MySQL官网:https://dev.mysql.com/downloads/mysql/ 到mysql官网下载mysql编译好的二进制安装包,在下载页面Select ...

  8. 像计算机科学家一样思考python-第1章 程序之道

    1.7调试 程序是很容易出错的.因为某种古怪的原因,程序错误被称为bug,而查捕bug的过程称为调试(debugging). 一个程序中可能出现3种类型的错误:语法错误.运行时错误和语义错误.对它们加 ...

  9. 为什么每次打出的包都是Release版本呢?

    参考了:xcodebuild命令 https://www.cnblogs.com/liuluoxing/p/8622108.html 重新打个包,验证一下想法

  10. curl的一些常用命令

    在学习nodejs中get到了一项新的技能crul curl 可以给在命令行上面给node服务器发送一些信息,然后得到服务器返回而响应信息,在命令行中打印出来. 下面是我整理的一些常用的命令: