基于环形高速缓冲区的异构数据交换方法及装置与流程

文档序号:18192565发布日期:2019-07-17 05:39阅读:208来源:国知局
基于环形高速缓冲区的异构数据交换方法及装置与流程

本发明涉及一种异构数据交换方法,尤其是指一种基于环形高速缓冲区的异构数据交换方法。



背景技术:

由于历史原因,政务信息系统建设采用小步加快步走的方式,导致职能部门间的信息系统的数据难以实现共通共融,且每个信息系统数据库的管理和运行标准不一致,导致在需要共享各系统的数据时往往难以调出和实用。为了满足各级政府履行职能的需要,实现跨部门业务协同,提高各级政府管理效率和公共服务水平,需要实现不同部门异构应用系统间信息交换与共享。

现有异构信息系统的数据交换技术,基本都是通过接口程序或者使用简单的etl工具实现,在关系型数据库的数据交换过程中,数据交换性能并不高,gp数据库的数据交换过程尤其慢,并不能满足大数据时代,异构数据库之间的异构数据交换同步的要求;现有异构信息系统的数据交换技术并不能实现多张表交换或者整库拷贝,每次只能交换一张表的数据,数据的来源也难以追踪,不能保证数据在传输过程中的传输安全、数据落地时的存储安全,以及落地后的访问安全。



技术实现要素:

本发明所要解决的技术问题是:针对关系型数据库交换性能不高,交换速率低。

为了解决上述技术问题,本发明采用的技术方案为:一种基于环形高速缓冲区的异构数据交换方法,它包括预设置流程、初始化流程、数据交换流程;

所述预设置流程包括:

收集常用数据库的数据类型的步骤;

收集的数据类型与java.sql.types的数据类型,通过转换表达式建立数据交换适配关系的步骤;

所述初始化流程包括:

获取目标数据库的数据库类型;

判断目标数据库的类型,如果为关系型数据库,顺序执行步骤s31、s32;

所述数据交换流程包括:数据读取子流程与数据写入子流程;

所述数据读取子流程包括:

从源数据库获取交换数据的步骤;

将交换数据写入高速缓冲区的步骤;

所述数据写入子流程包括以下步骤:

s31)、从高速缓冲区读取交换数据,并根据数据交换适配关系配制preparedstatement的set数据类型;

s32)、将交换数据写入关系型数据库。

优选地,初始化流程中,如果获取到目标数据库的数据库类型为gp数据库,则执行步骤s33-s35;

s33)、从高速缓冲区读取交换数据,将交换数据形成数据交换文件写入本地;

s34)、通过ftp命令把生成的数据交换文件上传到gp数据库服务器;

s35)、使用jdbc的copy命令把上传来的数据交换文件导入gp数据库。

优选地,所述初始化流程还包括:

锁定数据交换增量区间的步骤;

确定连接源数据库或者目标数据库的步骤;

由给源数据库/目标读取数据交换区间通知消息的步骤;

读取数据交换日志的步骤;

根据数据交换区间通知消息/数据交换日志锁定数据交换增量区间的步骤;

在数据写入子流程之后还包括:

给源数据库/目标数据库发送数据交换区间通知消息的步骤;

记录包含数据交换文件的数据交换日志的步骤。

优选地,所述预设置流程还包括基于元数据技术定义一套安全策略的步骤;

在数据读取子流程与数据写入子流程之间还包括数据加密流程,所述数据加密流程包括:

s21)、根据预设置中定义的安全策略对数据读取流程中从源数据库读取的数据进行签名与加密的步骤;

s22)、根据预设置中定义的安全策略对源数据库读取的数据进行解签与解密的步骤。

优选地,所述初始化流程设定需要交换的数据区间;所述数据区间可为整个数据库、数据库中一张表的部分、数据库中一张表、数据库中多张表的部分或者数据库中多张表。

一种基于环形高速缓冲区的异构数据交换装置,包括预设置模块、初始化模块、数据交换模块,数据交换模块包括数据读取子模块与数据写入子模块;预设置模块包括:

数据库类型收集单元,用于收集常用数据库的数据类型;

数据适配单元,用于收集的数据类型与java.sql.types的数据类型,通过转换表达式建立数据交换适配关系;

初始化模块包括:

数据库类型获取单元,用于获取目标数据库的数据库类型;

数据库类型判断单元:判断目标数据库的类型;

数据读取子模块包括:

数据获取单元,用于从源数据库获取交换数据;

缓冲区写入单元,将交换数据写入高速缓冲区;

数据写入子模块包括:

数据类型适配单元,用于从高速缓冲区读取交换数据,根据数据交换适配关系配制preparedstatement的set数据类型,而后转到数据写入单元;

数据写入单元,用于将交换数据写入关系型数据库。

优选地,基于环形高速缓冲区的异构数据交换装置,包括;

交换文件形成单元:用于从高速缓冲区读取交换数据,将交换数据形成数据交换文件写入本地,而后转到交换文件上传单元;

交换文件上传单元,用于通过ftp命令把生成的数据交换文件上传到gp数据库服务器,而后转到交换文件导入单元;

交换文件导入单元,用于使用jdbc的copy命令把上传来的数据交换文件导入gp数据库。

优选地,基于环形高速缓冲区的异构数据交换装置,它包括初始化模块,其中包括:

增量锁定单元,用于锁定数据交换增量区间的步骤;

数据库确定单元,用于确定连接源数据库或者目标数据库的步骤;

消息发送单元,用于给源数据库/目标读取数据交换区间通知消息;

日志读取单元,用于读取数据交换日志;

数据锁定单元,用于根据数据交换区间通知消息/数据交换日志锁定数据交换增量区间;

在数据写入子模块之后还包括数据收尾模块,其中包括:

消息通知单元,用于给源数据库/目标数据库发送数据交换区间通知消息的步骤,而后转到日志记录单元;

日志记录单元,用于记录包含数据交换文件的数据交换日志的步骤。

优选地,基于环形高速缓冲区的异构数据交换装置,它包括数据加密模块,数据加密模块包括:

数据加密签名单元,用于根据预设置中定义的安全策略对数据读取流程中从源数据库读取的数据进行签名与加密,而后转到数据解签解密单元;

数据解签解密单元,用于根据预设置中定义的安全策略对源数据库读取的数据进行解签与解密。

优选地,基于环形高速缓冲区的异构数据交换装置,其中初始化模块包括:

交换区间设定单元,用于设定需要交换的数据区间,所述数据区间可为整个数据库、数据库中一张表的部分、数据库中一张表、数据库中多张表的部分或者数据库中多张表。

本发明的有益效果在于:区别于现有技术中的使用简单的etl工具,在关系型数据库交换性能不高,本发明提供了一种基于环形高速缓冲区的异构数据交换方法,对常用数据库的数据类型进行适配,通过一个转换表达式让常用数据库的数据类型之间建立适配关系,此适配关系能够有效提升数据交换的性能,极大地减少数据交换时间,提升数据流转效率。

附图说明

下面结合附图详述本发明的具体结构

图1为本发明的流程图。

具体实施方式

为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式详予说明。

方法实施例

一种基于环形高速缓冲区的异构数据交换方法,它包括预设置流程、初始化流程、数据交换流程;

所述预设置流程包括:

收集常用数据库的数据类型的步骤;

收集的数据类型与java.sql.types的数据类型,通过转换表达式建立数据交换适配关系的步骤;

所述初始化流程包括:

获取目标数据库的数据库类型;

判断目标数据库的类型,如果为关系型数据库,顺序执行步骤s31、s32;

所述数据交换流程包括:数据读取子流程与数据写入子流程;

所述数据读取子流程包括:

从源数据库获取交换数据的步骤;

将交换数据写入高速缓冲区的步骤;

所述数据写入子流程包括以下步骤:

s31)、从高速缓冲区读取交换数据,并根据数据交换适配关系配制preparedstatement的set数据类型;

s32)、将交换数据写入关系型数据库。

通过收集常用数据库的数据类型进行适配,对目标数据库为关系型数据库,通过一个转换表达式让常用数据库的数据类型之间建立适配关系,已经适配了的数据类型,通过此适配关系,在数据的交换过程中,能够有效提升数据交换的性能,极大地减少数据交换时间,提升数据流转效率,对目标数据库为交换型数据库的数据交换提高3~5倍。

实施例一

优选地,初始化流程中,如果获取到目标数据库的数据库类型为gp数据库,则执行步骤s33-s35;

s33)、从高速缓冲区读取交换数据,将交换数据形成数据交换文件写入本地;

s34)、通过ftp命令把生成的数据交换文件上传到gp数据库服务器;

s35)、使用jdbc的copy命令把上传来的数据交换文件导入gp数据库。

本实施例中,对于目标数据库为gp型数据库,在源数据库与gp数据库之间建立一个ftp过程,通过ftp命令把数据交换文件导入gp数据库服务器,再使用jdbc的copy命令将数据文件导入gp数据库,通过此优化,能够大大缩短目标数据库为gp数据库的数据交换时间,提高数据交换的速率至少30倍。

实施例二

优选地,所述初始化流程还包括:

锁定数据交换增量区间的步骤;

确定连接源数据库或者目标数据库的步骤;

由给源数据库/目标读取数据交换区间通知消息的步骤;

读取数据交换日志的步骤;

根据数据交换区间通知消息/数据交换日志锁定数据交换增量区间的步骤;

在数据写入子流程之后还包括:

给源数据库/目标数据库发送数据交换区间通知消息的步骤;

记录包含数据交换文件的数据交换日志的步骤。

本实施例中,锁定数据交换区间,明确了需要交换的数据,数据交换时,只需要对数据交换区间内的数据进行交换,而不需要对整个数据表或者数据库进行同步更新交换,能够有效提高数据交换的速率;数据写入目标数据库后,给源数据库或目标数据库发送数据交换区间通知信息,记录数据交换日志,明确记录了数据交换的位置,当进行下一次数据交换时,数据初始化流程对区间通知信息和数据交换日志进行读取,获取数据交换的起始位置。

实施例三

优选地,所述预设置流程还包括基于元数据技术定义一套安全策略的步骤;

在数据读取子流程与数据写入子流程之间还包括数据加密流程,所述数据加密流程包括:

s21)、根据预设置中定义的安全策略对数据读取流程中从源数据库读取的数据进行签名与加密的步骤;

s22)、根据预设置中定义的安全策略对源数据库读取的数据进行解签与解密的步骤。

本实施例中,基于元技术定义了一套安全策略,能保证数据的存储、传输以及访问安全,并且,基于元技术实现数据的加密与签名的策略,可一次定义,多方使用,在每次的数据交换过程中会分配不同的秘钥或证书。

实施例四

优选地,所述初始化流程设定需要交换的数据区间;所述数据区间可为整个数据库、数据库中一张表的部分、数据库中一张表、数据库中多张表的部分或者数据库中多张表。

本实施例中,初始化流程中对需要交换的数据区间进行了设定,解决了每次只能交换一张表的数据,满足了多张表或者整个数据库拷贝的业务需求,提高了数据交换的速率。

装置实施例

本发明还涉及一种基于环形高速缓冲区的异构数据交换装置,包括预设置模块、初始化模块、数据交换模块,数据交换模块包括数据读取子模块与数据写入子模块;预设置模块包括:

数据库类型收集单元,用于收集常用数据库的数据类型;

数据适配单元,用于收集的数据类型与java.sql.types的数据类型,通过转换表达式建立数据交换适配关系;

初始化模块包括:

数据库类型获取单元,用于获取目标数据库的数据库类型;

数据库类型判断单元:判断目标数据库的类型;

数据读取子模块包括:

数据获取单元,用于从源数据库获取交换数据;

缓冲区写入单元,将交换数据写入高速缓冲区;

数据写入子模块包括:

数据类型适配单元,用于从高速缓冲区读取交换数据,根据数据交换适配关系配制preparedstatement的set数据类型,而后转到数据写入单元;

数据写入单元,用于将交换数据写入关系型数据库。

数据库类型收集单元通过对常用数据库的数据类型进行收集,数据适配单元对数据类型建立适配关系,对目标数据库为关系型数据库,数据类型适配单元根据数据交换适配关系配置数据类型,数据写入单元直接将交换数据写入目标数据库,在数据的交换过程中,能够有效提升数据交换的性能,极大地减少数据交换时间,提升数据流转效率,。

实施例五

优选地,基于环形高速缓冲区的异构数据交换装置,包括;

交换文件形成单元:用于从高速缓冲区读取交换数据,将交换数据形成数据交换文件写入本地,而后转到交换文件上传单元;

交换文件上传单元,用于通过ftp命令把生成的数据交换文件上传到gp数据库服务器,而后转到交换文件导入单元;

交换文件导入单元,用于使用jdbc的copy命令把上传来的数据交换文件导入gp数据库。

本实施例中,对于目标数据库为gp型数据库,在源数据库与gp数据库之间建立一个ftp过程,交换文件上传单元通过ftp命令把数据交换文件导入gp数据库服务器,交换文件导入单元使用jdbc的copy命令将数据文件导入gp数据库,通过此优化,能够大大缩短目标数据库为gp数据库的数据交换时间,数据交换的速率至少提高30倍。

实施例六

优选地,基于环形高速缓冲区的异构数据交换装置,它包括初始化模块,其中包括:

增量锁定单元,用于锁定数据交换增量区间的步骤;

数据库确定单元,用于确定连接源数据库或者目标数据库的步骤;

消息发送单元,用于给源数据库/目标读取数据交换区间通知消息;

日志读取单元,用于读取数据交换日志;

数据锁定单元,用于根据数据交换区间通知消息/数据交换日志锁定数据交换增量区间;

在数据写入子模块之后还包括数据收尾模块,其中包括:

消息通知单元,用于给源数据库/目标数据库发送数据交换区间通知消息的步骤,而后转到日志记录单元;

日志记录单元,用于记录包含数据交换文件的数据交换日志的步骤。

本实施例中,增量锁定单元锁定数据交换区间,明确了需要交换的数据,数据交换时,只需要对数据交换区间内的数据进行交换,而不需要对整个数据表或者数据库进行同步更新交换,能够有效提高数据交换的速率,数据写入目标数据库后,数据收尾模块给源数据库或目标数据库发送数据交换区间通知信息,记录数据交换日志,明确记录了数据交换的位置,当下一次数据交换时,数据初始化模块对区间通知信息和数据交换日志进行读取,获取数据交换的起始位置。

实施例七

优选地,基于环形高速缓冲区的异构数据交换装置,它包括数据加密模块,数据加密模块包括:

数据加密签名单元,用于根据预设置中定义的安全策略对数据读取流程中从源数据库读取的数据进行签名与加密,而后转到数据解签解密单元;

数据解签解密单元,用于根据预设置中定义的安全策略对源数据库读取的数据进行解签与解密。

本实施例中,数据加密模块基于元技术定义了一套安全策略,能保证数据的存储、传输以及访问安全,并且,基于元技术实现数据的加密与签名的策略,可一次定义,多方使用,在每次的数据交换过程中会分配不同的秘钥或证书。

实施例八

优选地,基于环形高速缓冲区的异构数据交换装置,其中初始化模块包括:

交换区间设定单元,用于设定需要交换的数据区间,所述数据区间可为整个数据库、数据库中一张表的部分、数据库中一张表、数据库中多张表的部分或者数据库中多张表。

本实施例中,初始化模块对需要交换的数据区间进行了设定,解决了每次只能交换一张表的数据,满足了多张表或者整个数据库拷贝的业务需求,提高了数据交换的速率。

实施例九

参考图1,数据初始化插件提供数据交换前的初始化操作,如锁定数据交换的增量区间,确定源数据库或者目标数据库的数据类型。

数据读取插件根据增量条件以及其他初始化的数据,从源数据库读取数据。

数据读取插件读取到的数据流入安全插件,安全插件根据定义的安全策略对数据实施加密或者签名,确保数据的存储、传输及访问安全。

安全插件加密或签名后的数据不断地存放在高速环形缓冲区。

读取插件不断从高速环形缓冲区获取数据,并把数据写入目标库。

数据写入目标数据库后,数据收尾插件将进行一些收尾处理,如发送消息通知源库、写日志或事务处理。

通过调整数据库连接获取方式,建立数据库连接池,提供统一的工具管理数据库连接,在小数据量交换的场景下,可实现多个表交换过程中的事务同步,当其中一个表交换出现异常,所有数据都可以回滚。也可选择异步数据交换,每个表的数据交换互不影响,这种情况适用于大批量的数据交换。

基于元数据技术,屏蔽源数据和目标数据的数据模型特征,创建数据集,系统记载数据集的数据流向,实现数据的血缘关系分析,达到数据可追溯的目的。

综上所述,本发明提供的一种基于环形高速缓冲区的异构数据交换方法,对目标数据库为关系型数据库,通过一个转换表达式让常用数据库的数据类型之间建立适配关系,已经适配了的数据类型,通过此适配关系,在数据的交换过程中,能够有效提升数据交换的性能,极大地减少数据交换时间,提升数据流转效率,对目标数据库为gp数据库,在源数据库与目标数据库之间增加了ftp过程,通过ftp命令把数据交换文件导入gp数据库服务器,再使用jdbc的copy命令将数据文件导入gp数据库,通过此优化,能够大大缩短目标数据库为gp数据库的数据交换时间,显著提高数据交换的速率;基于元技术定义了一套安全策略,能保证数据的存储、传输以及访问安全,并且基于元技术实现数据的加密与签名的策略,可一次定义,多方使用。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1