java及时数据集成简介
副标题#e#
此刻,巨大的“可热插拔”系统和面向处事的体系布局(SOA)获得了遍及应用,这使得将数据公道地整合在一起的难受活益增加。尽量您的主要应用措施数据库在Oracle数据库上运行,可是大概尚有其他较小的系统在其他供给商提供的数据库僻静台上运行。您的应用措施自己可以通过 Web处事之类的技能举办交互,应用措施和数据可以长途托管,也可以由您在企业数据中心内举办打点。
Oracle Data Integrator属于Oracle融合中间件产物系列,它办理了异构水平日益增加的情况中的数据集成需求。它是一个基于Java的应用措施,可以利用数据库来执行基于荟萃的数据集成任务,也可以将该成果扩展到多种数据库平台以及Oracle数据库。另外,通过它,您还可以通过 Web处事和动静提取并提供转换数据,以及建设在面向处事的体系布局中响应和建设事件的集成进程。
Oracle Data Integrator产物体系布局
Oracle Data Integrator是以Java图形模块和调治署剖析见的模块化信息库为中心举办组织的。图形模块用于设计和构建集成进程,署理用于布置和协调集成任务。当 Oracle Data Integrator项目投入出产时,数据打点员可以利用基于Web的Metadata Navigator应用措施来按照信息库中的元数据生成陈诉。现成的常识模块可以利用特定于平台的代码和东西跨异构平台提取和加载数据。
Oracle Data Integrator 信息库包括一个主信息库(包括有关用户和脚色的具体信息)、到数据库和其他数据源的毗连、项目版本以及一个或多个事情信息库(包括数据模子的具体信息以及用于集成数据的映射)。这些信息库可以存储在 Oracle 和非 Oracle 干系数据库中,可以利用图形模块举办打点,并可以在运行时由署理举办会见。
有四个图形模块可用来建设和打点 Oracle Data Integrator 项目:
Designer 用于界说数据存储(表、文件、Web处事等)、接口(数据映射)以及措施包(包罗接口在内的几组集成步调)。
Topology Manager 用于建设和打点到数据源和署理的毗连,凡是限制为只有打点员可以会见。
Operator 用于查察和打点产物集成功课。
Security Manager 打点用户及其信息库权限。
这些基于 Java 的应用措施可在包罗 Microsoft Windows、Macintosh OS X 和 Linux 在内的任何 Java 情况中运行。
声明式设计
一般来说,数据集成任务涉及两个主要的规模:
关于转换哪位数据并将其与其他位相团结的业务法则
关于数据的实际提取、加载等操纵方法的技能细节
这种分别意味着,界说业务法则的人凡是是机构的技能业务专家或数据专家,而技能细节则往往留给开拓人员和 DBA 等技能人员来界说。利用大大都数据集成东西,凡是很难以这种方法分别职责,因为它们的数据映射特性在同一个数据映射中殽杂了业务法则和技能实现细节。而 Oracle Data Integrator 回收了一种差异的要领,像 SQL 一样利用声明式要领来构建数据映射,这在东西中称为“接口”。
建设新的接口时,开拓人员或技能业务用户首先界说要集成的数据以及应利用的业务法则。在该步调中,会将表联接在一起,应用过滤器,并利用 SQL 表达式来转换数据。所利用的特定 SQL 语言由执行代码的数据库平台来抉择。
然后,在另一个步调中,技能人员可以利用特定于数据库的东西和设计要领(譬喻增量加载、批量加载东西、渐变维度和变动数据捕捉)以最有效的方法来提取、组归并集成该数据。
可扩展的常识模块
由于 Oracle Data Integrator 在响应事件的同时从许多差异的数据库平台加载和转换数据并利用基于动静的技能(如 Web 处事),因此用于会见和加载这些差异数据源的技能需要机动、可扩展而又高效。Oracle Data Integrator 通过常识模块办理了该问题。
常识模块是 Oracle Data Integrator 的“插件”,它浓缩了为特定命据源或特定方针加载、转换或集成数据的最佳实践。Oracle Data Integrator 有六种常识模块,如下图所示:
#p#副标题#e#
反向工程常识模块用于从源数据库中读取表和其他工具元数据。
日志记录常识模块记录单个表或视图可能一组一致的表或视图中的新数据和变动的数据。
加载常识模块用于从源数据库中有效地提取数据,并包罗特定于数据库的合用的批量卸载东西。
查抄常识模块用于检测源数据中的错误。
集成常识模块用于有效地将分段存储区中的数据转换为方针表,以便为给定命据库生成优化的本机 SQL。
处事常识模块可以将数据发布为 Web 处事。
#p#分页标题#e#
常识模块还可以扩展,这样您可以添加 Oracle Data Integrator 当前未提供的成果。譬喻,回收一组现有的基于 Oracle 的常识模块并将其扩展为包罗 Oracle 数据库 10g 中的 Oracle 数据泵成果将是一项相对简朴的任务。
数据质量防火墙
假如您是认真加载数据客栈的人,那么不得不办理的一个问题是执行夜间加载的时间段越来越短。假如您的元数据包括大量在加载到数据客栈分段存储区之前无法检测的错误,时间就会变得分外告急。
Oracle Data Integrator 操作了一种创新要领来办理该问题,即,利用查抄常识模块在数据源处充当脏数据的“防火墙”,只答允切合业务法则的数据进入集成流程。要利用该要领有效地确保数据质量,您首先要在源工具上界说一个或多个约束,然后利用查抄常识模块来识别不切合这些约束的所有行,并将它们复制到错误表中。
这样,在您今后从这些源工具中提取数据并在接口中利用它们时,可以确保仅加载了切合这些约束的数据,而且您可以单独处理惩罚错误表中的脏数据。
支持变动数据捕捉
尽大概缩短数据加载时间的另一种有用的要领是,仅加载新的或颠末变动的数据。幸运的话,应用措施设计人员会提供指示器和日期来辅佐确定新的或颠末变动的数据,可是大大都环境下,不会提供该信息,这需要您本身来确定感乐趣的数据。
由于这是一个相当普遍的要求,因此 Oracle Data Integrator 提供了日志记录常识模块来监督源数据库,并将新的和颠末变动的记录复制到日志中,然后可以从日志中而非原始的源表中读取这些记录。假如 Oracle 之类的数据库供给商提供变动数据捕捉的本机支持,就会利用这些成果;不然,日志记录常识模块会利用触发器之类的技能来捕捉数据操纵语言 (DML) 勾当并使变动可用。在本文的后头部门,您将看到 Oracle Data Integrator 如何提供 Oracle 变动数据捕捉成果,以及如何利用它以增量方法将数据库及时加载到其他数据库平台上。
Oracle Data Integrator 与 Oracle Warehouse Builder 较量
这时,Oracle Warehouse Builder 的通例用户大概想知道它与 Oracle Data Integrator 的干系,以及它在其他 Oracle 数据客栈技能产物中的合用环境。我们的答复是,Oracle Data Integrator 是一个东西,是对 Oracle Warehouse Builder 的增补,假如涉及在 Oracle 数据客栈中建设分段层和集成层的事情很重要可能涉及 SOA 或非 Oracle 数据库源,它将尤为有用。
对付构建 Oracle 数据客栈的人来说,Oracle Warehouse Builder 有一构成果强大的特定于 Oracle 的数据客栈成果,譬喻,支持干系和多维数据布局的建模、与 Oracle Business Intelligence Discoverer 集成、支持加载渐变维度,以及用于领略数据布局和语义的数据阐明器。
从源数据的最初筹备和集成一直到数据客栈的分段存储区,Oracle Data Integrator 都起着重要浸染。
Oracle Data Integrator 可以集成和同步大量差异数据源(包罗 Web 处事和基于事件的体系布局)中的数据,而且如上图所示,还可觉得特定于 Oracle 数据库的成果(如 Oracle 变动数据捕捉)提供利便的图形界面。将数据集成并复制到数据客栈分段存储区后,Oracle Warehouse Builder 会接替后续事情,建设并填充操纵数据存储和维度客栈层。
此刻各人对 Oracle Data Integrator 已经有所相识,本文将重点存眷如安在实际的数据集成案例中利用它。
Oracle Data Integrator 利用示例:跨平台及时数据集成
在该案例中,您的任务是从 Oracle 数据库中提取一些订单和客户数据,将其与文件中生存的一些员工数据组合到一起,然后将集成的数据载入 Microsoft SQL Server 2000 数据库。由于订单达到时需要举办阐明,因此您但愿以尽大概靠近及时的速度将它们直接通报到方针数据库,并仅提取新的和颠末变动的数据以保持尽大概小的负载。您已经在 Oracle 技能网上相识了 Oracle Data Integrator 的相关信息,并但愿利用这一新东西来提取和加载数据。
您首先登录到 Oracle Data Integrator 并启动 Topology Manager,如下图所示。
在Oracle Data Integrator中,物理数据库、处事或基于事件的数据源均称为数据处事器。利用Topology Manager建设三个新的数据处事器:
#p#分页标题#e#
一个Oracle数据库数据处事器,利用SYSTEM用户的凭证配置,映射到数据库上的ORDERS和ORDERS_WORKAREA模式。ORDERS模式包括您要提取的订单数据,而 ORDERS_WORKAREA 模式是您专门配置的一个空模式,用来存放 Oracle Data Integrator 建设的事情表。利用 Oracle JDBC 驱动措施成立该毗连。
一个文件数据处事器,映射到以逗号脱离的文件(个中包括员工具体信息)。利用 Sunopsis 文件 JDBC 驱动措施成立该毗连。
一个 Microsoft SQL Server 数据处事器,映射到名为 ORDERS_DATA_MART 的数据库。利用 Sun JDBC-ODBC 桥接 JDBC 驱动措施成立该毗连,可能利用 Microsoft JDBC 驱动措施(可以从 Microsoft Web 站点下载)。
界说数据处事器之后,您可以退出 Topology Manager 并启动 Designer。利用 Designer,您可以建设代表 Oracle、文件以及 Microsoft SQL Server 表和文件的数据模子,这在 Oracle Data Integrator 中称为数据存储。首先建设 Oracle 和 Microsoft SQL Server 模子,然后利用反向成果将表的元数据导入 Oracle Data Integrator 的信息库中,如下图所示。
假如已经界说了所有数据模子,而且已经手动输入源以及方针表和文件的具体信息或对其举办反向工程,Designer 将显示您今朝在项目中利用的所有数据存储的列表,如下图所示。
确定基本源表是否未界说主键,您可以利用 Designer 应用措施界说它们,然后让 Oracle Data Integrator 以“虚拟方法”强制执行,因为 Oracle Data Integrator 的许多映射成果都依赖于所界说的约束。
既然已经界说了数据存储,您可以开始配置获取源数据的变动数据捕捉进程了。
可是,在此之前,您需要将提供变动数据捕捉成果的常识模块导入项目。为此,单击 Designer 应用措施的 Projects 选项卡,右键单击项目,然后选择 Import->Import Knowledge Modules。从列表中选择以下常识模块,它们可提供变动数据捕捉成果并将在项目标其他部门中利用。
CKM SQL
IKM SQL 增量更新
JKM Oracle 10g Consistent (LOGMINER)
LKM File to SQL
LKM SQL to SQL
此刻,所需的常识模块已经可用,您可以编辑以前建设的 Oracle 模块并选择 Journalizing 选项卡。由于您但愿以一致的方法捕捉对 ORDERS 和 CUSTOMER 表的变动,因此选择了 Consistent 选项和 JKM Oracle 10g Consistent (LOGMINER) 常识模块。该常识模块(如下图所示)将利用 Oracle 数据库 10g 的 LogMiner 成果捕捉新的和颠末变动的数据,并利用 Oracle 流以异步方法在行列中流传变动。
该常识模块提供了三个设置选项。您可以选择下列值来设置该模块:
Asynchronous Mode:Yes
Auto-Configuration:Yes
Journal Table Options:default
单击 Apply 生存变动,然后单击 OK 完成设置。此刻,您需要将表添加到变动数据捕捉荟萃中。
为此,在 Designer 的模块列表中找到 Oracle 数据处事器,依次右键单击 CUSTOMERS 和 ORDERS 表,然后选择 Changed Data Capture ->Add to CDC。然后,再次编辑模子的 Journalized Tables 选项卡,利用向上和向下箭头键将 ORDERS 表置于 CUSTOMERS 表的上面。
此刻,您可以建设从这两个表中捕捉变动数据的日志了。为此,再次右键单击该模子,并选择 Changed Data Capture ->Start Journal。单击 OK 在当地执行代码,然后启动 Operator 应用措施查抄操纵历程。假如一切正常,您将看到一个雷同于以下的完成步调列表。
假如该进程碰着错误,凡是是由于您利用了不具有所需权限的用户帐户界说Oracle毗连。查察您提供的用户具体信息和Oracle Data Integrator文档以办理所有问题,然后再继承该操练的其余部门。
接下来,您要向日志中添加一个用户,要领是:返回 Designer 应用措施,右键单击 Oracle 源数据处事器,并选择 Changed Data Capture ->Subscriber->Subscribe。添加一个新用户,并在当地执行代码以确保代码正确执行(某些操纵大概会发出告诫,因为在前面的步调中已经建设了所需的表)。该步调完成后,您已经成立了变动数据捕捉进程,可以开始构建接口了。
该项目需要两个接口,第一个接口用于从 Oracle 源数据库中提取现有的数据集,将其与源文件中的数据连系到一起,然后将组合数据载入方针 Microsoft SQL Server 数据库,如下图所示。
留意,方针表中的某些列已经自动映射,但 SALES_PERSON_ID、SALES_PERSON_NAME 和 CUSTOMER_NAME 等其他列最初并未映射,因为映射进程找不到匹配的源列。此刻,您将手动映射这些列,利用表达式编辑器输入利用源或方针数据库语法的 SQL 表达式,详细取决于产生转换的位置。
假如单击 Flow 选项卡,您将看到用于加载和集成数据的实际常识模块,如下图所示。
#p#分页标题#e#
Oracle Data Integrator 已经选择了默认常识模块来实现从任何数据库和文件中提取数据,然后以增量方法载入任何数据库。稍后,您可以将这些常识模块变动为更适合您的特定命据库和版本的模块,但此刻请保存这些模块的默认配置。
最后,如下图所示,单击 Control 选项卡,以选择用于处理惩罚方针表的约束错误的节制常识模块。选择 CKM SQL Knowledge Module 以处理惩罚切合 ISO-92 的数据库中的错误数据。
此刻,您可以测试接口了。为此,单击接口对话框右下角的 Execute,然后打开 Operator 应用措施查抄接口进度,如下图所示。
由于接口的执行未呈现错误,您可以在 Designer 应用措施中导航到方针数据存储并查察加载的数据,如下图所示。
此刻,您已经配置了初始负载,下面可以界说通过先前建设的日志表加载新的和颠末变动的数据的接口了。
为此,再建设一个接口,但这次,当您添加 CUSTOMERS 和 ORDERS 源表时,单击表白利用日志记录的数据而非数据存储内容的复选框。为一个日志记录表选择该复选框后,系统将自动为一致荟萃中的所有其他表选中该复选框,如下图所示。
将日志记录表添加到接口后,您可以凭据与先前完全沟通的方法构建接口的其余部门,独一的区别是,第二个接口以日志记录的数据而非源表内容作为源数据。
要测试第二个接口,您可以将一些新记录插入 ORDERS 和 CUSTOMERS 表,然后利用 Designer 接口来扩展日志窗口;稍后,您将自动扩展该窗口,并将其作为 Oracle Data Integrator 措施包的一部门举办排除。但此刻,右键单击 Oracle 数据模子,并从上下文菜单中选择 Changed Data->Consumption->Extend Window,使新的和颠末变动的数据的最新荟萃可用于第二个接口,如下图所示。
您可以快速查抄哪些行在表日志中(右键单击相关的数据存储,选择 Changed Data Capture,然后选择 Journal Data…),也可以执行接口(在编辑器中再次打开它,并单击屏幕右下角的 Execute)。
由于您已经利用所建设的第一个接口将最初的数据荟萃载入方针数据中心,此刻可以建设一个 Oracle Data Integrator 措施包来执行下列步调:
查抄 ORDERS 和 CUSTOMER 日志记录数据,以查察是否已添加新的或颠末变动的数据记录。假如检测到预界说数量的日志记录,运行措施包的其余部门或跳到最后一步,无需加载任何数据。
假如检测到日志记录数据,扩展日志窗口。
执行该接口,以读取日志记录数据,将其与文件连系,并加载方针数据存储。
排除日志窗口。
再次启动该措施包。
建设该措施包然后将其作为 Oracle Data Integrator 案例陈设可有效地建设一个及时、持续运行的 ETL 进程。利用 Oracle Data Integrator 的事件检测成果,该措施包将在检测到预先配置的变动数据记录数或颠末指定的毫秒数后自行启动。通过为日志记录数据的数量和超时配置相应的阈值,您可以建设一个延迟最小的及时集成进程。
要建设该措施包,导航到 Designer 应用措施的 Projects 选项卡,找到包括您先前界说的接口的文件夹,找到 Packages 项,右键单击该项,然后选择 Insert Package。为该措施包指定一个名称,然后导航到措施包具体信息对话框的 Diagram 选项卡。
利用右侧的东西箱,转至 Event Detection 文件夹并将 OdiWaitForLogData 东西添加到措施包画布中,如下图所示。该东西将按期轮询日志记录数据,假如未找到任何行,该东西将失败,假如在日志中检测到预先配置的行数,该东西将进入措施包的下一个步调。
您可以将东西属性配置为查抄先前界说的变动数据捕捉荟萃,并在发明 3 个日志行或查抄开始一分钟退却出。
#p#分页标题#e#
此刻,您可以添加一个扩展日志窗口以读入新数据的步调。为此,导航到模子列表,并将 Oracle 模子拖放到画布上。选择该模子,查察属性,然后将 Model Type 列表变动为 Journalizing Model,如下图所示。
然后,单击 Extend Window 复选框,以表白该日志步调将扩展日志窗口。
接下来,将从日志提取数据的接口添加到映射,然后将 Oracle 模子再次添加到措施包中,但这次选择 Purge Window 选项,以便在读取日志后将其排除。最后,将 Utilities 文件夹中的 OdiStartScen 东西添加到东西箱,以便在其完成后再次重启,您还可以添加显示步调流程的毗连器(如下图所示),详细取决于第一个步调是否检测到日志行。
由于最后的 OdiStartScen 步调指的是措施包出产版本中的环境,您可以在 Designer 应用措施的 Project 选项卡中找到要利用的措施包,右键单击该措施包,并选择 Generate Scenario。建设结案例之后,您可以编辑 OdiStartScen 步调的属性,使其引用您方才生成的案例名称。将这最后一步添加到措施包之后,您就可以确保它持续运行,并以及时方法将 Oracle 源表中新的和颠末变动的数据流传到方针数据库。
总结
Oracle Data Integrator 是 Oracle 融合中间件产物系列的一个新成员,您可以操作它跨浩瀚平台执行面向数据、事件和处事的集成。它对 Oracle Warehouse Builder 举办了增补,并为特定于 Oracle 数据库的成果(譬喻,批量数据加载和 Oracle 变动数据捕捉)提供了图形界面。本文探究了如何利用 Oracle Data Integrator 跨差异的平台建设及时数据集成进程,还探究了集成进程的声明式要领,该要领可让您会合精神界说业务法则,而不消思量实现细节。