一种基于Velocity模板引擎的数据库表结构翻译方法和装置与流程

专利查询4月前  30

一种基于velocity模板引擎的数据库表结构翻译方法和装置
技术领域
:1.本公开涉及数据库
技术领域
:,尤其涉及一种基于velocity模板引擎的数据库表结构翻译方法和装置。
背景技术
::2.通过在数据库中,利用数据同步工具进行数据实时同步时需要对存量数据的初始化装载;其中,存量数据的初始化装载主要包括两部分工作:表结构的初始化装载和存量数据的初始化装载。3.通常,在表结构的初始化装载阶段中,针对异构数据库一般以xml(extensiblemarkuplanguage,可扩展标记语言)或者json(javascriptobjectnotation,轻量级的数据交换格式)等结构化文本的形式存储类型映射表,然后读取源端数据库的表结构信息,通过映射表翻译到目标数据库的类型来实现,针对映射表的读取和翻译,都需要软件的设计者自行实现。技术实现要素:4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种一种基于velocity模板引擎的数据库表结构翻译方法和装置。5.本公开提供了一种基于velocity模板引擎的数据库表结构翻译方法,包括:6.构建异构数据库之间的目标格式转换文件;7.基于目标接口获取源端的表字段信息;8.初始化velocity后,构建velocity上下文对象;9.将所述表字段信息输入所述velocity上下文对象;10.在所述velocity中加载所述目标格式转换文件对所述velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端。11.在本公开可选实施例中,所述构建异构数据库之间的目标格式转换文件,包括:12.确定创建表的模式和表的名字;13.遍历所述源端数据库表的所有列信息;14.根据所述所有列信息的类型和翻译目标同类型生成所述目标格式转换文件。15.在本公开可选实施例中,所述基于目标接口获取源端的表字段信息,包括:16.基于数据库统一编程接口的获取列表接口获取源端数据库表的字段信息;17.获取每个所述字段信息对应的名称、长度、精度、是否为空的真假信息和类型描述信息作为所述表字段信息。18.在本公开可选实施例中,所述在所述velocity中加载所述目标格式转换文件对所述velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端,包括:19.调用合并操作将所述表字段信息加载到所述目标格式转换文件的目标位置;20.运行所述目标格式转换文件,得到所述表结构翻译结果并发送给目标端。21.本公开提供了另一种基于velocity模板引擎的数据库表结构翻译装置,包括:22.构建文件模块,用于构建异构数据库之间的目标格式转换文件;23.获取信息模块,用于基于目标接口获取源端的表字段信息;24.构建对象模块,用于初始化velocity后,构建velocity上下文对象;25.输入模块,用于将所述表字段信息输入所述velocity上下文对象;26.处理模块,用于在所述velocity中加载所述目标格式转换文件对所述velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端。27.在本公开可选实施例中,所述构建文件模块,具体用于:28.确定创建表的模式和表的名字;29.遍历所述源端的所有列信息;30.根据所述所有列信息的类型和翻译目标同类型生成所述目标格式转换文件。31.在本公开可选实施例中,所述获取信息模块,具体用于:32.基于数据库统一编程接口的获取列表接口获取源端数据库表的字段信息;33.获取每个所述字段信息对应的名称、长度、精度、是否为空的真假信息和类型描述信息作为所述表字段信息。34.在本公开可选实施例中,所述处理模块,具体用于:35.调用合并操作将所述表字段信息加载到所述目标格式转换文件的目标位置;36.运行所述目标格式转换文件,得到所述表结构翻译结果并发送给目标端。37.根据本公开实施例的另一方面,电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的基于velocity模板引擎的数据库表结构翻译方法。38.根据本公开实施例的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的基于velocity模板引擎的数据库表结构翻译方法。39.本公开实施例提供的技术方案与现有技术相比具有如下优点:40.通过构建异构数据库之间的目标格式转换文件,基于目标接口获取源端的表字段信息,初始化velocity后,构建velocity上下文对象,将表字段信息输入velocity上下文对象,在velocity中加载目标格式转换文件对velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端。由此,通过采用velocity模板引擎进行表结构翻译,提高表结构翻译效率和准确性。附图说明41.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。42.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。43.图1为本公开实施例提供的一种基于velocity模板引擎的数据库表结构翻译方法的流程示意图;44.图2为本公开实施例提供的另一种基于velocity模板引擎的数据库表结构翻译方法的流程示意图;45.图3为本公开实施例提供的一种基于velocity模板引擎的数据库表结构翻译装置的结构示意图;46.图4是本公开实施例提供的一种电子设备的结构示意图。具体实施方式47.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。48.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。49.在实际应用中,在利用数据同步工具进行数据实时同步时分为三个阶段,第一阶段进行存量数据的初始化装载,获得数据同步的基础点;第二阶段以初始化数据装载建立的同步基础点为基准进行增量数据同步;第三阶段定期对数据同步的源端数据和目标数据进行比对校验,以确认在数据同步过程中没有丢失数据。其中,第二阶段和第三阶段会处于长时间并行状态。50.其中,第一阶段存量数据的初始化装载主要包括两部分工作:表结构的初始化装载和存量数据的初始化装载,本公开实施例提出的基于velocity模板引擎的数据库表结构翻译方法主要针对的是表结构的初始化装载阶段,通常的表结构装载工具针对同构数据库之间和异构数据库之间有不同的处理办法。其中,同构数据库之间一般采用数据库自带的备份还原工具,通过表结构的备份和还原实现数据同步场景中目标数据库的表结构初始化状态;针对异构数据库一般以xml或者json等结构化文本的形式存储类型映射表,然后读取源端数据库的表结构信息,通过映射表翻译到目标数据库的类型来实现,针对映射表的读取和翻译,都需要软件的设计者自行实现。51.针对上述问题,本公开实施例提出的基于velocity模板引擎的数据库表结构翻译方法,通过采用velocity模板引擎进行表结构翻译,也就是说将表结构翻译任务交给velocity模板引擎,从而简化翻译操作步骤,提高表结构翻译效率和准确性。52.具体地,图1为本公开实施例提供的一种基于velocity模板引擎的数据库表结构翻译方法的流程示意图,如图1所示,包括:53.步骤101,构建异构数据库之间的目标格式转换文件。54.在本公开实施例中,异构数据库指的是相关的多个数据库系统的集合,可以实现数据的共享和透明访问。比如oracle数据库和sqlserver数据库(关系型数据库管理系统)为异构数据库。55.在本公开实施例中,目标格式转换文件可以根据应用需要选择设置,具体地,目标格式转换文件为velocity模板文件,即vm文件。56.在本公开实施例中,可以基于表的模式和名字,以及源端的列信息对应的类型和翻译的目标类型生成目标格式转换文件。57.步骤102,基于目标接口获取源端的表字段信息。58.在本公开实施例中,目标接口可以根据应用需要选择设置,具体地,在数据库场景中主要指的是java数据库连接(javadatabaseconnectivity,简称jdbc),是java语言中用来规范客户端程序如何来访问数据库的应用程序接口。59.在本公开实施例,源端指的是任一异构数据库,存储的是待进行翻译的表字段信息。60.在本公开一个具体实施例中,通过基于数据库统一编程接口的获取列表接口获取源端数据库表的字段信息,获取每个字段信息对应的名称、长度等信息作为表字段信息。61.步骤103,初始化velocity后,构建velocity上下文对象。62.步骤104,将表字段信息输入velocity上下文对象。63.在公开实施例中,通过预设代码初始化velocity,具体地,通过java伪代码“velocity.init()”实现velocity模板引擎初始化。64.在本公开实施例中,上下文对象可以理解为数据对象传送者,可以将生成的不同类型的数据对象放入上下文对象中,具体地,通过“velocitycontextcontext=newvelocitycontext()”实现velocity上下文对象的构建。65.在本公开实施例中,将表字段信息输入velocity上下文对象可以实现表字段信息后续能够被引用,具体地,通过“context.put("table",table)”实现将表字段信息输入velocity上下文对象。66.步骤105,在velocity中加载目标格式转换文件对velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端。67.在本公开实施例中,在velocity中加载目标格式转换文件,调用合并操作调用合并操作将表字段信息加载到目标格式转换文件的目标位置,运行目标格式转换文件,得到表结构翻译结果并发送给目标端。68.综上所述,本公开实施例的基于velocity模板引擎的数据库表结构翻译方法,通过构建异构数据库之间的目标格式转换文件,基于目标接口获取源端的表字段信息,初始化velocity后,构建velocity上下文对象,将表字段信息输入velocity上下文对象,在velocity中加载目标格式转换文件对velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端。由此,通过采用velocity模板引擎进行表结构翻译,提高表结构翻译效率和准确性。69.图2为本公开实施例提供的另一种基于velocity模板引擎的数据库表结构翻译方法的流程示意图,如图2所示,包括:70.步骤201,确定创建表的模式和表的名字,遍历源端的所有列信息,根据所有列信息的类型和翻译目标同类型生成目标格式转换文件。71.在本公开实施例中,创建表的模式和表的名字,遍历表的字段,获取源端的所有列信息,根据不同的类型翻译到目标的不同类型,比如把源端的类型为double(双精度浮点型)翻译到目标的类型为float(浮点型)等,其中,创建表的模式为“第一列名字、第一列类型”,“第二列名字、第二列类型”等,源端有多少列,上面的语句就有多少列,列名字和源端的一样,类型是按照目标格式转换文件里边定义的转换规则翻译的。72.步骤202,基于数据库统一编程接口的获取列表接口获取源端数据库表的字段信息,获取每个字段信息对应的名称、长度、精度、是否为空的真假信息和类型描述信息作为表字段信息。73.具体地,比如源端有一个表:schema1.table1(c1int;c2double(4,2);c3archar(10)notnull;c4timestamp),表的模式为schema1,表的名字为table1,allcolumns就是它的列的一个列表(这个例子里边有4个列表),每个列的定义就是下面那个column,比如c2列就是:名称是c2、长度是4、精度是2、是否为空为真、类型描述信息为c2,其他的c1、c3、c4和c2类似。74.步骤203,初始化velocity后,构建velocity上下文对象。75.步骤204,将表字段信息输入velocity上下文对象。76.在公开实施例中,通过预设代码初始化velocity,具体地,通过java伪代码“velocity.init()”实现velocity模板引擎初始化。77.在本公开实施例中,上下文对象可以理解为数据对象传送者,可以将生成的不同类型的数据对象放入上下文对象中,具体地,通过“velocitycontextcontext=newvelocitycontext()”实现velocity上下文对象的构建。78.在本公开实施例中,将表字段信息输入velocity上下文对象可以实现表字段信息后续能够被引用,具体地,通过“context.put("table",table)”实现将表字段信息输入velocity上下文对象。79.步骤205,调用合并操作将表字段信息加载到目标格式转换文件的目标位置,运行目标格式转换文件,得到表结构翻译结果并发送给目标端。80.具体地,velocity引擎按照目标格式转换文件,把源端的表字段信息进行翻译输出一个字符串作为表结构翻译结果。81.综上所述,本公开实施例的基于velocity模板引擎的数据库表结构翻译方法,通过确定创建表的模式和表的名字,遍历源端的所有列信息,根据所有列信息的类型和翻译目标同类型生成目标格式转换文件,基于数据库统一编程接口的获取列表接口获取源端的数据库表的字段信息,获取每个字段信息对应的名称、长度、精度、是否为空的真假信息和类型描述信息作为表字段信息,初始化velocity后,构建velocity上下文对象,将表字段信息输入velocity上下文对象,调用合并操作将表字段信息加载到目标格式转换文件的目标位置,运行目标格式转换文件,得到表结构翻译结果并发送给目标端。由此,通过采用velocity模板引擎进行表结构翻译,提高表结构翻译效率和准确性。82.对应于前述基于velocity模板引擎的数据库表结构翻译方法,本公开实施例提供了一种基于velocity模板引擎的数据库表结构翻译装置,图3为本公开实施例提供的一种基于velocity模板引擎的数据库表结构翻译装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中,如图3所示,基于velocity模板引擎的数据库表结构翻译装置包括如下模块:83.构建文件模块301,用于构建异构数据库之间的目标格式转换文件。84.获取信息模块302,用于基于目标接口获取源端的表字段信息。85.构建对象模块303,用于初始化velocity后,构建velocity上下文对象。86.输入模块304,用于将所述表字段信息输入所述velocity上下文对象。87.处理模块305,用于在所述velocity中加载所述目标格式转换文件对所述velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端。88.在一些实施例中,所述构建文件模块301,具体用于:89.确定创建表的模式和表的名字;90.遍历所述源端的所有列信息;91.根据所述所有列信息的类型和翻译目标同类型生成所述目标格式转换文件。92.在一些实施例中,所述获取信息模块302,具体用于:93.基于数据库统一编程接口的获取列表接口获取源端的数据库表的字段信息;94.获取每个所述字段信息对应的名称、长度、精度、是否为空的真假信息和类型描述信息作为所述表字段信息。95.在一些实施例中,所述处理模块305,具体用于:96.调用合并操作将所述表字段信息加载到所述目标格式转换文件的目标位置;97.运行所述目标格式转换文件,得到所述表结构翻译结果并发送给目标端。98.综上所述,本公开实施例的基于velocity模板引擎的数据库表结构翻译装置,通过构建异构数据库之间的目标格式转换文件,基于目标接口获取源端的表字段信息,初始化velocity后,构建velocity上下文对象,将表字段信息输入velocity上下文对象,在velocity中加载目标格式转换文件对velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端。由此,通过采用velocity模板引擎进行表结构翻译,提高表结构翻译效率和准确性。99.本发明实施例所提供的基于velocity模板引擎的数据库表结构翻译装置可执行本发明任意实施例所提供的基于velocity模板引擎的数据库表结构翻译方法,具备执行方法相应的功能模块和有益效果。100.图4是本公开实施例提供的一种电子设备的结构示意图。如图4所示,该电子设备包括处理器410、存储器420、输入装置430和输出装置440;电子设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;电子设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。101.存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的关系型数据库sql语句外连接转内连接方法对应的程序指令/模块。处理器710通过运行存储在存储器420中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现本发明实施例所提供的基于velocity模板引擎的数据库表结构翻译方法。102.存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。103.输入装置430可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,可以包括键盘、鼠标等。输出装置440可包括显示屏等显示设备。104.本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现本发明实施例所提供的基于velocity模板引擎的数据库表结构翻译方法。105.当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于velocity模板引擎的数据库表结构翻译方法中的相关操作。106.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。107.值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。108.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。109.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12当前第1页12
技术特征:
1.一种基于velocity模板引擎的数据库表结构翻译方法,其特征在于,包括:构建异构数据库之间的目标格式转换文件;基于目标接口获取源端的表字段信息;初始化velocity后,构建velocity上下文对象;将所述表字段信息输入所述velocity上下文对象;在所述velocity中加载所述目标格式转换文件对所述velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端。2.根据权利要求1所述的基于velocity模板引擎的数据库表结构翻译方法,其特征在于,所述构建异构数据库之间的目标格式转换文件,包括:确定创建表的模式和表的名字;遍历所述源端的所有列信息;根据所述所有列信息的类型和翻译目标同类型生成所述目标格式转换文件。3.根据权利要求1所述的基于velocity模板引擎的数据库表结构翻译方法,其特征在于,所述基于目标接口获取源端的表字段信息,包括:基于数据库统一编程接口的获取列表接口获取源端数据库表的字段信息;获取每个所述字段信息对应的名称、长度、精度、是否为空的真假信息和类型描述信息作为所述表字段信息。4.根据权利要求1所述的基于velocity模板引擎的数据库表结构翻译方法,其特征在于,所述在所述velocity中加载所述目标格式转换文件对所述velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端,包括:调用合并操作将所述表字段信息加载到所述目标格式转换文件的目标位置;运行所述目标格式转换文件,得到所述表结构翻译结果并发送给目标端。5.一种基于velocity模板引擎的数据库表结构翻译装置,其特征在于,包括:构建文件模块,用于构建异构数据库之间的目标格式转换文件;获取信息模块,用于基于目标接口获取源端的表字段信息;构建对象模块,用于初始化velocity后,构建velocity上下文对象;输入模块,用于将所述表字段信息输入所述velocity上下文对象;处理模块,用于在所述velocity中加载所述目标格式转换文件对所述velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端。6.根据权利要求1所述的基于velocity模板引擎的数据库表结构翻译装置,其特征在于,所述构建文件模块,具体用于:确定创建表的模式和表的名字;遍历所述源端的所有列信息;根据所述所有列信息的类型和翻译目标同类型生成所述目标格式转换文件。7.根据权利要求1所述的基于velocity模板引擎的数据库表结构翻译装置,其特征在于,所述获取信息模块,具体用于:基于数据库统一编程接口的获取列表接口获取源端数据库表的字段信息;获取每个所述字段信息对应的名称、长度、精度、是否为空的真假信息和类型描述信息作为所述表字段信息。
8.根据权利要求1所述的基于velocity模板引擎的数据库表结构翻译装置,其特征在于,所述处理模块,具体用于:调用合并操作将所述表字段信息加载到所述目标格式转换文件的目标位置;运行所述目标格式转换文件,得到所述表结构翻译结果并发送给目标端。9.一种电子设备,其特征在于,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-4中任一所述的基于velocity模板引擎的数据库表结构翻译方法。10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-4中任一所述的基于velocity模板引擎的数据库表结构翻译方法。

技术总结
本公开涉及一种基于Velocity模板引擎的数据库表结构翻译方法和装置;其中,方法包括:构建异构数据库之间的目标格式转换文件,基于目标接口获取源端的表字段信息,初始化Velocity后,构建Velocity上下文对象,将表字段信息输入Velocity上下文对象,在Velocity中加载目标格式转换文件对Velocity上下文对象中的表字段信息进行处理,得到表结构翻译结果并发送给目标端。由此,通过采用Velocity模板引擎进行表结构翻译,提高表结构翻译效率和准确性。确性。确性。


技术研发人员:王凯龙
受保护的技术使用者:北京人大金仓信息技术股份有限公司
技术研发日:2021.11.26
技术公布日:2022/3/8

最新回复(0)