数据集成中间件(data integration middleware)是指支持不同来源、格式和性质的数据源进行逻辑上或物理上有机集成,为分布、自治、异构的数据源提供可靠转换、加载与统一访问服务的中间件。在当前的大型数据库应用系统中,数据资源通常分布在网络的不同节点上、存储在不同的数据库中,而且格式、语义都可能存在异构,数据集成中间件的主要功能便是通过对不同来源、格式和特性的数据的转换与包装,提供统一的高层访问服务,实现各种异构数据源的共享。
为解决不同类型的数据库管理系统之间的数据交换问题,微软于20世纪90年代初提出了开放式数据库连接(Open Data Base Connectivity,ODBC)技术,它试图建立一种统一的应用程序访问数据库的接口,开发人员无需了解数据库内部的结构就可以实现对数据库的访问。后来,随着Java语言的出现,也随之出现了Java数据库互连标准(Java database connection standard, JDBC),JDBC是执行SQL语句的Java API。它由一组用Java语言编写的类与接口组成。随着计算机技术的发展,ODBC在面对新的数据驱动程序的设计和构造方法时,遇到了困难,对象链接嵌入数据库(Object Linking and Embedding Data Base,OLE DB)技术应运而生。它在设计上采用了多层模型,对数据的物理结构依赖更少。为适应网络环境下分布式系统的开发需求,诞生了ADO(ActiveX数据对象)技术,ADO对OLE DB做了进一步的封装,它以数据库为中心,具有更多的层次模型,更丰富的编程接口,大致相当于 OLE DB 的自动化版本。ADO.NET是ADO的发展产物,更具有通用性。它成功实现了在连接断开的概念下实现客户端对服务器上数据库的访问。
以上解决了异构数据库的统一访问问题,但是在数据集成应用过程中,还存在数据的格式、表示以及含义的不同,即数据换成等问题,还需要用户自己实现。为解决此问题,20世纪80年代末出现了联邦式数据库、数据仓库和基于中间件模型的方法。其中,联邦式数据库(FDBS)由半自治数据库系统构成,相互之间分享数据,联盟各数据源之间相互提供访问接口,同时联邦数据库系统可以是集中数据库系统或分布式数据库系统。紧藕合FDBS有一个或几个统一的模式,要解决逻辑上的异构,需要领域专家决定数据库模式间的对应关系。松耦合则不提供统一的接口,但可以通过统一的语言访问数据源,其中核心的是必须解决所有数据源语义上的问题。联邦数据库集成系统适合于自治数据库的数量比较小的情况,而且希望数据库能够保持“独立”,允许用户单独查询,数据库间能够彼此联合回答查询的情况,属于逻辑上的数据集成。
数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的和不可修改的数据集合。 该方法需要建立一个存储数据的仓库,由ETL(Extract,Transform and Load)工具定期从数据源过滤数据,然后装载到数据仓库,供用户查询。
中间件模式通过统一的全局数据模型来访问异构的数据库、遗留系统和Web 资源等。中间件位于异构数据源系统(数据层) 和应用程序(应用层) 之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口。各数据源的应用仍然完成它们的任务,中间件系统则主要集中为异构数据源提供一个高层次数据访问服务。
目前比较流行的数据集成方法是中间件模式,它通过在中间层提供一个统一的数据逻辑视图来隐藏底层的数据细节,使得用户可以把集成数据源看为一个统一的整体。该模型下的关键问题是如何构造这个逻辑视图并使得不同数据源之间能映射到这个中间层。
数据集成中间件的主要功能构件有数据访问适配器、元数据、数据建模与管理和抽取、转换、加载和统一视图等主要功能构件组成,其中,加载构件是数据物理的集成到目标数据库中的构件,统一视图是数据逻辑的集成的构件。如图6.5所示。
图6.5数据集成中间件体系结构图
数据集成中间件的关键技术包括数据抽取、转换与清洗、数据加载与统一视图、元数据和数据建模与管理技术。
-
数据抽取 基于中间件的数据抽取主要包括异构数据访问方法、数据库适配器和数据抽取等关键技术。其中,异构数据访问方法包括通用SQL API方法、通用网关、通用协议和基于构件技术的统一数据访问接口等。通用SQL API方法即在Client端的所有应用程序都采用通用的SQL API访问数据库,而由不同的DBMS Server提供不同的数据库驱动程序。通用网关方法是在Client端有一个公共的客户机驱动程序,在Server端有一个网关接受程序,它捕获进来的格式和协议信息,然后进行转换,送至本地的SQL接口。通用协议方法是指公共的API,并且有一个单一的数据库管理接口。公共格式支持适用于所有的SQL方言的超级设置或容忍全部本地SQL方言通过。基于组件技术的统一数据访问接口,即UDA(Universal Data Access)技术,包括底层系统级编程接口和高层应用级编程接口。数据库适配器是对异构数据库的抽象数据源,屏蔽异构数据库的访问方法,针对数据集成中间件提供统一的数据访问方法,并可以实现数据集成的可扩展性。数据抽取包括完整抽取和数据增量抽取。数据增量抽取包括基于快照表的数据增量抽取,条件的数据增量抽取。其中快照表可以由系统自动生成,也可由用户指定。数据抽取的策略有实时、轮询和定时等方法。
-
数据建模与管理 数据集成中的关键是对数据进行概念建模和在概念建模基础之上的集成支持。只有建立数据的概念模型,才能对数据进行统一标示和编写目录,确定元数据模型。只有对数据建立统一的模型后,数据才有在分布式数据库中共享的可能。数据建模主要是针对抽取、转换过程中的模式、规则进行建模,形成元数据,以便数据集成中间件在抽取与访问时利用。数据抽取建模任务满足从源数据中挑选有价值的数据进行整合和交换,并能通过配置来适应需求的变化。数据抽取任务建模,通过访问元数据库,提供对单表多表、可选域段及表关联的任务建模,还可定义任务顺序和对任务进行分组,它与数据抽取的特性相关联。数据映射建模包括数据转换和数据过滤两部分建模。数据转换,包括元数据转换、数据转换构件。元数据转换,包括元数据映射表增删和配置;数据转换,包括数据映射表及映射规则的配置,表名转换、前缀转换、域转换、值转换构件,实现数据映射。映射建模包括表名转换、加前缀或后缀、增删域段、提供缺省值、值转换等。数据过滤建模,包括基于规则定义数据过滤,如简单的表过滤、前缀或后缀过滤、域过滤、值过滤,实现数据过滤等功能。
-
元数据 元数据是描述数据的数据。对于各种数据库,其元数据都是不相同的。为了兼容和统一数据的描述,数据集成中间件通过对各种数据库的元数据进行分析,定义一套统一的元数据。并需要定义各种数据库元数据与统一元数据之间的映射关系,以及统一元数据到具体数据库元数据之间的映射关系。
- 数据转换 数据转换是指从源数据中抽取的数据进行整理、拆分、汇总等处理,保证数据按要求装入目标数据库。数据转换是数据集成过程的核心环节,包括数据变换和实例层数据清洗两个步骤。变换指的是对数据的格式和语义按照元数据模型的定义进行统一转换;清洗指的是确保数据集中的所有数值是一致的和被正确记录的。由于各种数据差异很大,而且普遍存在数据格式、语义上的不一致问题,因此数据转换是数据集成过程中最复杂、最繁重的工作。数据转换的作用是将抽取到的数据逐字段地将数据映射到目标数据库的新数据结构上。实现数据集成的困难在于如何将它们集成为一个紧密的数据模型,因为数据从多个数据源中抽取,往往具有不同的格式和语义,生成新的数据,必须充分考虑这种差异。数据变换可大致分为两类:字段水平的简单映射和复杂集成。字段水平的简单映射是数据中的一个字段被转移到目标数据字段中的过程。数据变换其它工作量是进行数据的复杂集成,它需要做更多的分析,包括通用标识符问题、目标元素的多个来源、计算数据、聚集数据、衍生数据等。实例层数据清洗用来检查字段或记录的实际内容,消除不合要求数据,保证集成数据的质量。实例层数据清洗过程需要检查的是字段或记录的实际内容而不仅是存储格式,并提供解决方法,包括:检查数据字段中的有效性,结合一定的领域知识将不合要求数据转换为符合数据质量的数据。
-
数据加载和统一视图 数据加载包括数据的实时加载和数据的发布/订阅技术。数据的实时加载,通过按照元数据的规则,将转换与过滤完的数据实时加载到目标数据库中。保证源数据和目标数据库的数据同步则是数据加载中的关键技术,特别是在分布式异步数据集成的环境下,减少数据传输过程中的冗余量,实现数据的同步的高效性和增量报送成为数据同步的目标。实现数据同步有两种方法:如果数据源是功能完备的数据库系统,则可以通过定义一组触发器,或者通过读取日志的方式来检测分析数据源的变化实现数据同步。对于任意类型的数据源,都可以采用基于快照差分的方法实现数据同步。数据发布技术,提供向消息代理或其它消息中间件的数据发布方法。数据发布配置,包括连接特性、传输质量特性和内容特性(主题特性)的配置。数据订阅,提供向消息代理或其它消息中间件的数据订阅。数据订阅特性配置,包括连接特性、订阅内容(主题)和过滤规则的配置。统一视图是针对数据逻辑上的集成到一起而提供的数据虚拟加载技术,它不将数据物理的加载到目标数据库中,而是针对用户的请求,按照统一视图的规范,根据元数据的定义,对查询进行分解,并从源数据库中进行数据抽取和转换,形成满足数据访问请求的结果返回给对方,因为数据访问统一视图针对用户的每次查询都是实时的去查询并转换和集成结果,因此不涉及到数据物理集成过程中的同步问题。
分享到:
相关推荐
3. 数据集成(Data Integration):数据集成指的是将来自不同数据源的数据融合在一起,提供一个统一的数据视图给最终用户。数据集成是信息共享和集成的关键,可以解决企业在信息管理中的数据孤岛问题。 4. 数据库...
* EAI(Enterprise Application Integration,企业应用程序集成):是一个企业级应用程序集成中间件,提供了统一的接口和服务,以便于不同的应用程序之间的集成和交互。 中间件层次结构是指在操作系统和应用程序...
7. **数据集成(Data Integration)**:中间件可以实现不同系统间的数据集成,如ETL(Extract, Transform, Load)工具,它们抽取数据、转换格式并加载到目标系统。 8. **安全性(Security)**:中间件提供了身份...
消除中间件梦魇系列之 Oracle 数据集成技术 (PDF) Oracle Identity Management 了解自己:中型企业如何使用身份管理程序降低成本、保护数据并确保合规性 (PDF) Oracle 身份和访问管理套件 (PDF) Oracle 身份管理...
3. BI集成工具(BI Integration Tools):例如ODI(Oracle Data Integrator)和OWB(Oracle Warehouse Builder),用于数据抽取、转换和加载。 4. BI应用分析(BI Applications):是预建的分析应用,针对特定行业...
3. **Middleware(中间件)**:Oracle的中间件产品包括Development Tools,TP-Monitor,Application Server,Application Grids,Data Integration,SOA/Integration,Business Intelligence,Content Management,...
Data Integration工具如Oracle Fusion Middleware集成不同系统,SOA和Integration组件支持服务导向架构,Business Intelligence提供报表和分析,Content Management处理文档和信息管理,Identity Management确保用户...
在Laravel框架中,开发一个"data source module"是为了管理和处理应用程序的数据源,这通常涉及到数据库连接、API集成、数据缓存等。PPI(可能是"Private Platform Interface"或"Public Platform Interface")数据源...
3. **Middleware**:Oracle的中间件产品涵盖了开发工具、TP-Monitor、Application Server、Application Grids,以及数据集成、SOA/Integration、Business Intelligence、Content Management、Identity Management、...
7. **Integration with ORMs**: graphql-java可以与流行的Java ORM框架(如Hibernate)集成,简化数据获取。这样,你可以直接从现有的数据层提供GraphQL服务。 8. **工具和库**: graphql-java生态中有许多工具和库...
6. **Integration with ORMs**:Graphene 可以方便地与流行的 Python ORM 框架集成,如 SQLAlchemy 和 Django ORM,使得从数据库中获取数据变得更加方便。 7. **Data Fetching**:GraphQL 的一大优势是按需获取数据...
11. **Enterprise Application Integration(企业应用集成)** - 企业应用集成是将不同的软件应用系统连接起来,以实现数据和业务流程的共享。物联网运输业务协同管理平台通过集成不同的应用系统,实现企业内部和...
6. **Service Data Objects (SDO)**:SDO提供了一种统一的数据访问层,使得应用程序可以透明地处理来自不同数据源的数据。 7. **Oracle Fusion Middleware Control**:这是Oracle SOA Suite的管理和监控工具,用户...
5. **调试与测试**:断点(breakpoint)、错误(error)、警告(warning)、调试器(debugger)、单元测试(unit test)、集成测试(integration test)和验收测试(acceptance test)等,这些都是确保代码质量的...
5. **Integration**:可能支持与各种数据库系统的集成,如 MySQL、PostgreSQL 或 MongoDB,以充分利用巴莎多数据表的优势。 6. **Middleware Support**:为了增强功能和安全性,`unabandaql-ng` 可能支持中间件,...