




免费预览已结束,剩余33页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ODI应用参考手册一 基本概念在开始开发应用ODI之前,我们先了解几个与ODI相关的基本概念。存储库:ODI存储库是一个,综合、开放、共享的元数据存储库。在ODI中它的作用主要是存储在数据集成和转换过程中所用到的程序以及开发工程的版本和所有工程中用到的计划、调度安排、运行报告等数据。存储库包括,主存储库和工作存储库。接口:接口由规定如何从一个或多个数据源中加载数据库到目标数存储的一系列规则组成。一个接口中包含,目标存储、源、映射、流和控制策略。模型:ODI中,一个模型是一系列与数据库物理数据存储相对应的抽象化的逻辑数据存储。物理架构:物理架构规定了组成软件系统的物理元素、这些物理元素之间的关系、以及它们部署到硬件上的策略。在ODI中,物理构架规定了组成组成数据服务器的元素,以及他们直接的关系等。逻辑架构:逻辑架构规定了软件系统由哪些逻辑元素组成、以及这些逻辑元素之间的关系。在ODI中,一个逻辑构架可以有一个或几个物理构架与之对应,但是可以通过上下文方便的由一个逻辑构架关联到唯一一个物理构架。上下文:在ODI中作为物理与逻辑体系结构对应关系的标示。例如,指定逻辑构架和上下文就可以找到一个特定的物理构架,进而找到了访问的数据库物理对象。知识模块:知识模块是ODI的一个特殊组件,一个接口通过选择不同的知识模块而实现数据抽取集成过程的改变,进而实现不同的数据处理目的。二 应用范例下面我们通过一个例子(数据库以Oracle为例),介绍如何应用ODI进行简单的开发工作。2.1 开发环境搭建(1)创建物理体系结构现在将要进行的操作,就是为我们需要的数据源或目标存储建立物理体系结构。我们的例子以用户dw_gddw下的表作为数据源和目标数据存储。首先,建立用户odi_temp作为ODI临时数据处理用户。create user odi_temp identified by odi_temp default tablespace (表空间名称);grant connect,resource to odi_temp;通过,开始菜单所以程序OracleOracle Data IntegratorTopology Manager,打开拓扑管理器 。输入SUPERVISOR,SUNOPSIS登录拓扑管理器。选择Oracle,点击右键选择插入数据服务器如下图所示。弹出如下窗口,填写名称和用户名密码。这里的用户名密码,是我们的数据源或者目标数据库的用户名密码。当我们在同一个数据库中对数据进行操作时,这个数据服务器既是数据源又是目标存储;如果,需要在不同的数据库间做操作,则需要在物理体系结构下分别为不同的数据服务器,建立相应的对象,待使用。点击,jdbc选自按卡,填入数据库驱动和URL单击测试按钮,显示成功后,点击确定弹出如下窗口。在构架(构架)处选择dw_gddw(这个是),构架(工作构架)处选择odi_temp,点击确定。此时,会弹出未设置上下文的警告,点确定先忽略掉。(2)创建逻辑体系结构点击上下文,我们看到已经有一个Global的上下文,我们可以应用这个上下文。也可以根据需要新建上下文。在拓扑管理器中,点击左侧的逻辑体系结构,右键点击Oracle,选择插入逻辑构架,如下图所示。弹出如下的一个选项卡,选择在上下文Global右侧物理构架处选择要关联的物理构架,这里选择,dw_gddw.DW_GDDW。这样,就可以由逻辑构架dw_gddw通过上下文Global找到相应的物理构架了。此时,打开刚才我们建立的物理构架的选项卡,选择上下文,我们发现这里已经自动添加了一个与逻辑构架对应上下文,如下图。(3)导入知识模块打开Designer,新建项目(工程)。点击按钮,新建项目,如下图所示。 在弹出的窗口中,输入我们要建立的项目名称,这个我们输入dw_gddw。这时,我们新建的项目已经自动显示在,左侧了。打开项目,我们可以看到里面包含,文件夹、变量、序列、用户函数、知识模块、标记。文件夹中包含,包、接口和过程。一个包是若干个接口的集合,可以把接口放入包内做同一的调度。过程是一些了可以运行的命令,我们可以利用他运行我们想要的命令或者sql。我们知道知识模块是ODI非常重要的组成部件,在应用开发前我们需要将必要的知识模块导入进来。导入的步骤如下:a以导入IKM(数据集成知识模块)为例,如下选择导入知识模块。在弹出的窗口中,填入导入KM的源。为安装目录下. oraclediimpexp 点击确定。然后,所有的KM都现在在我们面前了,可以根据不同的需要,选择不同的KM。这里CKM选择CKM(Create index for the I$Table),CKM Oracle,CKM SQL;IKM 选择 IKM Oracle Incremental Update(PL SQL),IKM Oracle Incremental Update,IKMSQL Incremental UpdateJKM 选择 JKM Oracle 10g Consistent(LOGMINER)LKM 选择 Oracle to Oracle (DBLINK)RKM 选择 RKM OracleSKM 选择 SKM Oracle点击确定,完成导入工作。这时,刚才选择的KM已经成功导入,并自动显示在左侧了。当然也可以全部导入,在接口中根据不同需要选择使用。2.2数据模型定义在Designer中,如下选项卡中选择模型。a. 点击新建文件夹test,文件夹建好后右击选择插入模型,也可以点击插入模型。弹出如下窗口名称填入test,技术选择Oracle,逻辑构架选择dw_gddw,操作组选择Oracle 10g。b. 选择反向 选项卡。如下选择标准,上下文选择Global,要反向的对象选择表,掩码(用来选择特定的表)及以下不填写。c. 选择选择性反向选项卡。如下,选中选择性反向、新建数据存储、要进行反向操作的对象,会显示数据库dw_gddw用户下的表。选择我们要反向的表,这里选择如下三个表。单击右下角反向按钮,进行反向。此时,我们看到刚才反向的三个表已经自动显示在这里了。如下图所示,数据存储的模型中包括,列(数据库表的列),筛选器(可以作为表数据筛选的条件,如电量10000),约束(包括主键和外键等),用于(在这里可以看到此数据存储的应用情况)。2.3 接口的使用(1)接口的创建模型创建完了,现在我们可以创建接口了。在Designer中点击,进入项目界面。打开项目dw_gddw,编辑文件夹 第一个文件夹 重命名为test。打开test文件夹,我们可以看到,文件夹中包含,包、接口和过程。现在需要建立接口进行数据抽取,目标表为ODS_MONEY_FILES,源表为V_DW_ODS_MONEY_FILES,ODS_USER_FILES。逻辑是,表V_DW_ODS_MONEY_FILES通过user_code与表ODS_USER_FILES的user_code左外关联,抽取200801月份的数据到表ODS_MONEY_FIELS中。下面我们建立接口。a.定义右击接口,选择插入接口,弹出如下窗口。名称填写Test;优化上下文选择Global;不要选择临时区域与目标区域不同,此选项在需要将临时区域定义为不同的数据服务器是使用。b.关系图点击关系图选项卡,弹出如下帮助信息。它告诉我们,这里可以从模型数拖拽数据存储到接口,作为数据源或目标。点击确定后出现如下窗口。在新建窗口中,左侧源为数据源,需要将数据源从模型树推到此处,这里需要将V_DW_ODS_MONEY_FILES,ODS_USER_FILES从模型数中拖到源处。右侧目标数据存储处这里需将目标表ODS_MONEY_FILES从模型树拖拽到此处。此时,弹出一个询问是否需要自动映射的对话框,如果选择是,ODI会按照字段名相同的进行匹配映射,选择否不做任何操作。这里选择是。可以看到目标数据存储处,已经根据字段匹配映射好了,但是还有空缺,让我们手动映射过去。手动映射的方法是,选中目标数据存储表的某个字段,下方的属性面板处出现映射 字样,在实现选项卡的文本框中填入映射的字段,格式为:表名.字段名,如下图所示。映射是一定要注意源字段和目标字段类型的对应关系,做适当的转换,否则会在允许的时候出错。映射完毕,现在开始加关联和帅选条件。左键点击表v_dw_ods_money_files的user_code字段不放,拖动鼠标到表ods_user_files的user_code字段处放开鼠标左键,关联自动形成,如下图所示。选中上图的关联图标,在下方的属性栏中可以看到此关联的属性。在以下位置执行选择源说明在源上执行关联。下面选择左外关联,这时我们可以看到上面的关联图标也发生了变化。下面添加条件,报表月份report_month_Id为200801月份的数据。类似于关联关系的创建,左键拖拽字段report_month_id到空白处,可以看到一个小漏斗。在漏斗下方的属性栏的实现的文本框中填写条件v_dw_ods_money_files.report_month_id=200801,执行位置选择源,如下图所示。c. 流 在新建接口的窗口中,点击流选项卡。如下图,由于我们是在同一数据库服务器中进行操作,所以,所有的数据存储,条件等都在一个图中。如果,数据源和目标不在同一数据库服务器中则会分别在不同的图中显示。 单击,上图中小窗口的上边缘,即目标+临时区域(dw_gddw)的地方。下面的属性框中,会出现一个IKM选择窗口。这里选择IKM Oracle Incremental Update,下面,insert,update等选项处默认。每选择一个IKM或点击下面的选项,右侧的IKM说明处都会有相应的说明,介绍IKM或是每个选项的作用。d. 控制在新建接口的窗口中,选择控制选项卡。允许的最大错误数,是指允许最大检查错误数,如果小于这个数则允许成功,若大于则允许失败。不填表示不做判断。下面的CKM选择CKM Oracle,不能选择CKM Oracle(Create Index for the I$Table)后者的意思是,在检查错误前为中间表I$表建立索引,以提高速率。但是由于在选择IKM的时候我们选择了IKM OracleIncremental Update,它会自动为I$表创建索引,所以若选择后者会发生冲突。下面选项默认,和IKM说明一样CKM下方也有同样的说明,可以指导我们做出选择。下面的约束,可以看到是一个主键,是我们在反向表的时候从数据库反向到数据存储中的。这样我们的接口就创建完成了,但是在创建完成之前,可以为接口添加说明或者备注,说明在创建窗口的定义选项卡中,备注在备注选项卡中填写。(2)接口的运行右击刚才创建的接口test,选择执行。这时,会弹出如下窗口,上下文选择Global,代理默认本地(无代理),日志级别默认5 ,点击确定。出现,会话已启动的信息。点确定。点击ODI窗口左上角的图标,进入Operator,在这里可以查看刚才运行的test接口的运行情况。展开日期-今天,就看到了,刚才运行的Test会话情况,展开后test的运行步骤就展现在我们面前了。双击任何一个步骤都可以看到此步骤的相关信息,以第3步Insert flower into I$ table为例。双击,弹出如下窗口,可以在说明中看到运行时的SQL,执行中查看执行上下文,构架,运行时间等。2.4 ODI过程的使用(1)过程的创建现在我们在ODI中建立一个过程,通过这个过程删除表ods_money_files中report_month_id为200801月份的数据。在Designer中,test文件夹下,右击过程选择插入过程。弹出如下,过程新建窗口,名称proc_test,源和目标技术都是Oracle。在过程新建窗口,点击详细信息选项卡。点击,弹出如下窗口。名称proc_test,日志计数器选择delete,日志级别3,忽略错误选项,如果选择则忽略过程产生的错误,在Operator中显示正确执行,如果不选择,则当发生错误时过程停止执行并报错。目标命令选项卡上,技术选择Oracle,上下文选择Global,构架选择dw_gddw,事物选择autocommit。源上命令是在源数据服务器上要运行的,同目标命令。在命令文本框是编辑命令的地方,可以直接编辑,也可以点击,在弹出窗口中编辑。点击,弹出以下窗口表达式编辑器,在编辑器中可以应用左侧提供的关键字或者数据库函数等组成命令,也可以利用右侧提供的变量,ODI函数组成想要的命令。这里输入Delete from ods_money_files where report_month_id=200801,点击确定,再次点击确定。刚才创建的命令proc_test已经显示如下,可以点击删除,如果有多个命令也可以点击调节命令的执行顺序。(2)过程的执行 关于过程的执行,和接口的运行基本相同。这里可以参考接口的运行过程。(3)数据库存储过程的调用ODI的过程可以实现对存储过程的调用,现在我们在数据库dw_gddw下创建存储过程odi_test。代码如下:create or replace procedure odi_test(month_Id in varchar2)isbegindelete from ods_money_files t where t.report_month_id=month_id;commit;end odi_test;现在修改刚才创建的ODI过程使其能调用数据库存储过程odi_test。右击proc_test,选择编辑在弹出的窗口中选择详细信息,在下面的命令列表中选择双击刚才创建的proc_test,弹出命令编辑窗口。在命令文本框中的命令替换为:beginodi_test(200801);end;点击确定后,运行。可以在Operator中看到已经可以通过proc_test调用数据库存储过程odi_test了。2.5 包的使用包是接口和过程的集合,可以把接口和过程和变量等放入包中进行串联,然后进行连续的运行。下面我们将上面创建的接口test和过程proc_test放入包中连续执行。同接口和过程的创建,右击包,选择插入包。在弹出的新建窗口的定义选项卡名称处填入package_test,点击关系图选项卡进入关系图编辑窗口。把上面创建的过程proc_test和接口test依次拖入右侧的空白处。这时我们看到先拖入的过程proc_test有一个图标,说明这个包从它开始运行。也可以改变开始运行的点,如果想从接口test开始运行,右击接口test选择第一步,这时可以看到图标移动到了test处。 现在只是定义了第一步运行的点,还要添加运行步骤。点击左上角的图标,然后用鼠标拖动过程proc_test至接口test处,这时可以看到一条绿色带箭头的线从过程proc_test指向接口test。这样,一个简单的包就建好了,它可以从过程proc_test开始运行,如果运行成功就继续运行接口test,然后结束。若是想在过程proc_test运行失败后也运行接口test,选择同样拖动过程proc_test至接口test,又出现了一条红色从过程proc_test指向接口test的线,这样就可以实现了。包的运行和接口、过程的运行一样,运行后可以从Operator中看到运行的情况。2.6变量定义与应用(1)变量的定义 ODI的变量有两种,项目变量和全局变量。项目变量就是只在本项目有效的变量,全局变量是在所有项目都有效的变量。由于两种变量的应用基本相同,以下以项目变量为例。在Designer中展开创建的dw_gddw项目,可以看到有个变量的分支。右击变量选择插入变量,弹出以下窗口。名称填写v_test;数据类型选择字母数字,能够赋予字母或数字型的值;操作选择最新值每次取赋予的最新值。默认值填入200801,当应用变量但是没有为变量设置最新值是,ODI自动调用变量的默认值。选择正在刷新选项卡,我们可以看到如下图所示的窗口。这里,可以完成变量的动态更新功能。例如,想获得今天的日期。构架的地方选择dw_gddw,选择查询地方填入 select to_char(sysdate,yyyymmdd) from dual, 这样在应用变量的刷新功能时就可以获得今天的日期。可以单击按钮在弹出窗口编辑命令,还可以单击按钮进行测试。历史选项卡,可以显示变量应用的历史,如历史的变量值等。方案选项卡,显示变量方案的版本。(2)变量的应用a. 为接口和过程设置变量在前面,我们创建接口和过程是都没有应用到变量,而是直接修改接口和过程来实现不同月份数据的抽取。现在,为接口和过程添加变量。编辑接口test,在关系图选项卡中选择,编辑下面的属性栏为V_DW_ODS_MONEY_FILES.REPORT_MONTH_ID=#v_test,如下图所示点击进行测试,显示对DBMS查询的SQL命令则说明变量添加成功。现在为过程proc_test添加变量。双击过程proc_test进入编辑界面详细信息,在如下的命令列表中双击proc_test,打开命令编辑窗口。点击按钮,进入表达式编辑器窗口,将原来的200801换成现象的变量,格式为 #v_test,如下所示。双击包package_test编辑包,将刚才创建的变量v_test像接口一样拖入包内。要拖入两次,第一次作为变量声明,第二次设置变量用。点击第一次拖入的变量,在属性栏右侧的一个下拉式菜单处选择声明变量,第二次拖入的变量选择设置变量。然后,将声明变量设为第一步,运行顺序依次为变量声明变量设置过程proc_test接口test,如下所示:保存,点击运行在Operator中查看运行情况。b. 自动获取变量值前面,虽然为接口和过程设置了变量,但是对于变量值的获取还是手动设置。下面,我们介绍怎样自动获取变量值。以刚才的包package_test为例,在新建变量时我们已经在为变量v_test设置了正在刷新。现在选中变量,在属性栏右侧的下拉菜单中选择刷新变量,图标改变为。现在当包运行到是,ODI会自动调用在变量正在刷新里设置的命令,获取变量值,这里是自动获取当天的如期。运行包,过程proc_test和接口test将获取变量v_test的新值作为运行的变量。可以,在Operator中查看运行情况。2.6代理与计划任务接口或包等如果需要按照某种特定的模式自动运行,就需要制定计划,并通过代理按照计划自动运行。下面,将介绍代理的创建和计划的生成、运行等。(1)代理参数配置打开ODI安装目录下的. oracledibin文件夹,用记事本打开odiparams.bat文件。注意:这里更改的文件一定要是作为代理的机器上的。找到remrem Repository Connection Information,设置其下的参数。a) set ODI_SECU_DRIVER=oracle.jdbc.driver.OracleDriverb) set ODI_SECU_URL=主存储库urlc) set ODI_SECU_USER=主存储库用户名d) set ODI_SECU_ENCODED_PASS=主存储库密码(agent encode 命令获得)e) set ODI_SECU_WORK_REP=工作库名称f) set ODI_USER=用户名(必须拥有建立代理权限)g) set ODI_ENCODED_PASS=ODI用户密码(通过agent encode 获得)agent encode 的使用方法是,进入dos命令模式,用cd命令将路径转换至安装目录下的. oracledibin文件夹,运行agent encode 123 ,下面出现的一行字母就是加密后的密码123.参数配置完成后,如下set ODI_SECU_DRIVER=oracle.jdbc.driver.OracleDriverset ODI_SECU_URL=jdbc:oracle:thin:172.20.32.153:1521:dssset ODI_SECU_USER=odi_mainset ODI_SECU_ENCODED_PASS=aYyp37qE12nzRmDjPuph6yset ODI_SECU_WORK_REP=ODI_WORKset ODI_USER=SUPERVISORset ODI_ENCODED_PASS=d1yHgFfqM2qHRsGwdLRtAAKy(2)建立代理a. 新建物理代理打开Toplogy Manager,点击左侧物理体系结构选项卡,右击代理选择插入代理,弹出新建代理的窗口。名称填写agent_test;主机填写作为代理的的IP地址;端口是自动生成的,如果不冲突就不用更改;最大会话数,是说代理可以允许同时运行的会话数,默认为1000。点击确定。b. 新建逻辑代理在Toplogy Manager中,窗口左侧选择逻辑体系结构选项卡,右击代理选择插入逻辑代理。名称填
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家事业单位招聘2025中央财经大学学校办公室收发室岗招聘1人(非事业编制)笔试历年参考题库附带答案详解
- 南昌市2025江西南昌动物园招聘1人笔试历年参考题库附带答案详解
- 商品收纳培训课件
- 2025浙江舟山国家远洋渔业基地建设发展集团招聘14人笔试参考题库附带答案详解
- 2025数字重庆公司下属智算科技分公司招聘29人笔试参考题库附带答案详解
- 2025年度国家计算机网络应急技术处理协调中心省级分中心公开招聘21人笔试参考题库附带答案详解
- 2025国网湖南省电力有限公司高校毕业生招聘约390人(第二批)笔试参考题库附带答案详解
- 2025四川眉山市国有资本投资运营集团有限公司招聘50人笔试参考题库附带答案详解
- 2025内蒙古鄂尔多斯市天安公交集团招聘21人笔试参考题库附带答案详解
- 2025中远海运博鳌有限公司“启明星”等你来笔试参考题库附带答案详解
- 穴位按摩法操作评分标准
- 充电站运营管理制度(参考模板)
- 体育与健康教学设计《手倒立前滚翻》
- NISP一级考前模拟训练题库200题(含答案)
- JJG 20-2001标准玻璃量器
- 2024外研版初中英语单词表汇总(七-九年级)中考复习必背
- 《大数据平台部署与运维》课程标准(含课程思政)
- 英语中的时间表达(示范课例)
- 脊柱外科进修汇报
- 《史记》上册注音版
- 苏州大学文学院语言学纲要课程笔记
评论
0/150
提交评论