首页> 中国专利> 一种云环境中数据交换与共享方法及系统

一种云环境中数据交换与共享方法及系统

摘要

本发明提出了一种云环境中数据交换与共享方法及系统,涉及数据共享与处理技术领域。本发明基于数据交换模型实现交换数据在异构数据库和应用系统中的数据交换与共享,该数据交换模型基于可配置的方式,预定义不同数据源中的数据结构转换、数据项表达映射操作。在数据交换过程中,基于这一预定义内容进行数据的自动处理。同时,并结合数据仓库,为用户提供统计、分析等服务。通过本发明所提出的异构数据采集与交换技术可以为用户屏蔽底层不同的数据源,从而使使用不同数据库的应用系统之间能共享、交换数据和信息。这一发明在大型分布式信息系统数据集成领域具有积极的应用价值。

著录项

  • 公开/公告号CN106776780A

    专利类型发明专利

  • 公开/公告日2017-05-31

    原文格式PDF

  • 申请/专利权人 中国科学院软件研究所;

    申请/专利号CN201611042431.X

  • 申请日2016-11-23

  • 分类号G06F17/30(20060101);

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人邱晓锋

  • 地址 100190 北京市海淀区中关村南四街4号

  • 入库时间 2023-06-19 02:23:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-01

    授权

    授权

  • 2017-06-23

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20161123

    实质审查的生效

  • 2017-05-31

    公开

    公开

说明书

技术领域

本发明涉及异构数据处理领域,具体涉及云环境中异构数据的共享、交换与集成技术。本发明基于数据交换模型实现交换数据在异构数据库和应用系统中的数据交换,通过数据交换模型对不同的数据源进行统一存储管理,并结合数据仓库,为用户提供统计、分析等服务。通过本发明所提出的云环境中数据交换与共享方法及系统可以为用户屏蔽底层不同的数据源,从而使使用不同数据库的应用系统之间能共享、交换数据和信息。

背景技术

近年来,随着信息技术的深入发展,数据模型和各业务流程不断完善,出现了大量的不同类型的数据库系统,比如关系数据库、NoSQL数据库和JSON数据库等。这些数据库系统不仅软硬件平台各异,不同数据库之间的数据结构和存储方式也来自不同的数据库模型而各不相同,不同数据库中有相同语义的对象可能具有不同的名称,而且这些对象可能由不同的单位进行度量,致使相互的异构数据库系统之间不能进行共享,使得各个数据库系统之间的交互变得越来越复杂和困难,大大降低了数据的利用价值。在数据联通方面,典型问题就是“信息孤岛”的出现。各个信息化系统各自为战,各自拥有自己的数据存储模式,各自拥有自己的系统架构,这对企业各个部门之间、各个企业之间进行数据交换形成了巨大的障碍。同时,这种“信息孤岛”往往伴随着系统耦合性高的问题,这又造成了系统可改造性能低,既不便于自己业务的拓展,也不利于引入第三方服务,不能快速的适应互联网技术的快速发展,逐渐造成了自我封闭的困境。

数据交换的目的就是消除这种信息孤岛,为用户提供一个统一的查询接口,屏蔽底层数据源的不同,使得用户不必再考虑底层数据源的数据模型、物理位置和语义异构等问题,将多个分布、异构数据源集成在一起,从而使这些使用不同数据库的应用系统之间能共享、交换数据和信息,形成一个虚拟的、统一的系统。

目前针对数据交换的需求,比较成型的解决办法主要有两种:

一种是传统的EDI(Electronic Data Interchange)技术,也就是所谓的电子数据交换技术,将数据标准化和格式化,并通过计算机网络,在计算机网络系统之间进行数据交换和自动处理。EDI发送方取出要发送的数据转换成平面文件,然后将平面文件翻译为统一标准EDI报文并组成EDI信件,发送给接收方,接收方收到后将信件拆开并翻译为平面文件,转换并送到应用系统中进行处理。由于EDI是采用统一标准编制数据信息的,数据交换必须按规定程式进行,一旦目的端变了,就要做出新规定,缺少扩充性,无法满足业务系统中不同异构数据源进行数据交换的需求。

另一种为建立数据仓库,其用于交换和处理数据的技术大致有三种。其一,最常用的方法就是ETL(Extract-Transform-Load),通过ETL技术,将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后经过清洗、转换、集成,最后加载到数据仓库或数据集市中,即从数据源抽取出所需的数据,经过数据清洗并转换为一个标准的格式,最终按照预先定义好的数据仓库模型将数据加载到数据仓库中去,从而实现数据在系统间的转移;在这个过程中还可对数据顺带做一些修改,使其满足条件,最后完成整个数据交换工作。在传统行业的数据仓库项目中,大多会采用一些现成的ETL工具,如Informatica、Datastage、微软SSIS等,但专业的ETL厂商的产品(Informatica等)往往功能复杂配置繁琐,其高昂的价格也会使一般用户望而却步,而整体数据仓库方案供应商或数据库提供商(Oracle Warehouse Builder等)提供的相应的ETL工具仅对自己厂商的相关产品有很好的支持并能发挥出最大效率,但其结构相对封闭,无法支持多个异构数据源的数据进行数据交换。目前国内同类软件开发相对落后,较成熟的异构数据转换产品非常少,软件的可操作性较差,在功能、性能上都不够理想。其二,另外一个流行的方法就是ELT(Extract-Load-Transform),与ETL不同的是,数据从数据源中的数据库被抽取出来后,装入暂存区并进行清洗和优化,而在数据仓库中则进行和数据交换与集成有关的纯粹的转换,但该方法仅适用于数据比较灵巧、结构化非常好以及数据量非常小的场合。其三,CDC(Change Data Capture)即增量数据采集技术,在源系统上安装一个第三方应用程序从数据库日志中提取数据来收集数据的变化,将增量数据从数据源中抽取出来,并传送到数据仓库中。在目标端,安装同样的第三方应用系统,用于处理每个抽取过来的数据,并装入数据仓库的暂存区,然后对数据进行清洗、优化并转换到其在数据仓库中的最终目的地。此种方法适用于需要以近乎实时的方式处理数据、数据的可用性非常关键的场合,但此种方法关注于动态变化的增量数据,不能适用于全量数据。

所以,需要一种异构数据间进行交换和集成的方法,该方法既可以满足用户对种类繁多的异构数据源进行整合的需求,进而使它们成为对联机分析系统和数据挖掘等决策分析有用的数据,又可以通过全量/增量方式进行数据的后期更新。

发明内容

本发明的目的是针对现有异构数据源之间数据交换和集成困难的问题,提供一种云环境中数据交换与共享方法。

本发明为实现上述目的所采用的技术方案为:

一种云环境中数据交换与共享方法,其步骤包括:

1)在前置区部署交换数据库和数据交换模块,在后台部署数据接入与认证管理模块、数据仓库管理模块、中间数据库、以及数据仓库;

2)建立数据交换模型,该数据交换模型定义交换数据库与中间数据库中的各个数据库、数据表、数据项以及数据相互之间的对应关系;

3)通过前置区的数据交换模块管理交换数据库,通过交换数据库从数据源接收采集的数据,数据交换模块依据数据交换模型中的数据转换规则进行数据转换,并将转换后的数据推送给后台的数据接入与认证管理模块;

4)后台的数据接入与认证管理模块对接收到的数据进行认证和校验,然后将数据写入中间数据库;

5)后台的数据仓库管理模块根据管理制度,以特定的时间周期从中间数据库中提取数据进行处理、统计与分析,将所得结果作为数据产品存储在数据仓库中。

一种云环境中异构数据交换与共享系统,该系统包括:

数据源、前置区、后台,该前置区包括数据交换模块、交换数据库,该后台包括数据接入与认证管理模块、数据仓库管理模块、辅助服务模块以及中间数据库、数据仓库、备份数据库,其中:

所述数据交换模块在交换端的前置区中值守交换数据库,交换端的采集方根据管理要求采集数据后将其提取、推送到交换数据库中。而后给数据交换模块发送消息,提交数据交换请求,完成数据的提交与交换过程。所述“交换端”是指与其他采集系统进行交互的部分;“值守”是指数据交换模块按照预定的时间,周期性地从交换数据库中提取最新数据,并将其发送给数据接入与认证管理模块;“交换端的采集方”是指采集交换数据的线程,通过其定义的数据采集接口采集到数据后推送到本系统的交换数据库中。

所述数据接入与认证管理模块中包括一个数据接入与认证服务器,用来与前置区进行通信与数据交换,前置区数据交换到系统中后,根据当前数据包的标签对数据源的标签信息进行认证,完成认证后,将数据解密。同时,根据数据标准对其中的数据进行校验,完成这一工作后,将数据写入中间数据库中,完成数据交换的基本步骤。

所述数据仓库管理模块用于在数据增量过程中,根据管理制度以特定的时间周期,对数据仓库中的信息进行迭代。

所述辅助服务模块为系统的正常运转提供数据备份、大数据处理分析以及数据加密解密等服务服务。

在前置区中,数据源在增量过程中将数据推送到交换数据库中,而后将推送结果信息提交给数据交换模块。数据交换模块接收到这一信息后,根据基线与数据源身份从交换数据库中提取对应的数据集加密封装后,填写标签,而后将数据向后台转发。数据在每个特定的时间段都需要标识出一个数据版本,其中的“基线”即是用来标识时间段的信息。

在后台中,后台的数据接入与认证管理模块接收到前置区的数据转发请求后,接收数据包,根据数据包的标签内容首先进行数据包的认证。完成这一工作后,将数据进行校验,通过校验的数据写入中间数据库中,在写入过程中将数据源与基线信息与原始数据一并写入。另一方面,数据仓库管理模块根据管理制度,定期从中间数据库中提取数据进行处理、统计与分析。在这一过程中根据系统配置的统计量进行计算,计算的结果作为数据产品存储在数据仓库中,辅助服务模块面向不同环节提供大数据并行集群基本处理、数据加密解密以及数据备份的支撑服务。

本发明的有益效果如下:

本发明采用http协议通过Web服务调用的方式完成不同安全域下的应用系统之间的数据交换,具有容错处理机制,可以为行业应用系统以及各数据库系统中提供一种低耦合的、稳定安全的数据交换与集成方案,解决当前信息集成领域需要对数据交换集成功能进行重复开发,以及现有数据交换与集成方法不能满足各种应用场景下的信息领域需求、与应用系统耦合度高可扩展性差的问题,降低数据交换和维护成本,保证数据库的安全性和正确性,避免了重复建设和资源浪费。

附图说明

图1是实施例提供的系统架构示意图;

图2是实施例提供的系统基本组织关系示意图;

图3是总体数据交换执行流程示意图;

图4是后台中间数据库的完整写入执行流程示意图;

图5是后台数据仓库产品加工的完整执行流程示意图;

图6是数据产品加工过程中大数据处理执行流程示意图。

具体实施方式

下面通过具体实施例和附图,对本发明做进一步说明。

针对大型分布式信息系统数据交换与集成的需求,本发明提出一种云环境中数据交换与共享方法以及应用该方法的系统。这一方法在日常采集、交换的基础上,结合离线数据仓库与实时在线分析的手段,为不同用户提供行业信息统计、分析与辅助决策的服务。图1中展示了这一系统的整体架构方案,包括前置接入层、中间数据层和数据产品层。

图2中展示了这一系统的基本组织关系,包括数据源、前置区、后台,其中前置区包括数据交换模块、交换数据库,后台包括数据接入与认证管理模块、数据仓库管理模块、辅助服务模块以及中间数据库、数据仓库等。所述数据交换模块在交换端的前置区中值守交换数据库,交换端的数据源根据管理要求采集数据后将其提取、推送到交换数据库中,而后将交换请求提交给交换值守,完成数据的提交与交换过程,主要包括数据交换信息接口、交换数据库管理、数据交换任务组织、交换数据提取转换与传输等功能。所述数据接入与认证管理模块根据当前数据包的标签对交换源的标签信息进行认证,完成认证后,将数据解密。同时,根据数据标准对其中的数据进行校验,并将数据写入中间库中,完成数据交换的基本步骤,主要包括数据接入认证、数据预处理、中间库管理、数据基线编码管理等功能。所述数据仓库管理模块根据上层数据服务的分析模型构造对应的统计量与存储模型。在数据增量过程中,根据管理制度以特定的时间周期,对仓库中的信息进行迭代,主要完成数据仓库与统计量配置、数据统计任务执行、数据仓库吞吐管理等。

1.数据交换模型

数据交换模型,是数据交换的重要依据,定义了在交换数据库与中间数据库中,其各个数据库、数据表、数据项以及数据相互之间的对应关系,采用分层定义的方法,将其定义为一个两元组:

dbExchangeModel={(modelname,dbRelationModel,time)i|i=0,1,...,n}

其中,modelname表示该模型的唯一标识,dbRelationModel为交换的数据库之间相关内容的对应关系模型,time记录该模型创建以及修改的时间。在一个中间数据库系统中,数据交换模型为一个模型集合,可以有多个数据交换模型对象,用来定义不同的其他数据库应用与中间数据库系统之间数据的交换规则。

进一步,将dbRelationModel定义为如下一个三元组:

dbRelationModel=(dbname,jsondbname,tableSet)

其中,dbname表示交换数据库在与中间数据库进行数据交换的数据库名称,jsondbname表示数据交换时存储在中间数据库中的数据库名称,tableSet={tablej|j=0,1,...,m}是在交换数据库中要进行数据交换的数据表模型对象组成的集合,数据表模型table规定不同数据库中进行数据交换时数据表之间对应关系的规则,定义如下:

table=(tablename,tablealias,type,primaryKey,columnSet)

其中,tablename表示交换数据库中数据表的名称,tablealias为该数据表交换到中间数据库后的数据表名称;type定义该数据表在数据交换过程中的交换模式,包括全量交换ALL和增量交换INCRE;primaryKey标记该数据表中的主键集合,当只有一个主键时,集合内只有一个值,主键集合中的每一个主键值都在columnSet中有定义,即满足columnSet={columnk|k=0,1,...,columnsN-1}是在交换数据库中要进行数据交换的数据项模型对象组成的集合,其columnsN是数据表中要进行数据交换的数据项数量,数据项模型column定义了交换数据库与中间数据库中,数据项之间的交换规则。由于同一个数据项的不同数据之间还存在对应关系,需要将数据项模型column再定义为一个三元组:

column=(columnname,columnalias,datatype,dataRelationSet}

其中,columnname为交换数据库中该数据项的名称,columnalias表示该数据表交换到中间数据库后的数据项名称,datatype规定该数据项的数据值属性,规定为TEXT、NUMBER、DATE等,dataRelationSet={(prevalue1t,prevalue2t,postvalue1t,postvalue2t)|t=0,1,2,...}是在此数据库中进行数据交换过程时,交换数据库与中间数据库之间数据值的转换关系集合,其中,prevalue1表示数值转换时在交换数据库中数值转换区段的起始数值,prevalue2表示数值转换时在交换数据库中数值转换区段的结束数值,postvalue1表示数值转换时在中间数据库中数值转换区段的起始数值,postvalue2表示数值转换时在中间数据库中数值转换区段的结束数值,t表示数值转换区间段的序号。在表示TXT等非数值型数据、单个数值转换映射时,将postvalue1与postvalue2置为NULL即可。

2.数据交换

如图所示,数据交换总体流程如图3所示:

1)在系统启动时,后台的数据接入与认证服务器初始化AES密钥key1、初始化RSA密钥对;

2)数据源访问数据交换与集成系统接口请求进行数据交换认证;

3)根据当前数据包的标签对数据源的标签信息进行认证,若当前数据源身份不合法,提示认证失败,流程结束;

4)若当前数据源身份合法,获取当前的基线信息,并返回给数据源身份认证与基线信息;

5)数据源将要写入的数据、认证信息和基线信息写入到前置区交换数据库;

6)数据写入完成后,数据源发送写入完成消息给数据交换与集成系统,通知数据写入完成;

7)数据交换与集成系统接收到数据源的消息后,从交换数据库中提取与数据源对应的基线数据;

8)前置区数据交换模块初始化AES密钥key2;

9)后台将RSA公钥发送给前置区;

10)前置区使用RSA公钥加密自己的AES密钥key2,并发送给后台;

11)后台使用RSA私钥解密AES密钥key2,并加密自己的AES密钥key1后发送给前置区;

12)前置区解密出AES密钥key1;

13)前置区与后台都通过key1与key2组合出AES密钥key;

14)将当前基线数据使用AES密钥key进行加密打包,并封装对应的数据源与基线标签以及数字签名后,传输给后台数据接入与认证模块;

15)后台数据接入与认证模块收到前置区传送的数据后,根据数据包的标签内容进行数据包的认证;

16)后台对接收到的数据进行一致性校验,通过校验的数据根据数据的增量模式进行本地数据合并与处理;

17)后台完成数据写入,返回写入结果信息;

18)数据接入与认证模块返回给数据源数据写入结果信息;

19)删除源数据库的基线数据,并提示写入的结果错误信息,流程结束。

当要交换的数据量大时,根据数据库以及数据表进行分包发送,在数据包中,标识分包的类型以及发送是否结束并关闭连接等信息。

3.后台数据提交

图4展示了在后台中间数据库的完整写入执行流程:

1)后台接收到前置区的数据交换请求后,解析数据包中的数据源与基线标签信息;

2)根据标签内容进行数据源与基线信息的认证,若认证不通过,提示认证失败,流程结束;

3)若认证通过,对数据进行解密,并对其分页信息进行校验,若校验不通过,提示认证失败,流程结束;

4)若校验通过,则提取数据包中的分页数据,判断当前分页的数据增量模式;

5)针对全量交换数据,若中间数据库中存在当前的基线数据,删除当前该基线中与当前数据对应的数据行;

6)将当前分页中的数据写入中间库;

7)针对增量交换数据,若中间数据库中存在当前的基线数据,更新这些数据,否则将当前分页中的数据写入中间库;

8)汇总写入的错误信息;

9)将结果信息返回给前置区;

10)流程结束。

图5展示了在后台数据仓库产品加工的完整执行流程:

1)数据仓库管理模块根据配置信息等待任务调度;

2)在当前基线周期关闭或者收到增量数据时,启动后台数据仓库产品加工任务,若任务启动失败,则流程结束;

3)获取最新的基线信息,提取仓库数据处理任务的配置信息;

4)根据最新基线的统计量配置信息,提取中间库中的当前基线周期内的数据集,若统计量任务都已完成,转步骤6),若还有统计量未进行处理,转步骤5);

5)查询当前数据集中最后的基线信息,若该基线数据集已经被处理,则放弃该统计量处理,转步骤9),否则提取中间库中最后周期内的基线数据;

6)将各个统计量的目标数据集合进行合并;

7)根据集合分区提取分区信息,提交数据处理平台分区进行各个统计量的计算处理;

8)形成数据产品,写入数据仓库;

9)提取下一个统计量任务,转步骤4);

10)完成当前基线的统计量产品加工任务;

11)流程结束。

4.数据处理加工

数据产品加工过程中,数据处理执行流程如图6所示:

1)数据产品加工过程中,完成各个统计量的处理任务后,汇总提交任务数据集;

2)获取集合分区信息;

3)将任务数据集提交数据处理平台,根据集合分区将计算处理任务分割成各个子任务进行计算处理;

4)给子任务分配该分区中的一个最小分区,子任务从数据集中提取分区中的数据进行规模统计分析;

5)根据当前基线信息提取对应分区上的一个基线数据集;

6)针对该数据集计算相应统计量的环比、同比对比数据,完成最小分区当前基线数据处理;

7)提取当前分区任务下一个最小分区信息,若全都已经计算完成,转步骤8),否则,转步骤4)继续执行;

8)子任务汇总各个最小分区下计算处理的结果数据,子任务执行完成,返回执行结果;

9)汇总各个子任务的执行结果并输出返回,流程结束。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号