ODI+SNPW数据库表结构分析.docx
《ODI+SNPW数据库表结构分析.docx》由会员分享,可在线阅读,更多相关《ODI+SNPW数据库表结构分析.docx(82页珍藏版)》请在冰豆网上搜索。
ODI+SNPW数据库表结构分析
SNPW数据库表结构分析
一、概述
SNPW的全称是SunopsisWorkRepository,是OracleDataIntegrator(ODI)用来存储在Designer中创建的对象(模型、项目、包、接口以及包的各种组件)和在Operator中的会话的执行情况日志。
理解SNPW中表的结构可以加深我们对子模式的执行和元数据管理的认识,也有助于我们对其MetadataNavigator进行二次开发。
SNPW中的数据库表总共有88张,按照存储数据的用途可以分为以下几类:
表的分类
表的用途
主要的表
执行存储库的表
用于存储用于整个SNPW的各种表信息,如用到的源表、目标表以及各个表的ID序列情况等。
SNP_LOC_REPW,SNP_ID,
SNP_LOCK,SNP_FF_VALUEE
Designer中的表
(或模型相关表)
用于存储各种元数据(模型,子模型,项目,包,图标,接口,步骤等)
SNP_MODEL,SNP_SUBMODEL,SNP_PROJECT,
SNP_PACKAGE,SNP_DIAGRAM,SNP_STEP,
SNP_POP等
Operator中的表
用于存储子模型中用于执行的对象如方案、计划会话、步骤、任务等,并存储其执行情况(Log)。
SNP_SESSION,SNP_SCEN,SNP_SESS_STEP,
SNP_SCEN_STEP,SNP_SESS_TASK,
SNP_SCEN_TASK,SNP_TASK_TXT,SNP_SCEN_TXT;
SNP_STEP_LOG,SNP_SES_TASK_LOG,
SNP_SESS_TXT_LOG,SNP_SCEN_REPORT,
SNP_STEP_REPORT,SNP_SESS_FOLDER,
SNP_VAR_SCEN,SNP_SEQ_SCEN,SNP_VAR_DATA,
SNP_SEQ_DATA,SNP_VAR_SESS,SNP_SEQ_DATA,
反向工程中的表
用于存储反向过程中的数据信息和反向过程
SNP_REV_FOR_TABLE,SNP_REV_TABLE,SNP_REV_JOIN,
SNP_REV_KEY,SNP_REV_JOIN等
文本信息表
用于存储各种文本型信息的表,如步骤地具体执行的SQL语句或Jython语句以及描述信息
SNP_TXT,SNP_ORIG_TXT,SNP_SEQUENCE,S
NP_COL,SNP_VAR,SNP_TABLE,SNP_POP_COL,
SNP_CROSSR,SNP_UFUNC,SNP_STEP
二、Operator中的表
1.表的分类
对于我们监控平台来说,展示的绝大部分数据都来源于Operator相关表,我们可以对其21张表进行更详细的分类:
表的分类
表的用途
表的个数
所包含的表
重要性
方案和计划相关表
用于存储对方案和计划以及方案子对象信息的描述
5
SNP_SCEN
SNP_PLAN_AGENT
SNP_SCEN_STEP
SNP_SCEN_TASK
SNP_SCEN_TXT
重要
会话相关的表
用于存储会话以及其子对象
的相关信息
4
SNP_SESSION
SNP_SESS_STEP
SNP_SESS_TASK
SNP_TASK_TXT
重要
方案执行的日志信息和
会话运行的日志信息
有关会话的运行信息
(实际上方案总是表现为会话的形式执行)日志
5
SNP_SCEN_REPORT
SNP_STEP_REPORT
SNP_STEP_LOG
SNP_SESS_TASK_LOG
SNP_SESS_TXT_LOG
重要
变量和序列信息
会话或者方案中用到的变量或者序列信息
6
SNP_VAR_SCEN
SNP_VAR_SESS
SNP_SEQ_SCEN
SNP_SEQ_SESS
SNP_VAR_DATA
SNP_SEQ_DATA
不重要
文件夹信息
会话所在的文件夹(主要用于按关键字分类的作用)
1
SNP_SESS_FOLDER
不重要
2.基本对象
1)方案(Scenario):
当包、接口、过程或变量等组件完成以后,它们会编译在一个方案之中,方案是可以按时间计划的执行的对象单元。
2)会话(Session):
一个会话是一个由Agent来完成的一次执行(被执行的可以是方案、接口、包或过程等),一个会话由一些步骤(Step)组成,而每个步骤也可以由一些任务(task)组成。
3)步骤(Step):
一个步骤是介于会话和任务之间的执行单元。
它对应了包或者方案之中的某一步骤。
当执行一个接口或者一个变量时,这个会话只包含一个会话步骤。
4)任务(task):
任务是最小的执行单元。
它对应了KM中的过程命令,例如一个过程,变量的赋值等。
5)文本描述(TEXT):
是对任务要做什么工作的详细描述,通常一个任务可以对应多条文本描述。
6)执行计划,把方案(Scenario)和充当计划执行器的Agent用时间表的形式关联起来。
3.表的简要描述
表名
简要描述
SNP_SCEN
方案的列表,一个方案是从一个有上下文的包生成的代码。
SNP_PLAN_AGENT
执行计划,把方案(Scenario)和充当计划执行器的Agent用时间表的形式关联起来。
SNP_SCEN_STEP
方案中的各个步骤。
SNP_SCEN_TASK
方案(Scenario)步骤(Step)中的具体执行任务。
SNP_SCEN_TXT
与方案中某一步骤的某一任务相关的文本信息。
SNP_SESSION
记录方案的运行情况信息,已经执行的ODI会话(ODI日志),通常这些信息可以在Operator中也可以看到。
SNP_SESS_STEP
会话执行的步骤,如果会话信息被删除,其步骤信息也会被级联删除。
SNP_SESS_TASK
会话(Session)步骤(Step)中的具体执行任务。
SNP_TASK_TXT
与会话某一步骤的某一任务相关的文本信息。
包括在任务被Agent所解释执行前任务的代码。
SNP_SCEN_REPORT
方案的执行日志
SNP_STEP_REPORT
方案的所有步骤的执行历史,可以查看其开始时间,持续时间,返回代码,增删改查的记录数。
SNP_STEP_LOG
会话的所有执行步骤历史,也可以在ODI的Operator中“所有执行”可以看到。
所有的步骤都可以在SNP_SESS_STEP表中看到,但是只有已经执行的步骤在SNP_SESS_STEP_LOG表可以看到。
如果在Operator中删除会话,则其步骤执行信息也会被级联删除。
SNP_SESS_TASK_LOG
任务执行相关的日志信息
所有的任务都可以在SNP_SESS_TASK表中看到,但是只有已经执行的步骤在SNP_SESS_TASK_LOG表可以看到。
SNP_SESS_TXT_LOG
与方案任务相关的文本字符串。
包括从任务的描述表中的得到的SQL代码和从执行表中得到的错误信息。
SNP_EXP_TXT
用于存储执行过程中抛出的异常信息。
SNP_VAR_SCEN
方案中所用到的变量。
SNP_VAR_SESS
会话中所用到的变量。
SNP_SEQ_SCEN
方案中所用到的序列。
SNP_SEQ_SESS
会话中所用到的序列。
SNP_VAR_DATA
变量的历史取值。
SNP_SEQ_DATA
序列的历史取值。
SNP_SESS_FOLDER
该文件夹用于组织基于关键字的会话,当装载方案时,一个会话的关键字被指定。
4.表之间的关系图
5.具体的表结构
5.1SNP_PLAN_AGENT
执行计划,把方案(Scenario)和充当计划执行器的Agent用时间表的形式关联起来。
表名
SNP_PLAN_AGENT
序号
字段名字
字段含义
类型
长度
主键
可为空
备注
1
I_PLAN_AGENT
调度器
Agent的ID
NUMBER
10
是
planningagent
2
SCEN_NAME
方案的名字
VARCHAR2
35
3
SCEN_VERSION
方案的版本
VARCHAR2
35
4
LAGENT_NAME
逻辑代理的名字
VARCHAR2
35
5
CONTEXT_CODE
方案的代码
VARCHAR2
35
6
STAT_PLAN
计划的状态
VARCHAR2
1
E:
可用
D:
不可用
7
S_YEAR
执行时间中年份
VARCHAR2
100
是
8
S_MONTH
执行时间中月份
VARCHAR2
100
是
9
S_DAY
执行时间中的日
VARCHAR2
100
是
10
S_MONTH_DAY
执行时间为每月的某一天
-31到31
VARCHAR2
100
是
0:
本月的最后一天;1:
本月的第一天;-1:
月底前某一天
11
S_WEEK_DAY
执行时间为每周的几天
VARCHAR2
100
是
1:
星期日
2:
星期一
…以此类推
12
S_HOUR
执行时间中小时
VARCHAR2
100
是
13
S_MINUTE
执执行时间中分钟
VARCHAR2
100
是
14
S_SECOND
执行时间中秒
VARCHAR2
100
是
15
R_TIME
重复的次数
NUMBER
10
-1:
无限次
0:
执行一次
1:
一次重复
(执行两次)
16
R_DUR_INTERVAL
两次执行的间隔
NUMBER
10
是
-1:
不用等待,立即重复执行
17
R_CYCLE_UNIT
周期持续的时间单位
VARCHAR2
1
是
H:
小时
M:
分钟
S:
秒
18
R_DEADLINE
一次执行的最大持续时间
NUMBER
10
是
19
R_DEADLINE_UNIT
R_DEADLINE
的时间单位
VARCHAR2
1
是
H:
小时
M:
分钟
S:
秒
20
R_TIME_ERROR
如果错误发生,连续的重试次数
NUMBER
4
是
-1:
总是重试
21
IND_RESIDENT
标志位
VARCHAR2
1
是
1:
计划日程被装载时,方案同时装入内存
22
LOG_LEVEL
日志级别的标识符。
如果session最终执行成功的话,日志信息会被清空
NUMBER
4
是
null=nolog
0,1,2,3,4,5=
具体的级别
默认为5
23
S_BEGIN_DATE
开始的日期(时间表的开始)
DATE
是
24
S_END_DATE
结束日期(时间表的结束)
DATE
是
25
S_TYPE
执行时间表的周期类型
VARCHAR2
1
是
H=Hourly
D=Daily
W=Weekly
M=Monthly
Y=Yearly
26
USER_NAME
VARCHAR2
35
是
27
S_BEGIN_HOUR
DATE
是
28
R_TIME_ERROR
_INT
NUMBER
10
是
29
S_END_HOUR
DATE
是
30
S_EX_DAYS
_MONTH
VARCHAR2
100
是
31
S_EX_DAYS_WEEK
VARCHAR2
7
是
32
S_WEEK_DAY
_RANK
VARCHAR2
100
是
5.2SNP_SESSION
已经执行的ODI会话(ODI日志),通常这些信息可以在Operator中也可以看到。
表名
SNP_SESSION
序号
字段名字
字段含义
类型
长度
主键
可为空
备注
1
SESSION_NO
会话ID
NUMBER
10
是
2
SEQ_NAME
序列的名字(包括项目的名字)
VARCHAR2
75
3
SCEN_VERSION
方案的版本
VARCHAR2
35
是
4
LOG_LEVEL
日志的级别
NUMBER
4
5
THREAD_ID
持有会话的线程ID
VARCHAR2
35
是
6
THREAD_CREATION
线程创建的时间
VARCHAR2
35
是
7
SESS_BEG
会话开始时间
DATE
是
8
SESS_END
会话结束时间
DATE
是
9
SESS_DUR
会话持续时间
NUMBER
10
是
NUMBER(10,2)
允许两位小数
10
SESS_STATUS
会话的最终状态
VARCHAR2
2
W=Waiting
E=Error
R=Running
D=Done
11
SESS_RC
会话的返回代码
VARCHAR2
35
是
0:
成功;
<数据库或者JDBC驱动的返回代码>:
相对应的异常;
‘KILLED’:
会话被Operator手动杀死;
1:
别的错误
12
SESS_MESS
会话的信息
VARCHAR2
250
是
:
成功执行;
<数据库或者JDBC驱动的返回代码>:
相应的异常
13
SESS_PARAMS
会话的参数
VARCHAR2
250
是
14
SESS_KEYWORDS
会话关键词
VARCHAR2
250
是
15
MASTER_AGENT
_NAME
VARCHAR2
35
是
16
SYNCHRO
VARCHAR2
1
是
17
AGENT_NAME
物理代理的名字
VARCHAR2
是
18
CONTEXT_CODE
会话的执行上下文
VARCHAR2
35
19
PARENT_SESS
_NO
父会话的ID
NUMBER
10
是
20
NB_CHILD_RUN
NUMBER
10
是
21
NB_CHILD_OK
NUMBER
10
是
22
NB_CHILD_KO
NUMBER
10
是
23
SCEN_NAME
方案的名字
VARCHAR2
35
是
24
USER_NAME
用户的名字
VARCHAR2
35
是
25
I_TXT_SESS
_MESS
NUMBER
10
是
26
I_TXT_SESS
_PARAMS
NUMBER
10
是
5.3SNP_SESS_STEP
会话执行的步骤,如果会话信息被删除,其步骤信息也会被级联删除。
表名
SNP_SESS_STEP
序号
字段名字
字段含义
类型
长度
主键
可为空
备注
1
SESS_NO
会话的ID
NUMBER
10
是
外键SNP_SESS
(SESS_NO)
2
NNO
步骤的执行次数
NUMBER
10
是
3
NB_RUN
运行的数量
NUMBER
10
是
Agent在每一步时更新
4
STEP_NAME
步骤的名字
VARCHAR2
75
注释①
5
STEP_TYPE
步骤地类型
VARCHAR2
2
是
6
CONTEXT_CODE
系统执行的上下文
VARCHAR2
35
是
7
VAR_NAME
变量的名字
VARCHAR2
71
是
10
VAR_INCR
变量的增加值
NUMBER
10
是
可以为负值
11
VAR_OP
变量求值的操作符
VARCHAR2
2
是
=><<>>=
<=IN
12
VAR_VALUE
变量或者带分隔符的变量列表
VARCHAR2
250
是
这些值在步骤执行前求解
14
OK_EXIT_CODE
步骤执行成功后返回码
VARCHAR2
35
默认是0
15
OK_EXIT
如果步骤执行成功,是否退出包
VARCHAR2
1
0:
不退出包(默认值)
1:
退出包
16
OK_NEXT_STEP
步骤执行成功后的下一步的ID
NUMBER
10
是
17
KO_RETRY
如果不成功,是否重试
NUMBER
10
是
0:
不重试
1:
重试
18
KO_RETRY_INTERV
若不成功,重试的间隔
NUMBER
10
是
单位为秒
19
KO_EXIT_CODE
步骤不成功后的返回码
VARCHAR2
35
是
如果返回码跟上一个执行的任务一样,则为Null
20
KO_EXIT
如果步骤执行不成功,是否退出包
VARCHAR2
0:
不退出(默认值)
1:
退出
21
KO_NEXT_STEP
如果执行中发生错误,下一步的ID
NUMBER
10
是
23
MAX_ERR
允许的最大错误数字或者百分比
VARCHAR2
10
是
24
MAX_ERR_PRCT
数字/百分比的标志位
VARCHAR2
1
是
0=MAX_ERR是数字
1=MAX_ERR是百分比
25
IND_LOG_METHOD
VARCHAR2
1
是
注释①:
步骤的类型可以为:
VD=变量声明
VS=变量赋值
VE=变量求值
VP=变量组装
V=变量刷新
OE=执行OS命令
SE=执行ODI的命令
F=流(映射)
T=过程(一则)
MR=对模型反向工程
MC=模型检查
J=日记
5.4SNP_SESS_TASK
会话(Session)步骤(Step)中的具体执行任务。
表名
SNP_SESS_TASK
序号
字段名字
字段含义
类型
长度
主键
可为空
备注
1
SESS_NO
会话的ID
NUMBER
10
是
外键
SNP_SESS
_STEP
(SESS_NO,
NNO)
2
NNO
步骤的执行次数
NUMBER
10
是
3
SCEN_TASK_NO
任务的执行次序
NUMBER
10
是
4
TASK_TYPE
任务类型
VARCHAR2
1
J:
接口
C:
集合
S:
过程
V:
变量
5
TASK_NAME1
任务的名字1
VARCHAR2
35
是
6
TASK_NAME2
任务的名字2
VARCHAR2
35
是
7
TASK_NAME3
任务的名字3
VARCHAR2
35
是
8
EXE_CHANNEL
执行的通道
VARCHAR2
1
是
O=OS命令
J=JDBC
S=ODI命令
Q=JMS队列
T=JMS主题
9
DEF_CONTEXT_
CODE
在目标上执行的上下文
VARCHAR2
35
是
在多连接中
需要上下文信息
10
DEF_LSCHEMA_
NAME
在目标技术上的逻辑模式
VARCHAR2
35
是
11
DEF_CON_NAME
计算机连接名
VARCHAR2
35
是
12
DEF_CONNECT_ID
用于目标技术的sessionID
VARCHAR2
1
是
13
DEF_IND_COMMIT
执行任务后是否在目标提交的标识
VARCHAR2
1
是
1=提交
0=不提交
14
DEF_ISOL_LEVEL
目标上的隔离级别
VARCHAR2
3
是
15
DEF_PLAN_COMP
目标上执行期待计算计划
VARCHAR2
1
是
N=不计算;
F=首次执行;E=每次执行
16
COL_CONTEXT_
CODE
在源上的上下文
VARCHAR2
35
是
17
COL_LSCHEMA_
NAME
VARCHAR2
35
是
18
COL_CON_NAME
VARCHAR2
35
是
19
COL_CONNECT_ID
VARCHAR2
1
是
20
COL_IND_COMMIT
VARCHAR2
1
是
21
COL_ISOL_LEVEL
VARCHAR2
3
是
22
COL_PLAN_COMP
VARCHAR2
1
是
23
ORD_TRT
知识模块的序列号
NUMBER
10
是
24
IND_ERR
是否允许错误
VARCHAR2
1
是
1=允许
0=不允许
25
LOG_LEV_DET
日志级别
VARCHAR2
1
是
26
IND_LOG_NB
指定计数器类型的标识
(用于行序号的处理)
VARCHAR2
1
事
0=不
1=自动扫描
I=插入;D=删除;U=更新
E=错误
27
DEF_TECH_INT_
NAME
目标技术的名字
VARCHAR2
35
是
28
COL_TECH_INT_
NAME
源技术的名字
VARCHAR2
35
是
29
IND_LOG_METHOD
VARCHAR2
1
是
5.5SNP_TASK_TXT
与会话任务相关的文本信息。
包括在任务被代理所解释执行前任务的代码。
表名
SNP_TASK_TXT
序号
字段名字
字段含义
类型
长度
主键
可
为空
备注
1
SESS_NO
会话的ID
NUMBER
10
是
外键SNP_SESS
_TASK(SESS_NO,NNO,SCEN_TASK_NO)
2
NNO
步骤的执行次数
NUMBER
10
是
3
SCEN_TASK