结合使用接口和 ODI 约束开发 ODI XML 到数据库的转换

17 篇文章 0 订阅

主题

本 OBE 教程包括下列主题:

将鼠标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:此操作会同时加载所有屏幕截图,网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。

这些屏幕截图不能反映用户的具体环境。只是说明如何在 Oracle Data Integrator 中找到特定功能。

概述

Oracle Data Integrator 能够在使用 ODI 约束或数据库约束加载到目标期间验证数据。使用流控制根据约束检查这些数据时,发现的任何错误都不会加载到目标,而是加载到由 ODI 创建并管理的错误表。该表的每一行代表一条未通过约束的记录,其中包括记录受拒原因的消息列。
该表的编辑可在 ODI Designer 内进行或由其他任何可编辑关系表的工具进行。然而,对最终用户或业务用户而言,这并非始终是一个便利的数据编辑方法。本示例将使用 ODI 接口。或者,您可以构建一个 ODI 过程通过约束加载 XML 文件。

返回主题列表

情景

Linda 是 Mydo Main Corporation 的数据库管理员。在 Mydo Main,Linda 负责执行关于机构内各种资源的数据库管理和集成任务。她需要构建一个 ODI 方案以通过约束将 XML 文件加载到关系表。约束将仅允许加载通过检查约束验证的数据。任何未通过约束的行都将加载到目标数据库上的一个表中。将执行此 ODI 方案,在 ODI 数据集成流程结束后,此 ODI 方案将回调至 BPEL Web 服务以通知加载期间出现的任何错误。

 

返回主题列表

验证前提条件

在启动任务前,确保您的系统环境满足以下要求:

软件要求

系统应该已安装以下产品:

  • Oracle SOA 套件 10g (10.1.3.1.0)
  • Oracle 数据库 10g 快捷版
  • Oracle Data Integrator 10g (10.1.3.4)
  • Oracle Data Integrator 10.1.3.4.2 补丁(来自 MetaLink)。要获取这一补丁,执行以下步骤:
    1. 转至 http://metalink.oracle.com
    2. 用您的用户名和口令登录。
    3. 单击 Patches and Updates 选项卡,然后单击 Simple Search
    4. Search By 下拉列表中,选择 Product or Family 并输入 odi
    5. 单击 Go 下载该补丁。
  • Axis2 1.2 框架。要进行安装,执行以下步骤:
    1. 转至 http://www.mirrorgeek.com/apache.org/ws/axis2/1_2/axis2.war 并将 axis2.war 下载至 C:/temp
    2. 使用以下命令将 axis2 应用程序部署至 Oracle Application Server Containers for J2EE (OC4J):java -jar admin_client.jar
      deployer:oc4j:opmn://localhost:6004/as1013/home oc4jadmin oracle1
      -deploy -file c:/temp/axis2.war -deploymentName axis2 -contextRoot
      /axis2
    3. 使用 URL http://localhost:8888/axis2/axis2-web/index.jsp 访问 Axis2 页面。
    4. 使用 admin 作为用户名以及 axis2 作为口令登录。

系统应具有以下配置:

  • ODI Master 和 Work 信息库已创建。您可以参考此处的步骤。
  • 适用于本练习目标表的模式 (ODI_STAGE) 和 ODI Topology Manager 内适用于该模式的数据服务器和物理模式。为此,执行以下步骤:
    • 启动 Oracle 数据库 10g XE 管理控制台。
    • 使用 admin 作为用户名以及 oracle1 作为口令登录。
    • 在 Enterprise Manager Console 中,单击 Administration > Database Users > Create Users
    • 输入用户名 ODI_STAGE 和口令 oracle1
    • 选中 DBA 复选框并单击 Create。您会看到 ODI_STAGE 已创建。
    • 选择 Start > All Programs > Oracle > Oracle Data Integrator > Topology Manager 打开 ODI Topology Manager。
    • 下滚至左下窗格,单击 The physical architecture... 选项卡。
    • 在左上角,单击 Physical Architecture 窗格中的 + 符号展开 Technologies > Oracle
    • 右键单击 Oracle 并选择 Insert data server
    • Data server:new 窗口显示。输入 Local_XE 作为名称、XE 作为 Instance / dblink (Data Server)、ODI_STAGE 作为用户以及 oracle1 作为口令。接下来,单击 JDBC 选项卡。
    • 对于 JDBC Driver 值,单击 Browse 并从 Name 下拉列表中选择 Oracle JDBC Driver。然后单击 OK
    • 对于 JDBC URL,单击 Browse 并单击 jdbc:::,然后单击 OK。根据您的环境详细信息填充这些值。
    • 单击 Test,然后单击 OK
    • 在 Data server: new 窗口中单击 OK
    • 在 Physical Architecture 窗格中,单击 + 符号展开 Technologies > Oracle > Local_XE
    • 在 Physical Schema:Local_XE.Schema 窗口中,选择 Definitions 选项卡下 Schema (Schema) 和 Schema (Work Schema) 下拉列表中的 ODI_STAGE
    • 单击 Context 选项卡。
    • 单击 Add context。在 Context 下拉列表中选择 Global,输入 ODI_STAGE 作为 Logical schema。
    • 单击 OK

    如果之前未完成,则需要启动数据库 10g XE、Oracle Data Integrator 10g(10.1.3.4) 以及 Oracle SOA 套件 10g 的服务和组件。

返回主题列表

在 ODI 中新建项目


项目是用户创建的 ODI 对象的集合。其中应包含一个功能域。每个项目都有自己的知识模块、变量、标记和其他类型的对象。这些对象可通过复制在不同项目之间进行共享。您还可使用全局对象(如变量或序列)定义所有项目公用的参数。在集成流程中或需要使用 ODI 开发的集成项目中,使用项目表示功能域。

要在 ODI 中新建项目,执行以下步骤:

1.

选择 Start > All Programs > Oracle > Oracle Data Integrator > Designer 打开 ODI Designer。

 

 

2.

Oracle Data Integrator Login 对话框显示。从 Login Name 下拉列表中选择 Repo_designer

 

3.

默认用户名和口令分别是 SUPERVISORSUNOPSIS。单击 OK 登录。

 

4.

在左下窗格中,单击 Projects 选项卡。

 

5.

您会看到 Projects 窗格显示在左上角。右键单击并选择 Insert Project

 

6.

Project:New 窗口显示。输入 ODI_ER_HSP 作为名称。您会看到 Code 值也使用相同文本填充。然后,单击 OK 查看 Projects 窗格中填充的新项目。

 

 

返回主题列表

为 XML 文件插入新模型

要为 XML 源文件插入新模型,执行以下步骤:

1.

在 ODI Designer 中,滚动至左下窗格并单击 Models 选项卡。

 

 

2.

Models 窗格显示在左上角。右键单击并选择 Insert Model

 

3.

在 Model:New 窗口中,需要为新模型输入值。为此,提供以下参数,然后单击 Reverse 选项卡。

参数
NameSRC_GEO_DIM_XML
TechnologyXML
Logical SchemaXML_DEMO_GEO

 

4.

在 Reverse 选项卡中,从 Context 下拉列表中选择 Global。然后,向下滚动并单击 Reverse。这将生成 XML 源。

 

 

5.

单击 Yes 确认。然后,单击 OK

 

6.

在 Models 窗格中,您可能会注意到正在填充新数据存储。单击 + 符号展开并查看 SRC_GEO_DIM_XML 模型。

 

返回主题列表

 

为数据库表 CLIENT 插入模型

该任务需要一个关系逻辑模式。我们已在 Oracle XE 内建立了一个新模式 ODI_DATA。在拓扑管理器内也为 ODI_DATA 模式建立了一个新的物理模式。要为 CLIENT 表插入模型,执行以下步骤:

1.

单击 Start > All Programs > Oracle > Oracle Data Integrator > Topology Manager 打开 ODI Topology Manager。

 

2.

Security Repository Connections 对话框显示。从 Login Name 下拉列表中选择 repository,然后单击 OK

默认用户名和口令分别是 SUPERVISORSUNOPSIS

 

3.下滚至左下窗格,单击 The physical architecture... 选项卡。

 

 

4.

在左上角,单击 Physical Architecture 窗格下的 + 符号展开 Technologies > Oracle > Local_XE > Local_XE_ODI_STAGE

 

 

5.

右键单击 Local_XE_ODI_STAGE 模式并选择 Edit

 

6.

在 Physical Schema:Local_XE_ODI_STAGE 窗口中,在 Definition 选项卡中,将 Errors 的值从 E$_ 更改为 E$,然后单击 OK

 

 

7.

在 ODI Designer 中,单击 Models 选项卡。

 

 

8.

在 Models 窗格中,右键单击并选择 Insert Model

 

 

9.

在 Model:New 窗口中,提供以下值:

参数
NameRDBMS_TARGET
TechnologyOracle
Logical SchemaODI_STAGE

 

 

 

10.

单击 Reverse 选项卡。从 Context 下拉列表中选择 Global,然后单击 OK

 

 

11.

在 Models 窗格中,单击 + 符号展开 RDBMS_TARGETSRC_GEO_DIM_XML

 

 

12.

在 SRC_GEO_DIM_XML 下,右键单击 CLIENT 并选择 Duplicate

 

 

13.

单击 Yes

 

 

14.

将新的重复的 Copy of CLIENT 从 SRC_GEO_DIM_XML 模型拖至 RDBMS_TARGET 模型。接下来,右键单击 RDBMS_Target 内的 Copy of CLIENT 数据存储并单击 Edit

如果 Object Locking 对话框显示,单击 No

 

15.

在 Data Store:Copy of Client 窗口中,将名称更改为 CLIENT 并单击 OK

RDBMS_TARGET 上未创建物理表。在运行接口时,它将创建 CLIENT 物理表。

 

 

返回主题列表

 

删除 CITY_CLIENT 的约束副本

在复制 CLIENT 数据存储期间,针对 XML 文件的约束也会进行复制。要删除该约束,执行以下步骤:

1.

在 ODI Designer 中的 Models 窗格下,单击 + 符号展开 RDBMS_TARGET > CLIENT > Constraints > CITY Copy of CITY_CLIENT

 

 

2.

右键单击 CITY Copy of CITY_CLIENT 并选择 Delete。单击 Yes 确认。

 

返回主题列表

 

在 CLIENT 数据存储上设置 ODI 约束

要在 CLIENT 数据存储上设置 ODI 约束,执行以下步骤:

1.

在 ODI Designer 中,展开 RDBMS_TARGET > CLIENT > Constraints。然后右键单击 Constraints 并选择 Insert Condition

 

 

2.

在 Condition:New 窗口中,输入以下值,然后单击 OK

参数
NameAgeConstraint
TypeOracle Data Integrator
Wherecast(Client.age as numeric) >=21
MessageClient must be at least 21 years old

 

返回主题列表

 

 

导入知识模块

创建接口之前,将加载和集成 XML 数据所需的 LKM 和 IKM 导入项目。为此,执行以下步骤:

1.

在 ODI Designer 中,单击 Projects 选项卡。

 

2.

单击 + 符号展开 ODI_ER_HSP > Knowledge Modules > Loading

 

 

3.右键单击 Loading 并选择 Import Knowledge Modules

 

 

4.

Import Knowledge Modules...(XML FIle) 对话框显示。单击 File Import Directory 域中的 ... 按钮。浏览至 I:/ODI/oracledi/impexp 并单击 OK

 

 

5.

在 Select the file(s) to import 部分中,向下滚动并选择 LKM SQL to SQL,然后单击 OK

 

6.

同样,对于 Knowledge Modules 下的以下选项,选择突出显示的值。

参数
IntegrationIKM SQL Control Append
CheckCKM SQL

最终展开的 Knowledge Modules 将如下所示:

 

 

返回主题列表

 

 

创建用于加载 XML 文件的新接口

要创建用于加载 XML 文件的新接口,执行以下步骤:

1.

在 ODI Designer 中的 Projects 窗格内,单击 + 符号展开 ODI_ER_HSP > First Folder > Interfaces

 

2.

右键单击 Interface 并选择 Insert Interface

 

3.

Interface:New 对话框显示。在 Definition 选项卡上,输入以下值:

参数
NameINT_LOAD_TBL_CLIENT
Staging Area Different From TargetSelect this option.
MemorySUNOPSIS_MEMORY_ENGINE

 

4.

单击 Diagram 选项卡。接下来,单击 Models 选项卡将源和目标拖至 ODI designer。将 CLIENT 数据存储从 SRC_GEO_DIM_XML 拖入 Source 容器。将 CLIENT 数据存储从 RDBMS_TARGET 拖入 Target 容器。

 

 

5.

单击 Yes

 

6.

向下滚动并选中 Key 复选框。

 

 

7.

单击 Flow 选项卡查看执行流。

 

 

8.

在 Target (XML_GEO_DIM) 对话框中,从 RECYCLE_ERRORS 下拉列表中选择 Yes

 

 

9.

CREATE_TARG_TABLE 下拉列表中选择 Yes

 

 

10.

单击 Controls 选项卡并向下滚动单击 Apply

如果 Object Locking 对话框显示,单击 No

 

返回主题列表

要执行该程序包,执行以下步骤:

1.

单击 Execute

 

 

2.

在 Execution 对话框中,保留默认值并单击 OK,然后再次单击 OK

 

3.

选择 Start > All Programs > Oracle > Oracle Data Integrator > Operator 打开 ODI Operator。从 Login Name 下拉列表中选择 Repo_designer 并单击 OK

默认用户名和口令分别是 SUPERVISORSUNOPSIS

 

4.

在左下窗格中,单击 Hierarchical Sessions 选项卡。在窗格中,向上滚动并单击 + 符号展开 Date > <执行日期> Steps > <加载步骤>

您会看到加载执行的详细步骤。这表明 ODI 接口将一个 XML 文件导入数据库表 CLIENT 中。

 

返回主题列表

 

 

查看接口执行的约束错误

要查看或约束接口执行的错误,执行以下步骤:

1.

在 ODI Designer 中的 RDBMS_TARGET > CLIENT 下,右键单击选择 Control > Errors

 

 

2.

在 Error:CLIENT 对话框中查看值。目标模式上的 E_CLIENT 表现在可更新,在接口的后续执行中,E_CLIENT 表的行由 ODI 进行回收。如果行通过约束,则将加载至目标。单击 OK

本文转自:http://www.oracle.com/technology/global/cn/obe/fusion_middleware/odi/odixml_to_db_transform/odixml_to_db_transform.htm?_template=/ocom/print

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值