Oracle Data Integrator(简称ODI)是一款E-LT架构的数据集成软件,在当前主流的MPP、大数据平台、高性能服务器平台下,利用ODI,可充分利用目标集群的计算资源和并行处理优势。
以下是ODI代理一般的执行流程:

从 Oracle Data Integrator 12c开始,ODI提供了三种代理:JEE Agent,Collocated Agent和StandaloneAgent。本文的目的是比较和对比每种代理的特点,以帮助开发人员和架构师在数据集成项目中选择最佳实现方案。
从ODI软件一开始,就已经具有这个代理,并且今天仍然可用。该代理的第一大好处是它的占用空间(包括磁盘空间和内存)非常小:它是独立的Java程序,因此不需要额外的应用服务器。这使其非常适合安装在繁忙且已经处于活动状态的系统(包括数据库服务器)。它提供了所有必要的功能来协调数据集成过程,包括将这些过程公开为Web服务。轻量级特性带来好处:
在E-LT体系结构中,该代理可以与目标数据库位于同一服务器上,从而在通过JDBC传输数据时减少网络节点的数目,比如可以安装部署在Exadata上,用于数据仓库的集中和转换,提升数据加载的效率;
对于需要通过网络才能访问的文本文件、脚本或应用程序,在文件服务器或运行脚本的计算机上安装独立代理,可以提供非常灵活的基础架构。
当我们以企业模式部署ODI时,会发现独立代理存在许多限制。这些限制通过安装在WebLogic Server(WLS)上的JEE代理(在ODI版本11g中开始引入)解决。以下是直接从Weblogic服务器继承的JEE代理的优点:
高可用性:由于作业的执行完全取决于代理,因此代理必须连续启动并运行。如果将代理用作调度程序,这更为重要:如果计划在某个时间点执行作业,但对应的代理已关闭,此时,该作业将不会得到执行。由于JEE代理在WebLogic Server上运行,因此现在可以将代理部署在群集的多个节点上,并将作业调度表存储在Coherence缓存中,以确保即使某节点发生故障,也始终可以执行定时调度的作业。
可配置的连接池:独立代理使用UCP(通用连接池),只是不能配置相应参数;但WLS中的JEE代理可以配置对应的参数。创建DBMS连接是一项耗时的操作,使用WLS中的连接池,ODI JEE代理可复用已有的DB连接。这样代理执行的效率更高,因为它们不必考虑如何与DB建立连接和断开连接的操作。另外,当应用程序使用专用连接池,而不是每次单独的DB连接访问DB时,DB的运行速度也会有相应提高,因为此时DB不必考虑创建连接的请求。连接池还使管理和优化与系统的并发连接数变得更加容易。
管理,监视,警报:Oracle企业管理器云控制(OEM)可用于管理ODI JEE代理,包括:
代理发现
配置管理(组件版本,连接参数)
监控代理的状态和性能
警报
显然,JEE代理程序不应该安装在数据库服务器上,并且由于它在应用程序服务器上运行,因此它被限制只能访问该Web服务器的资源。要访问不在应用程序服务器中的文件和应用程序,可以将JEE代理与独立代理结合使用,后者可以提供对远程资源的本地访问。
一个 WebLogic域是WebLogic Server的基本管理单元,它包含一个或多个WebLogic Server实例以及与逻辑相关的资源和服务,这些资源和服务可以作为一个单元进行统一管理。如果不需要JEE代理提供的高可用性和连接池功能,但对其他功能有需求,则可以使用Collocated代理来解决。只需要安装WLS节点管理器组件即可,多亏有了节点管理器,Collocated代理才成为WLS域的一部分,因此它受益于该WLS域中的所有其它功能。换句话说,Collocated代理是一个可以被集中管理和监视的“独立代理”。
经过上面的介绍,我们已经对ODI的代理有了初步了解。下图总结了3种不同代理之间的功能差异,可根据项目需求、部署的环境进行相应的选择。


作者简介
蔡东林,甲骨文云平台数据集成资深咨询顾问,专注于甲骨文数据集成相关产品及解决方案。具有15+年的数据仓库、数据处理经验,熟悉甲骨文相关集成产品,方案和项目实施经验。熟悉电信、银行行业。您可以通过donglin.cai@oracle.com与他联系。
扫描二维码或点击阅读原文
快速预约精选云解决方案演示






