【ODI】| 数据ETL:从零开始使用Oracle ODI完成数据集成(二)
前一节已经完成了Oracle数据库和ODI的安装,并已经为ODI在Oracle数据库中创建了两个用户,分别用于存放主资料库数据和工作资料库数据,在ODI中完成主资料库和工作资料库的创建,也分别为其创建了登陆用户,最后,登陆到ODI的工作资料库中,在工作资料库中,我们就可以完成数据的集成工作了,下面是一个简单的数据集成工作场景,我们用ODI完成这项工作。
浏览前一节请点此:【ODI】| 数据ETL:从零开始使用Oracle ODI完成数据集成(一)
4. 工作场景说明
工作场景说明:
业务系统A使用SQL Server2012数据库,数据库名称为A_SRC,有表T_USER,JGH为主键,表结构及数据如下:

业务系统B使用Oracle数据库,实例名为orcl,用户名为B_TAG,有表T_EMP,EID为主键,表结构及数据如下:

用ODI将A系统中表T_USER的数据集成到B系统中的表T_EMP中。
在ODI中完成上面的工作需要经过下面的步骤:
创建物理体系结构》》创建逻辑体系结构》》创建模型》》创建项目》》创建接口》》执行接口。
如果我们要接口能够自动定时、定期执行,就还需求创建代理,用代理完成接口的执行,关于代理的使用,后面再另开一节。
5. 创建物理体系结构
(1)创建源系统物理体系结构(系统A,SQL Server2012数据库,数据库名A_SRC)
ODI登陆到工作资料库>>【拓扑】>>【物理体系结构】>>【技术】>>【Microsoft SQL Server】,单击右键选择【新建数据服务器】。

数据服务器【定义】标签配置界面如下图所示:

数据服务器【JDBC】标签配置界面如下图所示,JDBC驱动程序可以点击文本框后面的放大镜选择,JDBC URL自行输入数据库服务器的IP地址以及端口(SQL Server默认为1433)。

配置完成后,点击ODI的【保存】按钮,系统会弹出要求创建一个物理方案,【确定】即可。

下面为源系统创建物理方案,展开【物理体系结构】下面的【Microsoft SQL Server】,即可看到刚创建的【J_WL_SRC】,单击右键选择【新建物理方案】。

源系统物理方案【定义】标签配置界面如下图所示,输入源系统数据库名称及所有者即可。输入完成后点击保存,系统会弹出没有指定上下文的警告对话框,先忽略之。

(2)创建目标系统物理体系结构(系统B,Oracle数据库,实例名orcl,用户名B_TAG)
ODI登陆到工作资料库>>【拓扑】>>【物理体系结构】>>【技术】>>【Oracle】,单击右键选择【新建数据服务器】。

数据服务器【定义】标签配置界面如下图所示:

数据服务器【JDBC】标签配置界面如下图所示,JDBC驱动程序可以点击文本框后面的放大镜选择,JDBC URL自行输入数据库服务器的IP地址以及端口(Oracle默认为1521)及实例名。

配置完成后,点击ODI的【保存】按钮,系统会弹出要求创建一个物理方案,【确定】即可。下面为目标系统创建物理方案,展开【物理体系结构】下面的【Oracle】,即可看到刚创建的【J_WL_TAG】,单击右键选择【新建物理方案】。

目标系统物理方案【定义】标签配置界面如下图所示,输入目标系统Oracle数据库用户名即可。输入完成后点击保存,系统会弹出没有指定上下文的警告对话框,先忽略之。

OK,物理体系结构已经建立完成,最终结果如下图所示:

6. 创建逻辑体系结构
(1)创建源系统逻辑体系结构(系统A,SQL Server2012数据库,物理方案名J_WL_SRC)
【拓扑】>>【逻辑体系结构】>>【技术】>>【Microsoft SQL Server】,单击右键选择【新建逻辑方案】。

逻辑方案【定义】标签配置界面如下图所示,在上下文对应的地方选中刚创建的源系统物理方案。保存即可。

(2)创建目标系统逻辑体系结构(系统B,Oracle数据库,物理方案名J_WL_TAG)
【拓扑】>>【逻辑体系结构】>>【技术】>>【Oracle】,单击右键选择【新建逻辑方案】。

逻辑方案【定义】标签配置界面如下图所示,在上下文对应的地方选中刚创建的目标系统物理方案。保存即可。

7. 创建模型
(1)创建源系统模型(系统A,SQL Server2012数据库,源表T_USER)
【设计器】>>【模型】>>【新模型】

模型【定义】标签配置如下图:

模型【逆向工程】标签可以勾选要进行逆向工程的对象类型。根据实际情况,一般勾选表和视图即可。

通常源系统数据库中的表比较多,可以在【选择性逆向工程】标签中勾选需求中指定的表进行逆向工程。依据之前设定的工作场景,这里我们只勾选表T_USER,然后直接点击左上角的【逆向工程】按钮,会弹出【确认】对话框,点【是】即可。

逆向工程完成后即可在【模型】>>【J_MX_SRC】里看到表T_USER的结构。

(2)创建目标系统模型(系统B,Oracle数据库,目标表T_EMP)
【设计器】>>【模型】>>【新模型】

模型【定义】标签配置如下图:

同源系统逆向工程操作一样,此处【逆向工程】标签勾选表和视图。

同源系统逆向工程操作一样,在【选择性逆向工程】标签中勾选指定表进行逆向工程。依据之前设定的工作场景,这里我们只勾选表T_EMP,然后直接点击左上角的【逆向工程】按钮,会弹出【确认】对话框,点【是】即可。

逆向工程完成后即可在【模型】>>【J_MX_TAG】里看到表T_EMP的结构。

创建项目、接口,执行接口:【ODI】| 数据ETL:从零开始使用Oracle ODI完成数据集成(三)
【ODI】| 数据ETL:从零开始使用Oracle ODI完成数据集成(二)的更多相关文章
- 【ODI】| 数据ETL:从零开始使用Oracle ODI完成数据集成(三)
资料库的创建.体系结构的创建.模型反向工程都已经完成了,下面就是创建以及执行接口来完成工作了. 浏览前两节请点击: [ODI]| 数据ETL:从零开始使用Oracle ODI完成数据集成(一) [OD ...
- 【ODI】| 数据ETL:从零开始使用Oracle ODI完成数据集成(一)
0. 环境说明及软件准备 ODI(Oracle Data Integrator)是Oracle公司提供的一种数据集成工具,能高效地实现批量数据的抽取.转换和加载.ODI可以实现当今大多数的主流关系型数 ...
- 从零开始学习oracle
引用博客:https://blog.csdn.net/qq_36998053/article/details/82725765 )Oracle之<环境配置> (二)Oracle之<基 ...
- 【转】Oracle当中扫描数据的方法
本文将对oracle当中扫描数据的存取方法进行介绍. 1) 全表扫描(Full Table Scans, FTS) 为实现全表扫描,Oracle读取表中所有的行,并检查每一行是否满足语句的WHERE限 ...
- Oracle ODI系列之一(ODI知识模块)
Oracle ODI系列之一(ODI知识模块) ODI简介 ODI(Oracle Data Integrator)前身是Sunopsis Active Integration Platform ...
- 基于ETL技术的数字化校园共享数据中心设计
摘要:数据的抽取.转换与加载(ETL)是数据整合的核心过程.在分析高校信息化建设现状基础上,以建立数字化校园.整合数据资源.实现数据共享为目标,提出以ETL为基础建立共享数据中心实现数据整合的方案.介 ...
- 大数据ETL详解
ETL是BI项目最重要的一个环节,通常情况下ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败.ETL也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更 ...
- 分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节
1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | vie ...
- 实现从Oracle增量同步数据到GreenPlum
简介: GreenPlum是一个基于PostgreSQL数据库开发的MPP架构的数据库仓库,适用于OLAP系统,支持50PB(1PB=1000TB)级海量数据的存储和处理. 背景: 目前有一个业务是需 ...
随机推荐
- 基类包括字段“ScriptManager1”,但其类型(System.Web.UI.ScriptManager)与控件(System.Web.UI.ScriptManager)的类型不兼容
首先说下原先的情况,就是原本老项目的Web解决方案是使用.net framework 2.0的老版本, 所以机器也安装过Microsoft ASP.NET 2.0 AJAX Extensions..A ...
- Kudu vs HBase
本文由 网易云发布. 背景 Cloudera在2016年发布了新型的分布式存储系统--kudu,kudu目前也是apache下面的开源项目.Hadoop生态圈中的技术繁多,HDFS作为底层数据存储的 ...
- html居中定位
<!DOCTYPE html PUBLIC "-//W3C//Ddiv XHTML 1.0 divansitional//EN" "http://www.w3.or ...
- 浅谈编程语言中的新宠Python,你叫它如何不火?
论述 凡是对编程有所关注的朋友都已经知道,Python公布于1991年,即使出现的时间不是很遥远,但是在众多爱好者的贡献下已经发展到全民Python的地步. Python最近火起来的笼统原因:面向企业 ...
- What is RandomCharacter.getRandomLowerCaseLetter() ?????
今天在看书顺便打打书上的代码时,看到这么一个方法的调用RandomCharacter.getRandomLowerCaseLetter()! 年轻的我看到这一大串单词时还以为是JDK自带类里面方法Or ...
- 闲聊 “今日头条Go建千亿级微服务的实践”
背景 今天跟同事偶然看到<今日头条Go建千亿级微服务的实践>文章,故做了一些探讨,与大家分享下,也欢迎大家多多共同探讨!. 其他资料: 如何理解 Golang 中“不 ...
- java定时任务调度-Timer(1)
一.定义 有且仅有一个后台线程对多个业务线程进行定时定频率的调度 二. Timer ----> Timer Task (中有run();方法) 通过 new Timer().schedul ...
- 字符流Reader和Writer
1.Rader是字符输入流的父类. 2.Writer是字符输出流的父类. 3.字符流是以字符(char)为单位读取数据的,一次处理一个unicod. 4.字符类的底层仍然是基本的字节流. 5.Read ...
- 对于spring中事务@Transactional注解的理解
现在spring的配置都喜欢用注解,这边就说下@Transactional 一.如何开启@Transactional支持 要使用@Transactional,spring的配置文件applicatio ...
- shell 中的for、while循环及if语句
shell与其他语言一样也支持for.while循环 for循环的一般格式如下: #!/bin/sh for 变量 in 列表 do command command command ......... ...