INFORMATICA 的元数据管理之一 知识库中元数据对象表的使用
大家都知道,在创建INFA的时候会让你选择指定的数据库做为存储元数据用,那存储的元数据对我们的ETL有什么作用呢?
下面介绍一下我观察的元数据表:
CREATE TABLE INFREP_V8.REP_FLD_DATATYPE
(
DTYPE_NUM INTEGER,
DTYPE_NAME VARCHAR2(40 BYTE),
DTYPE_GROUP_CODE CHAR(1 BYTE),
DTYPE_DATABASE VARCHAR2(20 BYTE)
)
这张表的主要作用基于FOLDER的字段数据类型,数据库类型,关键主键是DTYPE_NUM
CREATE TABLE INFREP_V8.OPB_PICDSC
(
PICID NUMBER NOT NULL,
SRC_TYPE NUMBER,
SRC_NTYPE NUMBER,
SRC_PREC NUMBER,
SRC_SCALE NUMBER,
PIC_USAGE NUMBER,
VERSION_NUMBER NUMBER
)
INFA创建的这张表主要用来定义在选定的数据库类型下,源数据的数据类型,源数据字段的类型,精度,刻度。
CREATE TABLE INFREP_V8.REP_SRC_KEY_TYPES
(
KEYTYPE_NUM INTEGER,
KEYTYPE_NAME VARCHAR2(50 BYTE)
)
这张表主要用来定义源数据表键的类型,其值有:是否是主键,外键,XML产生的键等。
CREATE TABLE INFREP_V8.OPB_SRC_FLD
(
FLDID NUMBER NOT NULL,
SRC_ID NUMBER NOT NULL,
SRC_NAME VARCHAR2(240 BYTE) NOT NULL,
BUSINESS_NAME VARCHAR2(240 BYTE),
SQLNAME VARCHAR2(240 BYTE),
FLDLVL NUMBER NOT NULL,
FLDTYPE NUMBER NOT NULL,
PICTXT VARCHAR2(240 BYTE),
PICID NUMBER,
OCCTIMES NUMBER,
REDFNAME VARCHAR2(240 BYTE),
KEYTYPE NUMBER,
KEYSRCID NUMBER,
OFFS NUMBER NOT NULL,
LEN NUMBER,
NXTSIBID NUMBER,
NXTCHLDID NUMBER,
PARENTID NUMBER NOT NULL,
POFFS NUMBER,
PLEN NUMBER,
FLDNO NUMBER,
SRC_DESC VARCHAR2(2000 BYTE),
NULLTYPE NUMBER,
IS_HIDDEN NUMBER,
GROUP_ID NUMBER,
FLD_PROP NUMBER,
VERSION_NUMBER NUMBER
)
这张表的结构,对于做过INFORMATICA开发的朋友来说,应该清楚关键字段都是你在做MAPPING是从SOURCE按钮下一步一步生成的。其中包括文件夹的ID,SOURCE ID,SOURCE NAME,通过PICID这个外键跟我上面提到的OPB_PICDSC表进行关联,确定SOURCE NAME以上层次的数据类型,(如什么类型数据库或数据文件,键值结构等)
CREATE TABLE INFREP_V8.OPB_SRC
(
SRC_ID NUMBER NOT NULL,
SUBJ_ID NUMBER NOT NULL,
FILE_NAME VARCHAR2(240 BYTE) NOT NULL,
SOURCE_NAME VARCHAR2(240 BYTE) NOT NULL,
BUSINESS_NAME VARCHAR2(240 BYTE),
SELID NUMBER,
TARGET_ID NUMBER,
FDSIZ NUMBER,
NXTFDID NUMBER,
BESTFDID NUMBER,
FLDID NUMBER,
RECNAM VARCHAR2(240 BYTE),
NXTSIBID NUMBER,
NXTCHLDID NUMBER,
PARENTID NUMBER,
DBDID NUMBER,
PFDSIZ NUMBER,
PFDSIZ_MIN NUMBER,
LPARID NUMBER,
PROGID VARCHAR2(240 BYTE),
OWNERNAME VARCHAR2(240 BYTE),
SRC_DESC VARCHAR2(2000 BYTE),
VERSIONID NUMBER,
LAST_SAVED VARCHAR2(30 BYTE),
IBM_COMP NUMBER,
CREATE_INFO NUMBER,
FILE_ID NUMBER,
VERSION_NUMBER NUMBER,
UTC_LAST_SAVED NUMBER,
IS_VISIBLE NUMBER,
CHECKOUT_USER_ID NUMBER,
VERSION_STATUS NUMBER,
IS_MARKED NUMBER,
UTC_REF_TIME NUMBER,
UTC_CHECKIN NUMBER,
OBJ_CMP NUMBER
)
这张表是我们开发人员需要经常用的表,我们对源数据的表做创建,更新的时间,及版本号都会保存在这张表的信息中。
CREATE TABLE INFREP_V8.OPB_DBD
(
DBDID NUMBER,
SUBJ_ID NUMBER,
SRCNAM VARCHAR2(240 BYTE),
DBDNAM VARCHAR2(240 BYTE),
ROOTID NUMBER,
DBTYPE NUMBER,
SRCTYPE NUMBER,
VERSIONID NUMBER,
SRC_SUBTYPE NUMBER,
OBJVERSION NUMBER,
VERSION_NUMBER NUMBER,
COMP_VERSION NUMBER
)
这张表主要是对DBDID于VERSIONID的关联一致。
CREATE TABLE INFREP_V8.OPB_WIDGET_INST
(
MAPPING_ID NUMBER,
WIDGET_ID NUMBER,
WIDGET_TYPE NUMBER,
INSTANCE_ID NUMBER,
INSTANCE_NAME VARCHAR2(240 BYTE),
COMMENTS VARCHAR2(2000 BYTE),
WIDGET_PROP NUMBER,
VERSION_NUMBER NUMBER,
REF_VERSION_NUMBER NUMBER
)
这张表记录信息,如果你做的MAPPING在DESIGN窗口看着是一张数据流图的话,这张表里的信息就是你这张图的底片。呵呵,包括MAPPING_id,(source_id,target_id 在这里是用WIDGET_ID来体现的,当然还包括版本号信息,呵呵)
CREATE TABLE INFREP_V8.OPB_MAPPING
(
MAPPING_NAME VARCHAR2(240 BYTE),
MAPPING_ID NUMBER,
VERSION_ID NUMBER,
SUBJECT_ID NUMBER,
IS_VALID NUMBER,
LAST_SAVED VARCHAR2(30 BYTE),
COMMENTS VARCHAR2(2000 BYTE),
REF_WIDGET_ID NUMBER,
VALID_CHECK NUMBER,
CREATE_INFO NUMBER,
OBJVERSION NUMBER,
VERSION_NUMBER NUMBER,
VERSION_STATUS NUMBER,
UTC_LAST_SAVED NUMBER,
UTC_REF_TIME NUMBER,
IS_VISIBLE NUMBER,
CHECKOUT_USER_ID NUMBER,
IS_MARKED NUMBER,
UTC_CHECKIN NUMBER,
SAVED_VALID NUMBER,
IS_INVALIDATED NUMBER,
OBJ_CMP NUMBER
)
这张表记录是MAPPING的更新日志表,最后一次更新时间,版本号,和对象号等
CREATE TABLE INFREP_V8.OPB_SUBJECT
(
SUBJ_NAME VARCHAR2(240 BYTE),
SUBJ_ID NUMBER,
INUSE NUMBER,
SUBJ_CREATOR VARCHAR2(240 BYTE),
SUBJ_DESC VARCHAR2(2000 BYTE),
SRCTYPE NUMBER,
IS_SHARED NUMBER,
OWNER_ID NUMBER,
GROUP_ID NUMBER,
PERMISSIONS NUMBER,
CREATION_TIME VARCHAR2(30 BYTE),
FOLDER_ATTR NUMBER,
SUBJ_GID VARCHAR2(240 BYTE),
CREATE_INFO NUMBER,
OBJVERSION NUMBER,
VERSION_STATUS NUMBER,
OS_USER VARCHAR2(240 BYTE)
)
这张表记录着文件夹的对象号 SUBJ_ID ,更新时间,版本状态等。
CREATE TABLE INFREP_V8.OPB_ANALYZE_DEP
(
MAPPING_ID NUMBER,
FROM_INSTANCE_ID NUMBER,
FROM_FIELD_ID NUMBER,
TO_INSTANCE_ID NUMBER,
TO_FIELD_ID NUMBER,
VERSION_NUMBER NUMBER
)
这张表记录着MAPPING的依赖关系,主要基于版本号依赖的FROM_INSTANCE_ID
CREATE TABLE INFREP_V8.OPB_TARG_FLD_EXPR
(
MAPPING_ID NUMBER,
TARGET_INST_ID NUMBER,
TARGET_FLD NUMBER,
TRANS_EXPR VARCHAR2(2000 BYTE),
USER_COMMENT VARCHAR2(2000 BYTE),
VERSION_NUMBER NUMBER
)
上面这张表主要记录目标表的MAPPING标识号,文件夹标识号吧,版本号,TARGET_id.
CREATE TABLE INFREP_V8.OPB_TARG_FLD
(
FLDID NUMBER NOT NULL,
TARGET_ID NUMBER NOT NULL,
TARGET_NAME VARCHAR2(240 BYTE),
BUSINESS_NAME VARCHAR2(240 BYTE),
TARGET_DESC VARCHAR2(2000 BYTE),
KEYTYPE NUMBER,
DTYPE NUMBER,
NDTYPE NUMBER,
DSCALE NUMBER,
DPREC NUMBER,
NXTFLDID NUMBER,
DFLDID NUMBER,
DSRC NUMBER,
NULLTYPE NUMBER,
FLDNO NUMBER,
REFPRIKEYID NUMBER,
GROUP_ID NUMBER,
FLD_PROP NUMBER,
PICTXT VARCHAR2(240 BYTE),
VERSION_NUMBER NUMBER
)
上面这张表主要记录的是目标表的名称,目标对象ID和版本号用来关联OPB_TARG,文件夹ID用来关联OPT_TARG_FLD_E。
CREATE TABLE INFREP_V8.OPB_TARG
(
TARGET_ID NUMBER NOT NULL,
SUBJ_ID NUMBER NOT NULL,
TARGET_NAME VARCHAR2(240 BYTE) NOT NULL,
BUSINESS_NAME VARCHAR2(240 BYTE),
CONSTR VARCHAR2(2000 BYTE),
TBL_OPTIONS VARCHAR2(2000 BYTE),
TARGET_DESC VARCHAR2(2000 BYTE),
INDEXID NUMBER,
FLDID NUMBER,
SRC_ID NUMBER,
VERSIONID NUMBER NOT NULL,
TBL_TYPE NUMBER,
DBTYPE NUMBER,
LAST_SAVED VARCHAR2(30 BYTE),
CREATE_INFO NUMBER,
FILE_ID NUMBER,
OBJVERSION NUMBER,
VERSION_NUMBER NUMBER,
VERSION_STATUS NUMBER,
UTC_LAST_SAVED NUMBER,
IS_VISIBLE NUMBER,
CHECKOUT_USER_ID NUMBER,
IS_MARKED NUMBER,
UTC_REF_TIME NUMBER,
UTC_CHECKIN NUMBER,
OBJ_CMP NUMBER,
COMP_VERSION NUMBER
)
上面这张表的作用跟OPB_SRC的作用相似,通过关联共同的桥接表OPB_WIDGET_INST来达到源和目标对象对应的目的,关联键有TARGET_ID。表中记录信息有目标对象名称,版本号,更新时间等。
CREATE TABLE INFREP_V8.REP_TARG_KEY_TYPES
(
KEYTYPE_NUM INTEGER,
KEYTYPE_NAME VARCHAR2(50 BYTE)
)
这张表的作用与REP_SRC_KEY_TYPES类似,记录目标表的表键的类型,其值有:是否是主键,外键,XML产生的键等。
CREATE TABLE INFREP_V8.OPB_MMD_DBTYPE
(
DBTYPE_ID NUMBER,
IS_PLG NUMBER,
DBTYPE_NAME VARCHAR2(240 BYTE),
BASE_ID NUMBER,
SRCTGT_FLAGS NUMBER,
H_FLAGS NUMBER,
E_FLAGS NUMBER,
I_FLAGS NUMBER,
DEFAULT_DBSUBTYPE NUMBER,
FIELD_SEPARATOR VARCHAR2(240 BYTE),
NULL_STRING VARCHAR2(240 BYTE),
NOTNULL_STRING VARCHAR2(240 BYTE),
DSQ_TYPE NUMBER,
INVALID_CHARS VARCHAR2(240 BYTE),
INVALID_FCHARS VARCHAR2(240 BYTE),
OPB_OBJECT_ID NUMBER
)
上面这张表记录数据类型名,标示号。(如果是建快捷方式的源和目标可以通过object_type来标识。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22377317/viewspace-692254/ ,如需转载,请注明出处,否则将追究法律责任。