基于元数据的数据交换系统研究

2016-05-14 09:09邵桐朱明东
软件导刊 2016年7期
关键词:数据交换元数据

邵桐 朱明东

摘要:数据交换系统是服务数据交换需求的重要工具。在分析数据交换过程的基础上,提炼了异构数据交换的元数据模型,并以这些元数据模型为基础,设计实现了基于元数据的数据交换系统,大大提高了系统的适应性、灵活性、通用性和可扩展性,为大规模数据迁移和数据集成提供了基础支撑。

关键词关键词:元数据;数据交换;异构数据

DOIDOI:10.11907/rjdk.161328

中图分类号:TP392文献标识码:A文章编号文章编号:16727800(2016)007015803

0引言

随着信息技术的发展,业务领域的变化频率越来越高,业务流程再造的速度越来越快,数据模型不断升级,导致数据迁移需求不断增加,跨部门业务融合也导致数据交换的需求持续增加。因此,建设一个数据交换平台迫在眉睫。该平台不仅可以提供点到点的系统间数据交换,还能实现点到面的跨部门、跨业务的数据集成,对整体数据资产提供有力支撑。

目前,主流的数据库产品大多提供了数据迁移工具,但这些工具一般只适用于数据的导入、导出,并且只能支持一个或几个特定类型的数据库。现在的问题是用户使用的数据库产品种类众多,比如格式化的数据库有Oracle、SQL Server、DB2、MySQL、Access、Sqlite、达梦、金仓等;半结构化的数据格式有xls、csv、json、xml等;NoSQL类型的数据库有MongoDB、Redis、 HBase等。无论是数据迁移还是数据集成,均需要在它们之间交换共享数据。如果工具只支持一对一的数据转换,就可能需要开发、维护、学习使用一批这样的工具。因此一个通用的数据交换系统是实现数据迁移和数据集成重要的基础工具。

1数据交换过程

一个典型的数据交换过程包括以下几个步骤:数据抽取、数据转换、数据加载,为了顺利实现数据交换,还需要对以上几个过程加以控制,这就是人们常说的ETL(Extract Transform Load),这里加上了控制(Control),简称为ETLC,如图1所示。

数据抽取,就是从数据源中获取数据。进行数据抽取是进行数据交换的首要步骤,它是指从异构的数据源中获取需要的数据。这里的异构数据源既包括传统的结构化数据库(支持SQL标准)、半结构化数据文件(如XML文件、JSON文件、XLS文件等),还包括不断涌现的NoSQL数据库(如:MongoDB、Memcached、HBase等)。建立一个通用的数据访问接口是获取不同数据源数据的关键。

数据转换,就是根据目标数据源的要求转换数据,实现异构数据源之间的数据转换是进行数据交换的重点。完成从异构数据库中提取数据之后,为了满足目标数据库对数据的要求,需要对其进行相应的转换。建立一系列数据转换规则是满足不同数据转换要求的关键。

数据加载,就是将数据加载到目标数据源。进行数据加载是达成数据交换目标的最后一环,它需要按照事先制定的加载策略,将经过转换的、符合要求的数据有针对性地加载到目标数据库中。

过程控制,就是启动、记录数据抽取过程。对数据交换过程进行控制是数据交换的有效保障。针对不同的数据交换需求,应能够自动地启动交换任务,收集、记录交换过程中的日志和异常信息,为掌握交换事务,及时发现和处理各种异常提供支撑。

2数据交换元数据

通过对数据交换过程的分析可以看出,进行数据交换的基础是对数据源及其映射关系进行描述,数据交换过程需要对数据抽取、数据转换、数据加载、过程控制进行描述。元数据是对数据资源的规范化描述,对于数据交换过程中涉及到的数据源以及交换行为,可以抽象为以下几类元数据。

2.1数据源描述元数据

数据交换实质就是数据从一个数据源通过抽取、转换、加载到另一个数据源,因此,数据交换的基础就是要对数据源进行详尽描述。

数据源按其类型不同,可概括为结构化数据库、半结构化数据文件、NoSQL数据库。无论何种类型的数据源,在进行数据交换时,首先都要知道如何访问,这就需要描述数据源所属的数据库类型、数据库版本、数据库名称、数据库的URL、访问数据库的用户名与密码等信息。

数据库逻辑上是由数据表组成,在进行数据交换时,要知道需要交换的数据在哪张表里,因此需要描述数据表信息,包括表的名称、表的语义描述、表所属的数据库等。

数据表是由一系列字段构成的,在进行数据交换时,最小的粒度是数据从源端的某张表的一个字段至目标端一张表的某个字段,因此对表字段的描述至关重要。字段的描述信息包括:字段的名称、字段的语义描述、字段所属的数据表、字段类型、字段的约束信息等。

通过以上分析,对数据源的描述可以归纳为三元组,记为D(Db,Dt,Df),其中Db为数据库描述信息,Dt为数据表的描述,Df为数据字段的描述,其逻辑关系如图2所示。

2.2数据映射元数据

数据交换是不同数据源之间的数据转换,最终反映的是数据字段之间的映射关系。对于异构数据的交换,这种映射关系不仅包括不同数据要素之间的对应关系,还包括字段之间的转换规则。因此对于数据映射的描述,可以用四元组表示,记为R(Rd,Rt,Rf,Rc),其中Rd为源端数据源与目标端数据源的对应关系,Rt为源端数据表与目标端数据表的对应关系,Rf为源端数据字段与目标端数据字段的对应关系,Rc为源端数据字段与目标端数据字段的转换规则,其逻辑关系如图3所示。

2.3交换操作元数据

实现异构数据交换的核心功能是进行ETL,即抽取、转换和加载,为了提高整个ETL过程的可控性、灵活性、通用性,需要对每个操作过程加以控制,因此交换操作元数据由数据抽取元数据、数据转换元数据、数据加载元数据和操作控制元数据组成。2.3.1数据抽取元数据

数据抽取就是按照事先制定的抽取策略将需要的数据从源端数据源抽取出来,对于数据抽取元数据的描述可用三元组表示,记为E(Ed,Es,Ep)。其中Ed为源端数据源,包括数据源连接信息和结构信息,Es为数据抽取范围,包括需要抽取的表及字段信息的集合和每张表内需要抽取的内容范围,Ep为抽取策略,分为手动抽取、定时抽取、准实时抽取等。2.3.2数据转换元数据

数据转换就是根据目标数据结构与源数据结构的映射关系,按照转换规则,将从源端数据库抽取出来的数据转换为与目标数据库相适应的数据,描述数据转换元数据可用四元组表示,记为T(Ts,Td,Te,Tr)。其中Ts为源端数据库,包括数据结构信息,Td为目标数据库,包括目标数据库结构信息,Te为需要转换的数据,是数据抽取结果的实例,Tr为源端数据结构与目标端数据结构的映射关系,是数据映射的实例。2.3.3数据加载元数据

数据加载就是将特定的、经过转换的数据加载到目标数据库中,描述数据加载元数据可用三元组表示,记为L(Ld,Lt,Lp)。其中Ld为目标数据库,包括数据库连接信息和结构信息,Lt为需要加载的数据,是数据转换结果的实例,Lp为数据加载策略,分为先清空后加载、增量加载、直接追加转载等。2.3.4操作控制元数据

数据交换需求,可以抽象为一个交换任务,一个交换任务是由若干个数据交换操作过程来实现的,为了使数据交换的各部分有机协调工作,需要操作元数据控制整个数据交换过程,描述操作元数据可用五元组表示,记为C(Ct,Cd,Cs,Cr,Cl)。Ct为与一次交换任务相关的信息,Cd为当前交换操作的目标数据库,Cs为当前交换操作的源数据库,Cr为当前交换操作关联的数据映射集合,Cl为当前交换操作过程产生的日志信息结合。3设计实现

3.1系统逻辑

基于以上数据交换元数据,一个通用的数据交换系统框架由5层结构组成,分别是数据源层、数据访问层、元数据层、交换功能层和应用层,如图4所示。

数据源层:需要进行数据交换的所有数据源,能够支持数据源动态地加入或退出。

数据访问层:功能模块访问数据源的统一接口,它为上层的功能应用屏蔽了异构数据源访问差异,其核心是为不同类型的数据源建立相应的适配器。

元数据层:存储数据交换功能的元数据,它是数据交换功能的驱动源。

交换功能层:由实现数据抽取转换的各功能模块组成,包括数据抽取功能、数据转换功能、数据、数据加载功能和过程控制功能等。

应用层:提供数据源注册管理、数据映射编辑、数据交换策略管理、交换任务管理、交换任务执行、交换日志管理等用户交互操作界面。

3.2系统应用流程

数据交换系统应用流程包括:

(1)注册数据源。按照数据源描述元数据的要求,将需要进行数据交换的数据源加入到交换系统中,详细描述数据源相关信息,包括连接信息和数据结构信息。

(2)编辑数据映射。根据数据交换需求,针对参与交换的源数据库和目标数据库的结构差异,建立字段级数据映射关系,选择相应的数据转换函数。

(3)数据交换任务管理。创建数据交换任务,设置交换策略。选择源数据库和目标数据库,确定任务启动方式(手动或自动)、启动时间、间隔周期等参数;根据数据抽取、数据转换和数据加载元数据要求,描述数据抽取范围、数据抽取策略、数据加载策略等。

(4)数据交换任务执行。根据交换任务启动策略,启动一个交换任务。系统完成数据抽取、数据转换、数据加载等动作,并记录任务执行过程中的相关日志信息。

(5)数据交换日志管理。查看相关任务执行过程中的日志信息。

4结语

本文通过分析数据交换过程,提炼出数据交换的元数据模型,基于这些元数据模型构建了通用的数据交换系统。实践表明,基于元数据驱动的数据交换系统,屏蔽了异构数据源的差异,适应了数据映射规则的多样可扩展特性,满足了交换策略的灵活可定制要求。通过该系统,可以集中管理异构数据源,进行异构数据之间的转换,具有良好的适应性、灵活性、通用性和可扩展性,为进行大规模的数据迁移和数据集成提供了基础支撑。

参考文献:

张朝晖,徐立臻,董逸生.一种基于SOA的企业集成平台[J].计算机工程,2011,37(5):115119.

邓新莉,张四平,刘 珊,等.基于中间件平台的异构数据交换与集成[J].四川兵工学报 ,2011,32(3):2628.

邹卫国,郭建胜,王毅.基于XML的异构数据交换研究 [J]. 中国管理信息化,2009,12(24):184189.

王盼卿,刘增良,陶源.基于元数据的ETL工具集成研究 [J]. 2009,25(12):5861.

李庆阳,彭宏.面向数据质量的ETL框架的设计与实现[J]. 2010,31(9):6670.

责任编辑(责任编辑:杜能钢)

猜你喜欢
数据交换元数据
XBRL在财务报表网络数据交换中的应用
元数据与社会化标签在微视频搜索中的应用
高等院校智慧校园建设规划与实现
财会信息资源元数据标准的研究