数据集成中间件(数据库)
时间:2022-11-14 10:30:01 | 来源:信息时代
时间:2022-11-14 10:30:01 来源:信息时代
数据集成中间件 : 支持不同来源、格式和性质的数据源进行逻辑上或物理上有机集成,为分布、自治、异构的数据源提供可靠转换,加载与统一访问服务的中间件。在当前的大型数据库应用系统中,数据资源通常分布在网络的不同节点上,存储在不同的数据库中,而且格式、语义都可能存在异构,数据集成中间件的主要功能便是通过对不同来源、格式和特性的数据的转换与包装,提供统一的高层访问服务,实现各种异构数据源的共享。
为解决不同类型的数据库管理系统之间的数据交换问题,微软于20世纪90年代初提出了开放式数据库连接(ODBC)技术,它试图建立一种统一的应用程序访问数据库的接口,开发人员无需了解数据库内部的结构就可以实现对数据库的访问。后来,随着Java语言的出现,也随之出现了Java数据库互连标准(JDBC),JDBC是执行SQL语句的Java API。它由一组用Java语言编写的类与接口组成。随着计算机技术的发展,ODBC在面对新的数据驱动程序的设计和构造方法时,遇到了困难,对象链接嵌入数据库(OLE DB)技术应运而生。它在设计上采用了多层模型,对数据的物理结构依赖更少。为适应网络环境下分布式系统的开发需求,诞生了ADO(ActiveX data object)技术,ADO对OLE DB做了进一步的封装,它以数据库为中心,具有更多的层次模型,更丰富的编程接口,大致相当于OLE DB的自动化版本。ADO.NET是ADO的发展产物,更具有通用性。它成功实现了在连接断开的概念下实现客户端对服务器上数据库的访问。
以上解决了异构数据库的统一访问问题,但是在数据集成应用过程中,还存在数据的格式、表示以及含义的不同,即数据转换等问题,还需要用户自己实现。为解决此问题,20世纪80年代末出现了联邦式数据库、数据仓库和基于中间件模型的方法。其中,联邦式数据库(federated database system,FDBS)由半自治数据库系统构成,相互之间分享数据,联盟各数据源之间相互提供访问接口,同时联邦数据库系统可以是集中数据库系统或分布式数据库系统。紧耦合FDBS有一个或几个统一的模式,要解决逻辑上的异构,需要领域专家决定数据库模式间的对应关系。松耦合则不提供统一的接口,但可以通过统一的语言访问数据源,其中核心的是必须解决所有数据源语义上的问题。联邦数据库集成系统适合于自治数据库的数量比较小的情况,而且希望数据库能够保持“独立”,允许用户单独查询,数据库间能够彼此联合回答查询的情况,属于逻辑上的数据集成。
数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的和不可修改的数据集合。该方法需要建立一个存储数据的仓库,由ETL(extract,transform and load)工具定期从数据源过滤数据,然后装载到数据仓库,供用户查询。
中间件模式通过统一的全局数据模型来访问异构的数据库、遗留系统和Web资源等。中间件位于异构数据源系统(数据层)和应用程序(应用层)之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口。各数据源的应用仍然完成它们的任务,中间件系统则主要集中为异构数据源提供一个高层次数据访问服务。
目前比较流行的数据集成方法是中间件模式,它通过在中间层提供一个统一的数据逻辑视图来隐藏底层的数据细节,使得用户可以把集成数据源看为一个统一的整体。该模型下的关键问题是如何构造这个逻辑视图并使得不同数据源之间能映射到这个中间层。
数据集成中间件的主要功能构件由数据访问适配器、元数据、数据建模与管理及抽取、转换、加载和统一视图等主要功能构件组成,其中,加载构件是数据物理的集成到目标数据库中的构件,统一视图是数据逻辑的集成的构件。如图1所示。
图1 数据集成中间件体系结构图
数据集成中间件的关键技术包括:
(1)数据抽取:基于中间件的数据抽取主要包括异构数据访问方法、数据库适配器和数据抽取等关键技术。其中,异构数据访问方法包括通用SQL API方法、通用网关、通用协议和基于构件技术的统一数据访问接口等。通用SQL API方法即在客户端的所有应用程序都采用通用的SQL API访问数据库,而由不同的DBMS Server提供不同的数据库驱动程序。通用网关方法是在客户端有一个公共的客户机驱动程序,在服务器端有一个网关接受程序,它捕获进来的格式和协议信息,然后进行转换,送至本地的SQL接口。通用协议方法是指公共的API,并且有一个单一的数据库管理接口。公共格式支持适用于所有的SQL方言的超级设置或容忍全部本地SQL方言通过。基于组件技术的统一数据访问接口,即UDA(universal data access)技术,包括底层系统级编程接口和高层应用级编程接口。数据库适配器是对异构数据库的抽象数据源,屏蔽异构数据库的访问方法,针对数据集成中间件提供统一的数据访问方法,并可以实现数据集成的可扩展性。数据抽取包括完整抽取和数据增量抽取。数据增量抽取包括基于快照表的数据增量抽取、条件的数据增量抽取。其中快照表可以由系统自动生成,也可由用户指定。数据抽取的策略有实时、轮询和定时等方法。
(2)数据建模与管理:数据集成中的关键是对数据进行概念建模和在概念建模基础之上的集成支持。只有建立数据的概念模型,才能对数据进行统一标示和编写目录,确定元数据模型。只有对数据建立统一的模型后,数据才有在分布式数据库中共享的可能。数据建模主要是针对抽取、转换过程中的模式、规则进行建模,形成元数据,以便数据集成中间件在抽取与访问时使用。
数据抽取建模任务满足从源数据中挑选有价值的数据进行整合和交换,并能通过配置来适应需求的变化。数据抽取建模任务通过访问元数据库,提供对单表多表、可选域段及表关联的任务建模,还可定义任务顺序和对任务进行分组,它与数据抽取的特性相关联。
数据映射建模包括数据转换和数据过滤两部分建模。数据转换,包括元数据转换、数据转换构件。元数据转换,包括元数据映射表增删和配置; 数据转换构件,包括数据映射表及映射规则的配置、表名转换、前缀转换、域转换、值转换构件,实现数据映射。映射建模包括表名转换、加前缀或后缀、增删域段、提供缺省值、值转换等。数据过滤建模,包括基于规则定义数据过滤,如简单的表过滤、前缀或后缀过滤、域过滤、值过滤,实现数据过滤等功能。
(3)元数据:元数据是描述数据的数据。对于各种数据库,其元数据都是不相同的。为了兼容和统一数据的描述,数据集成中间件通过对各种数据库的元数据进行分析,定义一套统一的元数据。并需要定义各种数据库元数据与统一元数据之间的映射关系,以及统一元数据到具体数据库元数据之间的映射关系。
(4)数据转换:数据转换是指对从源数据中抽取的数据进行整理、拆分、汇总等处理,保证数据按要求装入目标数据库。数据转换是数据集成过程的核心环节,包括数据变换和实例层数据清洗两个步骤。变换指的是对数据的格式和语义按照元数据模型的定义进行统一转换; 清洗指的是确保数据集中的所有数值是一致的和被正确记录的。由于各种数据差异很大,而且普遍存在数据格式、语义上的不一致问题,因此数据转换是数据集成过程中最复杂、最繁重的工作。
数据转换的作用是将抽取到的数据逐字段地映射到目标数据库的新数据结构上。实现数据集成的困难在于如何将它们集成为一个紧密的数据模型,因为数据从多个数据源中抽取,往往具有不同的格式和语义,生成新的数据,必须充分考虑这种差异。数据变换可大致分为两类: 字段水平的简单映射和复杂集成。字段水平的简单映射是数据中的一个字段被转移到目标数据字段中的过程。数据变换其他工作量是进行数据的复杂集成,它需要做更多的分析,包括通用标识符问题、目标元素的多个来源、计算数据、聚集数据、衍生数据等。实例层数据清洗用来检查字段或记录的实际内容,消除不合要求数据,保证集成数据的质量。实例层数据清洗过程需要检查的是字段或记录的实际内容而不仅是存储格式,并提供解决方法,包括: 检查数据字段中的有效性,结合一定的领域知识将不合要求数据转换为符合数据质量的数据。
(5)数据加载和统一视图:数据加载包括数据的实时加载和数据的发布/订阅技术。数据的实时加载,通过按照元数据的规则,将转换与过滤完的数据实时加载到目标数据库中。保证源数据和目标数据库的数据同步则是数据加载中的关键技术,特别是在分布式异步数据集成的环境下,减少数据传输过程中的冗余量,实现数据的同步的高效性和增量报送成为数据同步的目标。实现数据同步有两种方法:如果数据源是功能完备的数据库系统,则可以通过定义一组触发器,或者通过读取日志的方式来检测分析数据源的变化,实现数据同步。对于任意类型的数据源,都可以采用基于快照差分的方法实现数据同步。
数据发布技术,提供向消息代理或其他消息中间件的数据发布方法。数据发布配置,包括连接特性、传输质量特性和内容特性(主题特性)的配置。数据订阅,提供向消息代理或其他消息中间件的数据订阅。数据订阅特性配置,包括连接特性、订阅内容(主题)和过滤规则的配置。
统一视图是针对数据逻辑上的集成到一起而提供的数据虚拟加载技术,它不将数据物理的加载到目标数据库中,而是针对用户的请求,按照统一视图的规范,根据元数据的定义,对查询进行分解,并从源数据库中进行数据抽取和转换,形成满足数据访问请求的结果返回给对方。因为数据访问统一视图针对用户的每次查询都是实时的去查询并转换和集成结果,因此,不涉及数据物理集成过程中的同步问题。