SNPW数据库表结构初探
一、概述
SNPW的全称是Sunopsis Work Repository ,是Oracle Data Integrator (ODI)用来存储在Designer中创建的对象(模型、项目、包、接口以及包的各种组件)和在Operator中的会话的执行情况日志。理解SNPW中表的结构可以加深我们对子模式的执行和元数据管理的认识,也有助于我们对其Metadata Navigator进行二次开发。
SNPW中的数据库表总共有88张,按照存储数据的用途可以分为以下几类: 表的分类 执行存储库的表 表的用途 主要的表 用于存储用于整个SNP_LOC_REPW,SNP_ID, SNPW的各种表信息,SNP_LOCK,SNP_FF_VALUEE 如用到的源表、目标表以及各个表的ID序列情况等。 用于存储各种元数据SNP_MODEL,SNP_SUBMODEL,SNP_PROJECT, (模型,子模型,项目,SNP_PACKAGE,SNP_DIAGRAM,SNP_STEP, 包,图标,接口,步骤SNP_POP等 等) 用于存储子模型中用于执行的对象如方案、计划会话、步骤、任务等,并存储其执行情况(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_TABLESNP_REV_JOIN, SNP_REV_KEY,SNP_REV_JOIN等 SNP_TXT,SNP_ORIG_TXT,SNP_SEQUENCE,S NP_COL,SNP_VAR,SNP_TABLE,SNP_POP_COL, SNP_CROSSR,SNP_UFUNC,SNP_STEP ,Designer中的表 (或模型相关表) Operator中的表 反向工程中的表 文本信息表 用于存储反向过程中的数据信息和反向过程 用于存储各种文本型信息的表,如步骤地具体执行的SQL语句或Jython语句以及描述信息 二、Operator中的表
1.表的分类
对于我们监控平台来说,展示的绝大部分数据都来源于Operator相关表,我们可以对其21张表进行更详细的分类: 表的分类 方案和计划相关表 表的用途 用于存储对方案和计划以及方案子对象信息的描述 表的个数 5 所包含的表 SNP_SCEN SNP_PLAN_AGENT SNP_SCEN_STEP SNP_SCEN_TASK SNP_SCEN_TXT SNP_SESSION SNP_SESS_STEP SNP_SESS_TASK SNP_TASK_TXT 重要性 重要 会话相关的表 用于存储会话以及其子对象 的相关信息 4 重要 方案执行的日志信息和 会话运行的日志信息 变量和序列信息 有关会话的运行信息 (实际上方案总是表现为会话的形式执行)日志 会话或者方案中用到的变量或者序列信息 5 SNP_SCEN_REPORT 重要 SNP_STEP_REPORT SNP_STEP_LOG SNP_SESS_TASK_LOG SNP_SESS_TXT_LOG SNP_VAR_SCEN SNP_VAR_SESS SNP_SEQ_SCEN SNP_SEQ_SESS SNP_VAR_DATA SNP_SEQ_DATA SNP_SESS_FOLDER 不重要 6 文件夹信息 会话所在的文件夹(主要用于按关键字分类的作用) 1 不重要 2.基本对象
1) 方案(Scenario):当包、接口、过程或变量等组件完成以后,它们会编译在一个方案之
中,方案是可以按时间计划的执行的对象单元。 2) 会话(Session):一个会话是一个由Agent来完成的一次执行(被执行的可以是方案、接
口、包或过程等),一个会话由一些步骤(Step)组成,而每个步骤也可以由一些任务(task)组成。 3) 步骤(Step):一个步骤是介于会话和任务之间的执行单元。它对应了包或者方案之中
的某一步骤。当执行一个接口或者一个变量时,这个会话只包含一个会话步骤。 4) 任务(task):任务是最小的执行单元。它对应了KM中的过程命令,例如一个过程,变
量的赋值等。
5) 文本描述(TEXT):是 对任务要做什么工作的详细描述,通常一个任务可以对应多条
文本描述。
6) 执行计划,把方案(Scenario)和充当计划执行器的Agent用时间表的形式关联起来。
3.表的简要描述
表名 SNP_SCEN SNP_PLAN_AGENT SNP_SCEN_STEP SNP_SCEN_TASK SNP_SCEN_TXT SNP_SESSION SNP_SESS_STEP SNP_SESS_TASK SNP_TASK_TXT SNP_SCEN_REPORT SNP_STEP_REPORT SNP_STEP_LOG 简要描述 方案的列表,一个方案是从一个有上下文的包生成的代码。 执行计划,把方案(Scenario)和充当计划执行器的Agent用时间表的形式关联起来。 方案中的各个步骤。 方案(Scenario)步骤(Step)中的具体执行任务。 与方案中某一步骤的某一任务相关的文本信息。 已经执行的ODI会话(ODI日志),通常这些信息可以在Operator中也可以看到。 会话执行的步骤,如果会话信息被删除,其步骤信息也会被级联删除。 会话(Session)步骤(Step)中的具体执行任务。 与会话某一步骤的某一任务相关的文本信息。 包括在任务被Agent所解释执行前任务的代码。 方案的执行日志 方案的所有步骤的执行历史,可以查看其开始时间,持续时间,返回代码,增删改查的记录数。 会话的所有执行步骤历史,也可以在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.表之间的关系图
SNP_SESSION PK SESS_NOSESS_NAMESCEN_VERSION... SNP_PLAN_AGENT参照执行SNP_SCENPK SCEN_NOSCEN_NAMESCEN_VERSIONI_PACKAGE...PK I_PLAN_AGENTSCEN_NAMESCEN_VERSION...虚外键SNP_STEP_LOGPKPKPK SESS_NONNONB_RUN...SNP_SESS_STEPPKPK SESS_NONNO...SNP_SCEN_STEPPKPK SCEN_NONNO...SNP_SCEN_REPORTPKPK SCEN_NOSCEN_RUN_NO...SNP_SESS_TASK_LOGPKPKPKPK SESS_NONNONB_RUNSCEN_TASK_NO...SNP_SESS_TASKPKPKPK SESS_NONNOSCEN_TASK_NO...PKPKPK SNP_SCEN_TASKSCEN_NONNOSCEN_TASK_NO...SNP_STEP_REPORTPKPKPKPK SCEN_NOSCEN_RUN_NONNONB_RUN...SNP_STEP_LOG11PKPKPKPKPKPKSESS_NONNONB_RUNSCEN_TASK_NOTXT_TYPETXT_ORDPKPKPKPKPK SNP_TASK_TXTSESS_NONNOSCEN_TASK_NOORD_TYPETXT_ORD...PKPKPKPKPK SNP_TASK_TXT1SESS_NONNOSCEN_TASK_NOORD_TYPETXT_ORD... 5.具体的表结构
5.1 SNP_PLAN_AGENT
执行计划,把方案(Scenario)和充当计划执行器的Agent用时间表的形式关联起来。 表名 序字段名字 号 1 I_PLAN_AGENT SNP_ PLAN_AGENT 字段含义 类型 长度 10 主可备注 键 为空 是 planning agent 调度器 Agent 的ID NUMBER

