Oracle Data Integrator(ODI)

ODI开发(Oracle Data Integrator)

ODI就是一个导数的工具,用IMP,EXP加个FTP和定时crontab一样可以实现导数,只不过,odi更加强大,可以实现更多的功能,等你上个项目,当你接口实现不了需求的时候,你就知道要用存储过程了,odi可以刷新执行,定时执行,不同的库数据导给同一个库用来出报表,大致如此,没有必要扣什么数据挖掘,除非售前也归你,向客户兜售ODI,才需要扯一些什么数据仓储,数据挖掘之类的。

 

oracle的数据加载工具,说白了,就是不同库,或不同用户下的数据传输工具。上网上下载个操作说明,先在本地安装一个ODI,熟悉熟悉操作就行了。

 主要有三个工具:

1、Topology manager定义物理和逻辑架构,就是配置不同库的url,sid什么的。

2、Designer进行数据传输的操作(不同库表数据的传输,传输方式很多种(牛B之处))

3、Operator查看数据传输的结果(传输成功,还是失败,失败的原因等等)。

 

事实表和维表

事实表和维表多对一的关系。

比如事实表每条记录对应一次洗衣粉销售行为,其中一个字段为洗衣粉品牌代码;而维表中保存唯一的品牌和品牌代码,两表通过代码关联;这样就可以从品牌的角度对洗衣粉销售进行分析。

 

其实主要的区别我想是:

事实表是记录你要分析的东西;

维表是你要用来度量你要分析指标的东西;

就是说一个是对象,一个是尺度。

 

维度:   

多维数据集的一种结构特性,是描述事实数据表中的数据的类别(级别)的有组织的层次结构。这些类别通常描述相似成员的集合,用户要根据它们进行分析。

 

FS表和F表是怎么产生的?

不是ODS层导过来的,是自己手动创建的。

 

ETL层中:(ODI相当于一个ETL工具)

         ODS:直接从数据源表导入所有数据

         SDE:产生FS事实表,FS表从其他表中获取数据,用视图实现

         SIL:根据FS表和其他与维度相关的表产生F维表

处理完后的数据会形成 DW数据仓库

 

ODS层接口,主要是完成从各业务源系统到ODS的数据抽取和集成,该过程的原则是尽量保持ODS层的表结构和数据与各业务源系统的表结构和数据一致。

SDE层,是完成从ODS的数据导到数据仓库DW的表的提前步骤。从ODS的数据到DW前,都会在先加载到SDE层的临时表,然后在SIL层的时候再导入DW表。

SIL层将数据从SDE临时表里加载到DW表,其中事实表在SIL过程中,需要把对应的维度字段转换成维表生成的代理键。

 

(一下过程不涉及SDESIL

创建主资料库->创建工作资料库(->创建源数据库和目标数据库)->创建数据服务器(在物理体系结构模块下)->创建物理方案->创建逻辑方案(可单独创建或者创建物理方案时自动创建)->创建表->创建模型->逆向工程模型->创建项目->导入知识模块->创建接口->映射、快速编辑、流(上下文Global->执行

 

这其中会涉及到ODI的操作,先由设置物理层和逻辑层,物理层是和数据源的JDBC URL关联,逻辑层和物理层一一对应其命名一般都保持一致,转到模型新建模型,每个模型和一个逻辑层关联,新建反向表,反向表是不含数据的表结构,反向表弄好后转到项目,新建文件和接口,再就是在关系图中将源表和目标表映射起来,这些表需要从模型中拖来再在中选择目标表选择 IKM SQL control append truncate设为是。建立好接口后执行接口将数据跑到目标表中。整个过程完成。详见10GODI\Oracle Data Integrator.doc11GODI\浙江电子口岸BI项目_ODI操作手册.doc ODI\Oracle__Data_Integrator的使用教程.doc

 

逆向工程的实质就是通过刚才建立的逻辑和物理方案连接到数据库,将源表和目标表的表结构等信息(源数据)导入到模型中。

只导入了源表的结构信息,源表数据是怎么通过执行接口就迁移到了目标数据表中呢???

源表通过逻辑架构迁移到了目标数据表中,一个模型中会有一个对应的逻辑架构

 

通常来说一个接口的迁移过程中,应该至少包含LKMIKM知识模块,LKM负责将数据从源表装载至临时区域,IKM负责将数据从临时区域再整合进入目标表。

 

增量过滤器

>=TO_DATE('#BI_CLAIM_LAST_EXTRACT_DATE_VAR','YYYY-MM-DD')

WID

一般由对应表的序列的nextval

ODI常见错误

1.      缺少某个字段,会提示某个字段不存在

2.      LKM选择问题修改后删掉同义词,会提示数据库连接出错(ORA-02019: connection description for remotedatabase not found

3.      FULL表中TRUNCATE属性设置为是;FLOW CONTROL设置为否,否则会在delete previous出错

4.      name isalready used by an existing object,删除和表名相同的同义词     

5.      invalidrelational operator,过滤器里面缺少条件或者符号(>=

6.      0 : 08S01: com.microsoft.sqlserver.jdbc.SQLServerException:不支持此服务器版本。目标服务器必须是 SQL Server 2000或更高版本。原因是字段为空?

7.      2287 :42000 : java.sql.SQLException: ORA-02287: sequence number not allowed here

 

8.      936 :42000 : java.sql.SQLException: ORA-00936: missing expression

是因为缺少主键

9.      942 :42000 : java.sql.SQLException: ORA-00942: table or view does not exist

错误原因是创建表出错,找到建表的步骤即找到第二步,查看执行,发现错误原因如下

 

10.  当有很大的数据量时将下面策略设置为NONE可加快速度

 

11.  1747 :42000 : java.sql.SQLException: ORA-01747: invalid user.table.column,table.column, or column specification

IKM的选择问题

12.  接口执行错误

原因是开启了 FLOW_CONTROL

 

13.      LKM SQL to Oracle 会创建临时表所以慢,DBlinkto Oracle 不创建临时表所以快。

 

14.      0 : 08S01 :com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机172.18.84.32 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。

 

原因连接SqlServer数据库出错。

15.      911 : 42000 :java.sql.SQLException: ORA-00911: invalid character

KM中多了一个分号,KM每一句不需要分号。

 

16.      1400 : 23000 :java.sql.SQLException: ORA-01400: cannot insert NULL into("EDW"."DW_SUPPLIER_COUNT_F"."SUPPLIER_WID")

笼统上wid不要设置成not null也可能是其他原因造成的

 

17.      12170 : 66000 :java.sql.SQLException: ORA-12170: TNS:Connect timeout occurred

资源被抢占了

 

Contents Document Control ii 1. ODI基础 2 1.1. 参考资料 2 1.2. ODI基础 2 1.3. ODI理解之1 6 1.4. ODI组件 6 1.5. ODI安装 8 1.6. 服务和菜单 10 1.7. 基本训练 10 2. 完整的简单例子(资料库、体系结构、项目、模型、接口、包、方案) 11 2.1. ODI理解之2 11 2.2. 环境准备 12 2.3. 创建资料库 13 2.4. 创建物理体系结构 17 2.5. 创建逻辑体系结构 20 2.6. 创建项目 20 2.7. 创建模型 21 2.8. 创建接口 23 2.9. 运行接口 25 2.10. 监控和查看会话状态 26 2.11. 创建并运行包 27 2.12. 创建并运行方案 28 2.13. ODI理解之3 28 3. 最常用特性和功能实例一(CDC、Agent、Schedule) 30 3.1. ODI理解之4 30 3.2. ODI理解之5(CDC) 30 3.3. O2O CDC(Simple) 32 3.4. O2O CDC(Consistent Set) 35 3.5. O2O CDC(Consistent Set Using Log Minner) 41 3.6. Agent 42 3.7. Schedule 43 4. 最常用特性和功能实例二(SQL Server、XML) 45 4.1. Oracle to SQL Server 45 4.2. SQL Server to Oracle 46 4.3. XML to Oracle 47 5. Sequence、Variable、User Function、Procedure 50 5.1. 作用域 50 5.2. Variable变量 50 5.3. Sequence序列 51 5.4. User Function自动义函数 53 5.5. Procedure过程 54 5.6. Procedure最简单的例子 55 5.7. 在Procedure中用序列、函数 56 6. Knowledge Module 58 6.1. 客户化KM最佳简单例子 58 7. Package及ODI工具箱 59 7.1. 概述 59 8. Web Service 61 8.1. 安装Public Web Services 61 8.2. 设置Data Services 61 9. FAQ&How To 62 9.1. 常见问题 62 9.2. 中英文名词 62 9.3. 对象加密 63 9.4. Agent负载均衡 63 9.5. Jython 63 9.6. Substitution Methods 64 9.7. 常用代码块 64 9.8. 命令行工具 64 9.9. 升级 65 9.10. 用户权限 65 9.11. 安装Metadata Navigator 67 9.12. 安装Lightweight Designer 68 10. 专题 70 10.1. DBLink 70 10.2. 对象冲突 70 11. Open and Closed Issues for this Deliverable 71 Open Issues 71 Closed Issues 71
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值