摘 要:伴随着高校数字化校园建设的加速,信息孤岛现象变得目益严重。建立数据交换与共享平台可以有效的解决高校目前普遍存在的各部门应用系统数据孤立、数据不一致等问题,同时为学校决策分析提供数据支持。本文详细分析了Oracle数据整合工具(ODI),再结合高校的实际情况,用ODI作为主要工具来构建数据交换与共享平台,从而实现同构或异构数据库间的数据交换和共享。
关键词:数据集成;异构数据库;ODI;数据交换与共享
随着高校信息化进程的不断推进,高校各部门都纷纷自主建设了诸如教务、财务、学工、人事、招生、科研以及OA等信息管理系统,这些应用系统的使用不但有效地规范了各项工作流程,而且也提高了高校各个部门的办事效率。但在应用系统建设过程中,各个部门之间的应用系统在不同的数据库平台上运行,应用系统之间数据的交换、共享和集成出现了瓶颈。而现实中高校信息化建设步伐的不断加快,各个部门应用系统之间的连接却越来越紧密,数据的统一、数据交换和数据共享需求则越来越迫切。这些问题如果解决不好,一定程度上会制约着高校信息化建设的发展步伐。因此,实现各应用系统之间的数据交换与共享成为高校信息化校园建设急待解决的关键问题。
一、 高校数据交换与共享的总体需求分析
需要通过数据交换与共享平台把分散于各个业务部门的数据抽取到本地,在逻辑上形成高度集成的数据交换和共享中心,然后再提供给上层的应用系统进行使用。我们需要做好以下需求分析:
(1)总体需求信息。哪些业务系统需要进行数据交换与共享,各业务系统与共享数据库之间需要对哪些信息进行交换,包括需要描述业务系统提供哪些数据给共享数据库、共享库需要提供哪些数据给业务系统以及共享数据库应该提供哪些数据给信息服务,并且要注意系统在集成过程的数据标准统一性问题。
(2)环境信息。包括各业务系统数据库和共享数据库,记录这些数据库访问端口、数据库用户的访问权限、数据库用户名和密码、数据库版本信息、数据库的类型、数据库所在主机的操作系统以及IP地址等信息。
(3)数据详细信息。需要详细记录数据集成中源表(或视图)和目标表的表结构、字段详细信息(如字段、数据类型、约束等)、字段之间映射关系、源与目标字段的转换关系、集成方式(增量集成还是全量集成)、数据集成时间周期等。
二、 数据共享与交换平台的架构
采用数据总线型的架构,其总体架构如图1所示。以共享库(也叫集成中心库)作为数据总线,各个业务系统都围绕数据总线接入的方式。业务系统数据到全局数据的集成过程中经过集成平台的 ETL(数据抽取、转换和加载)处理,最后供数据应用层全局使用。
(1) 数据源层:
数据源层主要是由高校各部门各业务系统的数据库组成。像图书馆系统数据库、人事处系统数据库、教务处系统数据库、学生处系统数据库等是主要的数据的提供者,是数据源。
(2) 数据集成平台
数据集成平台主要完成数据集成过程,其中包含集成框架、集成策略以及集成方法调用和对变化数据的捕获等。本文中,主要采用 ODI(Oracle Data Integrator)来作为数据交换与共享平台,来实现数据的集成。
(3) 数据存储层
共享库(也叫集成中心库)主要存储着集成数据和负责元数据以及数据标准的存储和管理,为上层各种应用提供基础数据,是面向各类综合应用的最权威的数据源。
(4) 数据应用层
在共享库的基础上实现对共享数据的查询、统计分析等综合应用。主要有高校信息门户系统信息的统一呈现、全局数据查询、数据标准查询、基于全局共享数据的多维分析以及决策分析等综合应用。
这样整体规划不但实现了实现高校各业务部门数据资源的交换、共享和整合,而且实现了各类应用系统数据集成过程中遵循统一标准,保证数据的准确性、一致性、有效性和完整性。这样既明确高校各部门应用系统数据库中核心数据的权威数据源,实现责权到位,又强化各个部门的信息化服务意识。为提高高校的信息化服务质量打好基础。
三、 Oracle 数据整合工具(ODI)
ODI(Oracle Data Integrator)是Oracle的数据集成类工具,和OWB一样,都是使用E-LT的理念(Extract、Load & Transform,即抽取、加载和转换)设计出来的数据抽取/数据转换工具,其体系架构如图2所示[1]。与传统的ETL(Extraction Transformation Loading)工具不同之处在于:ODI本身核心还是是ETL,只是ODI已经由传统的ETL转化为了ELT,先Load数据然后再进行转换;ODI推出ELT 架构,与传统的ETL 架构相比,少了中间的转换引擎,很多ETL 产品都需要安装自己的转换引擎,而ODI 直接调用源数据或目标数据服务器的数据库端;ODI在实施数据交换时提供了设计方法,以便更好地实施系统间的无缝集成和实时集成。
(一) ODI最主要组成
1. ODI 图形化软件
在开发环境中,ODI 图形化软件可以提供更友好的用户界面和更便捷的操作方式。实现了集成项目的创建、设计和编辑图形化,也实现了通过图形化界面对源、目标数据库的连接,以及对 Agent 的定义。
2. ODI Agent: Agent 属于运行时组件,它会根据设定的时间和周期方案自动调度执行创建好的项目和集成服务等。
3. 存储库:ODI 存储库由主要由一个主存储库和几个工作存储库组成。主存储库存储了在数据集成和转换过程中所用到配置信息、所有应用、项目、情景和执行日志的元数据。工作存储库主要用于保存创建的数据模型和项目信息。存储库可以安装在一个 RDBMS 上。
4. 知识模块(Knowledge Module):ODI 知识模块在 ODI 集成中替代了传统的手写代码的方式。所谓的知识模块就是一个个封装好的代码集合,ODI 自身包含了上百个常用的知识模块。在数据集成过程中可以根据实际需求选择不同的知识模块,也可以通过脚本扩展已有的知识模块,进而实现不同的数据处理目的。这种模式保证了代码的重复利用,具有很好的灵活性和可扩展性。
(二) ODI的特性和优势
支持异构数据:当数据源或者目的不是Oracle数据库,ODI能够生成针对那个数据源的native的SQL操纵语句。实时数据集成的环境:ODI能够检测事件,一个事件可以触发ODI的一个接口流程。从而完成近实时的数据集成。在数据抽取集成过程中可以和SOA集成,ODI本身提供了call web service的机制,并且ODI的接口也可以暴露为webService,从而可以和SOA环境进行交互[2]。支持一致的CDC(Change Data Capture),不同的数据源(Oracle,DB2等)对于变化数据获取都提供了不一样的技术框架,ODI把这些不同的技术框架屏蔽了,以一个统一的接口方式提供统一的CDC的设置框架,并提供订阅者的功能。
四、 通过 ODI工具进行数据同步实现数据交换与共享
基于 ODI 工具的上述特点,因此采用它来配置异构数据库间共享数据的同步和复制。利用 Oracle Data Integrator 工具实现数据同步分为设计和运行两个阶段。设计阶段的工作是,将集成的源数据库和目的数据库进行关联,根据集成的字段建立集成模型。运行阶段,ODI 工具将按照更新规则,实时或定时将源数据的变更复制到目的数据中。图3显示的正是利用 ODI 工具配置数据同步的主要步骤。
下面以人事系统与学工系统之间教职工基本信息的同步为例,介绍具体的配置过程。人事系统采用的是 Oracle10g 数据库,而行政办公系统采用的是 SQL Server 2005 数据库。配置的流程说明如下:
第一步,在 ODI 的 Topology 中建立分别为源数据和目标数据建立数据服务器,并设置对应的物理架构以及逻辑架构。 一个物理架构中可以对应多套上下文和逻辑架构,一个逻辑架构中也可以对应多套上下文和物理架构[3]。在本例中,人事系统为源数据服务器 SourceData_HR,物理架构为 SourceData_HR.ryxx,逻辑架构为 SRC_ORACLE_ryxx,与物理架构相对应;学工系统为目标数据服务器Target_XG,物理架构为 Target_XG.ryxx,逻辑架构为 TRG_SQL_ryxx。
第二步,在 ODI 的 Designer 中创建模型。 分别选择源数据和目标数据中需要同步的表或视图并进行反向。分别根据源数据和目标数据的技术以及逻辑架构创建各自的模型,并在“反向”标签下选择上下文,并设置要进行反向的类型为表。在"选择性反向"标签下,选中"选择性反向"和"要进行反向操作的对象",在"表名称"中,分别选择人事系统中的教职工基本信息表(HR_JZGJBXX)和学工系统中的教职工基本信息表(XG_JZGJBXX),并执行反向操作,这样这两个表的结构就被导入到 ODI 中。
第三步,创建一个项目Pr_HR_XG,然后导入知识模块。 这里主要需要导入的是 LKM(load KM)和 IKM(Integration KM)两个知识模型。LKM 完成从源数据库数据加载到临时表;IKM 完成从临时表的数据加载到目标表[4]。
第四步,建立接口,将源数据表中的字段和目标数据表中的字段一一建立映射关系,并选择相应的知识模块。在本例中,先建立接口 TGT_USER_INT,然后创建 HR_JZGJBXX 表到 XG_JZGJBXX 表的映射,选择 HR_JZGJBXX 表中的字段工号、姓名、性别、部门、状态,分别与 XG_JZGJBXX 表中的字段相对应。接下来进入流标签,选择知识模块,这里选择的是 LKM Oracle to SQL Server。然后执行接口,查看执行情况。如出现错误,则对接口进行调整。
第五步,在项目中创建包,然后生成方案,再定义执行计划,在计划中设置定时同
步的时间以及频率等信息。 例如可以设置的同步时间为每天早晨 7点进行同步。计划设置完成后,进入 DOS命令窗口,在 ODI 安装目录下输入以下代码启动 Scheduler Agent: agentscheduler “-port=20910” “-name=local_agent” “-v=5”,代码中 port 是指物理代理的端口,name 是指物理代理的名称,v 是指日志等级。 这样就实现了人事系统和学工系统间教职工基本信息的定时同步。
五、 结束语
本文提出基于ODI的校园同构或异构数据库数据交换与共享的解决方案,并对数据交换与共享平台进行了设计,提供了一种信息化校园同构或异构数据源数据集成的有效方法,通过该方法能够方便、有效的解决目前高校普遍存在的数据交换与共享的问题,从而实现校园各数据库数据的统一集成,各部门之间的业务系统数据流通更顺畅。高校数据交换平台是整个数字化校园中的核心组成部分,是高校数字化校园中数据交换枢纽和数据传输控制中心。通过ODI数据交换平台的建设可将高校各业务系统的数据进行清洗、整合和统一存放,既完成了整个校园范围内的信息共享,为数据的查询和分析奠定基础,又同事保留了各业务系统原有的数据库,保证了各业务系统之间的互通性以及各自的完整性[5]。 所以通过基于ODI的高校数据交换与共享方案的有效实施,可以顺利解决高校中普遍存在各业务系统之间的数据获取不及时、数据不一致、信息重复、信息孤岛等问题,对高校的信息化建设有一定的现实意义。
【参考文献】
[1]孔存金.数字化校园共享数据中心建设研究[D].北京:北京大学学位论.
[2]王旭,蒋东兴,陈怀楚.大学资源计划的理论与发展[J].教育信息化.2005(11):18-21.
[3]肖麒.数据交换平台技术在校园管理中的应用[D].江苏:浙江大学学位论文,2009.
[4]STEYAERT J.Local governments online and the role of the resident government shop versus electronic community[J].Social Science Computer Review,2000,18(1):9~19
[5]Lobria Jeribi,Beatrice Rumpler,Jean Marie Pinon.Personalized Information Retrieval in Specialized Virtual Libraries[J].New Library World,2000,101(11):33~39