一种数据转换方法、装置及设备与流程

文档序号:32394678发布日期:2022-11-30 09:47阅读:24来源:国知局
1.本技术涉及大数据
技术领域
:,尤其涉及一种数据转换方法、装置及设备。
背景技术
::2.随着社会经济的高速发展,各大银行作为金融服务的中心,越来越多的客户通过银行办理各种金融业务,导致银行需要处理的数据越来越多。3.目前银行在由旧系统部分或全部功能向新系统迁移时,不可避免的需要对旧系统历史数据进行数据转换。其中存量数据转换过程可概括为:从数据库中读取数据,在数据库中对数据进行转换,将转换后的数据写回数据库。现有方案通常都是纯数据库操作,即前述的三个步骤都是在数据库中执行,对于大数据量的转换存在执行耗时长、对数据库压力大、无法监控过程、代码不能复用等弊端,导致数据转换的效果较差。技术实现要素:4.本技术实施例的主要目的在于提供一种数据转换方法、装置及设备,能够实现高效率、模块化、动态扩展的存量数据转换,进而提高数据转换的效果。5.第一方面,本技术实施例提供了一种数据转换方法,所述方法包括:6.从预设数据库中读取待转换的目标数据;7.根据预设配置规则,将所述目标数据拆分到不同的消息队列中;8.对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据;9.根据预设配置规则,将所述转换后的目标数据进行重新聚合,并将聚合后的所述目标数据写回所述预设数据库。10.可选的,所述梳理补录数据表名范围,所述对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据,包括:11.根据预设业务转换规则,按照topic和partition维度订阅不同的消息队列,并对所述不同的消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据。12.可选的,所述消息队列为多级,在所述对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据之后,所述方法还包括:13.完成第一道数据转换后,继续写入所述消息队列或跳转后转换完成逻辑;直至所述多级消息队列均中转存的所述目标数据进行转换处理完成。14.可选的,所述对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据之后,所述方法还包括:15.将所述转换后的目标数据写入到所述消息队列。16.第二方面,本技术实施例还提供了一种数据转换装置,所述装置包括:17.读取单元,用于从预设数据库中读取待转换的目标数据;18.拆分单元,用于根据预设配置规则,将所述目标数据拆分到不同的消息队列中;19.转换单元,用于对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据;20.写回单元,用于根据预设配置规则,将所述转换后的目标数据进行重新聚合,并将聚合后的所述目标数据写回所述预设数据库。21.可选的,所述转换单元具体用于:22.根据预设业务转换规则,按照topic和partition维度订阅不同的消息队列,并对所述不同的消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据。23.可选的,消息队列为多级,所述装置还包括:24.第一写入单元,用于完成第一道数据转换后,继续写入所述消息队列或跳转后转换完成逻辑;直至所述多级消息队列均中转存的所述目标数据进行转换处理完成。25.可选的,所述装置还包括:26.第二写入单元,用于将所述转换后的目标数据写入到所述消息队列。27.本技术实施例还提供了一种数据转换设备,包括:处理器、存储器、系统总线;28.所述处理器以及所述存储器通过所述系统总线相连;29.所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述数据转换方法中的任意一种实现方式。30.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述数据转换方法中的任意一种实现方式。31.本技术实施例提供的一种数据转换方法、装置及设备,首先从预设数据库中读取待转换的目标数据,然后,根据预设配置规则,将所述目标数据拆分到不同的消息队列中,接着,对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据;进而可以根据预设配置规则,将所述转换后的目标数据进行重新聚合,并将聚合后的所述目标数据写回所述预设数据库,从而能够利用消息队列的特性,实现高效率、模块化、动态扩展的存量数据转换,进而提高数据转换的效果。附图说明32.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。33.图1为本技术实施例提供的一种数据转换方法的流程示意图;34.图2为本技术实施例提供的数据转换的整体模块化示意图;35.图3为本技术实施例提供的一种数据转换装置的组成示意图。具体实施方式36.目前银行在由旧系统部分或全部功能向新系统迁移时,不可避免的需要对旧系统历史数据进行数据转换。即,当系统升级或数据取值变更时,需要对系统内的历史数据进行相应转换,如原有字段码值范围为1,2,3,系统升级后码值取值修改为a,b,c,为适配系统升级,需要将该字段进行转换,具体转换过程为:从数据库中读取数据,在数据库中对数据进行转换,将转换后的数据写回数据库。这种数据转换方式存在以下三个问题:37.(1)这种数据转换方式将整个转换过程看成一个原子操作,如果转换过程中出现错误,只能通过重新执行整个转换流程,造成工作重复,无法满足细粒度管理的需求;38.(2)这种数据转换方式是纯数据库操作,对数据库依赖较大,对数据库性能要求较高,对于大数据量的转换,可能出现回滚段空间不足、快照过旧等问题,导致整个转换过程中断;并且,大数据量转换执行耗时较长。所有的操作都是数据库操作,而通常数据库资源是有限的,无法并行执行转换任务,导致转换任务整体耗时长;39.(3)这种数据转换方式在转换规则修改时,需要修改原有代码逻辑,扩展性不足。40.可见,现有的银行数据转换方式的转换效果较差。41.为解决上述缺陷,本技术实施例提供了一种数据转换方法,首先从预设数据库中读取待转换的目标数据,然后,根据预设配置规则,将所述目标数据拆分到不同的消息队列中,接着,对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据;进而可以根据预设配置规则,将所述转换后的目标数据进行重新聚合,并将聚合后的所述目标数据写回所述预设数据库,从而能够利用消息队列的特性,实现高效率、模块化、动态扩展的存量数据转换,进而提高数据转换的效果。42.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。43.第一实施例44.参见图1,为本实施例提供的一种数据转换方法的流程示意图,该方法包括以下步骤:45.s101:从预设数据库中读取待转换的目标数据。46.在本实施例中,为了能够实现高效率、模块化、动态扩展的存量数据转换,进而提高数据转换的效果,本技术首先从预设数据库中读取待转换的目标数据,用以执行后续步骤s102。47.其中,预设数据库可根据实际情况进行设定,本技术对此不进行限定,比如预设数据库可以是oracle、mysql等关系型数据库。48.具体来讲,在转换程序启动后,可以根据配置的业务转换规则,从预设数据库中读取待转换的目标数据,用以执行后续步骤s102。如业务转换规则要求对表a的字段a、b进行转换,表a的c、d字段不转换,则读取时,将表的所有列都读取出来,用以执行后续步骤s102。49.s102:根据预设配置规则,将所述目标数据拆分到不同的消息队列中。50.在本实施例中,通过步骤s101从预设数据库中读取待转换的目标数据后,进一步还需要根据预设配置规则,将所述目标数据拆分到不同的消息队列中,具体的,可以完成所述目标数据中整行数据的拆分与聚合,数据拆分后将根据转换规则、字段约束路由至不同的消息队列(messagequeue,mq)中,用以执行后续步骤s103。51.s103:对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据。52.在本实施例中,通过步骤s102根据预设配置规则,将所述目标数据拆分到不同的消息队列中后,进一步可以将数据进行转存,并等待转换应用程序的消费处理,具体可以采用kafka消息队列来实现。53.具体来讲,在进行数据划分时,按照kafka的基础架构,数据层级将按topic划分,topic将继续划分为不同的partition,其中partition为消费者订阅的最小单元,也是集群replicate的最小单元。在本实施例中,待转换的目标数据来源于关系型数据库,通过将表映射为topic,表中字段映射为partition。54.在进行消息分区时,表映射为topic,字段映射为partition,根据该原则,在路由目标数据时,将作为消息的生产者,其中根据表+列将数据路由至不同的partition中。55.在进行类型划分时,根据业务规则,有些字段可能需要经过多次的转换,mq按类型划分为中间数据topic,最终数据topic,其中最终数据类型表示该部分数据已经转换完成,待聚合;反之,如果为中间数据类型,则表示该部分数据未完成转换,将继续转换。如表a的字段原有码值范围为1、2、3,需要转换为a、b、c,再完成了该转换工作后,业务增加新的需求,需要在字段后加入后缀_tmp。此时应用程序1在读取1、2、3数据后,进行转换,转换后结果为a、b、c,此时数据需要二次转换,将继续写入mq队列中,应用程序2将订阅该部分数据,进行二次转换,拼接后缀_tmp,完成该步骤后将数据写入最终数据类型的mq队列中,表示数据已完成转换。56.一种可选的实现方式是,可以根据预设业务转换规则,按照topic和partition维度订阅不同的消息队列,并对所述不同的消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据。57.在本实现方式中,可以利用kafka的消费组的特性,将多个数据准话的应用程序构造成一个组。组内不同应用程序和partition的关系为1对多或1对1,可实现组内应用程序的横向扩展,并且可以配置负载策略,用以平衡组内应用程序执行能力,最大化多台机器协同执行的效率。58.并且,数据存储在mq中,转换程序在消费时,可分批的对数据进行转换,防止一次转换时出现错误,导致转换过程全部中断。并且,对每批次转换的记录数采用配置的方式进行定制化。59.再者,采用kafka同步提交位移的机制,确保数据最终都被转换;且结合上段阐述的分批转换,在转换完一批数据后,立即提交若干位移量;假设某次转换过程,应用程序重启,可在断点出重新继续转换。实现了转换过程的断点重做,极大提升了程序的健壮性60.需要说明的是,消息队列可以为多级,则在对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据之后,即,完成第一道数据转换后,继续写入所述消息队列或跳转后转换完成逻辑;直至所述多级消息队列均中转存的所述目标数据进行转换处理完成。61.s104:根据预设配置规则,将所述转换后的目标数据进行重新聚合,并将聚合后的所述目标数据写回所述预设数据库。62.在本实施例中,通过步骤s103对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据后,进一步根据预设配置规则,将所述转换后的目标数据进行重新聚合,即,在分批转换完成后,可以对转换后的细分数据项进行聚合,最后还原为整行数据作为聚合后的所述目标数据,并将聚合后的所述目标数据写回所述预设数据库,如以tablerename的方式将数据写入预设数据库中,从而,避免了操作源表对预设数据库的消耗。63.为便于理解本技术提供的数据转换方法,本技术还提供了数据转换的整体模块化示意图,如图2所示,在数据转换过程中,首先需要对数据转换过程进行分析,将转换的长链路拆分成多个子模块,并定义不同子模块的功能、约束,以及定义模块之间的边界、连接条件等;根据数据转换的规则,将一行数据按列拆分成多个部分,不同部分分发到不同队列中;多个应用程序订阅不同的队列,实现不同规则的转换工作;应用程序转换后,可将转换后的继续写入队列,由其他应该程序继续处理(再转换或等待聚合);直至所有转换工作完成后,将多个部分的数据进行聚合,生成一行数据,写回到数据库中。64.如图2所示,db为待转换数据的数据库。da模块:dataaccess模块,该模块主要用于连接db,从db中读取待转换数据,转换完成后将数据写入db。路由/聚合模块用于将数据按业务转换规则,进行拆分,拆分后将写入到mq模块,并且在转换处理完,将多个拆分了的记录聚合成一条行记录,回传da模块写入到db中。mq模块用于将数据拆分后对数据进行转存,并等待转换应用程序的消费,该模块衔接了数据的获取、转换的模块,实现了高度解耦。转换模块用于对数据转换,可横向扩展,订阅mq队列,并消费消息,消费完成后将数据继续写回mq模块或直接回数给路由/聚合模块,表示数据已转换完成,待聚合完成重新写回db。配置模块用于管理数据转换规则,da模块、路由/聚合模块、mq模块、数据转换应用模块都将读取配置信息,对数据转换的全流程进行高度定制化。65.这样,通过执行上述步骤s101-s104,在数据转换过程中引入了mq组件,并利用mq的特性,实现了数据转换的模块化、解耦、并行转换、可扩展等特性。另外,通过将传统关系型数据库中的一行按业务规则拆分成多个部分,各个部分交由不同程序处理,处理完成后在拼接成一行数据,对转换任务的细粒度化,实现了转换的并行执行,为解决转换耗时长的最大问题提供重要支撑。具体可达到以下四点有益效果:、66.(1)模块化:将转换过程进行拆分,分为多个模块,其中模块之间通过mq队列进行串联,实现了多模块之间的耦合。67.(2)并行转换:通过将关系型数据库中的一行数据进行拆分,细粒度化了数据转换的最小单元;将不同数据路由至不同partition,由不同转换程序处理,从而可实现一行数据并行的转换,提升了转换的效率。68.(3)可扩展:利用mq具有的发布/订阅模式,方便转换应用的扩展,当增加一个表的转换需求时,只需要增加订阅消息的转换应用;另一方面,对同一个已经转换的字段需要另外增加转换规则时,同样只需要新增转换应用订阅不同消息即可,对于原有逻辑可维持不变。69.(4)容错:利用mq的可持久化及位移的特性,可支持转换程序的断点重跑操作。当转换程序出错,可手工修改位移,对部分数据进行重新转换,为转换程序提供了极强的容错能力,为系统运行也提供了较好的健壮性。70.综上,本实施例提供的一种数据转换方法,首先从预设数据库中读取待转换的目标数据,然后,根据预设配置规则,将所述目标数据拆分到不同的消息队列中,接着,对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据;进而可以根据预设配置规则,将所述转换后的目标数据进行重新聚合,并将聚合后的所述目标数据写回所述预设数据库,从而能够利用消息队列的特性,实现高效率、模块化、动态扩展的存量数据转换,进而提高数据转换的效果。71.第二实施例72.本实施例将对一种数据转换装置进行介绍,相关内容请参见上述方法实施例。73.参见图3,为本实施例提供的一种数据转换装置的组成示意图,具体包括:74.读取单元301,用于从预设数据库中读取待转换的目标数据;75.拆分单元302,用于根据预设配置规则,将所述目标数据拆分到不同的消息队列中;76.转换单元303,用于对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据;77.写回单元304,用于根据预设配置规则,将所述转换后的目标数据进行重新聚合,并将聚合后的所述目标数据写回所述预设数据库。78.在本实施例的一种实现方式中,所述转换单元303具体用于:79.根据预设业务转换规则,按照topic和partition维度订阅不同的消息队列,并对所述不同的消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据。80.在本实施例的一种实现方式中,消息队列为多级,所述装置还包括:81.第一写入单元,用于完成第一道数据转换后,继续写入所述消息队列或跳转后转换完成逻辑;直至所述多级消息队列均中转存的所述目标数据进行转换处理完成。82.在本实施例的一种实现方式中,所述装置还包括:83.第二写入单元,用于将所述转换后的目标数据写入到所述消息队列。84.综上,本实施例提供的一种数据转换装置,首先从预设数据库中读取待转换的目标数据,然后,根据预设配置规则,将所述目标数据拆分到不同的消息队列中,接着,对所述消息队列中转存的所述目标数据进行转换处理,得到转换后的目标数据;进而可以根据预设配置规则,将所述转换后的目标数据进行重新聚合,并将聚合后的所述目标数据写回所述预设数据库,从而能够利用消息队列的特性,实现高效率、模块化、动态扩展的存量数据转换,进而提高数据转换的效果。85.进一步地,本技术实施例还提供了一种数据转换设备,包括:处理器、存储器、系统总线;86.所述处理器以及所述存储器通过所述系统总线相连;87.所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述数据转换方法的任一种实现方法。88.进一步地,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述数据转换方法的任一种实现方法。89.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本技术各个实施例或者实施例的某些部分所述的方法。90.需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。91.还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。92.另外,需要说明的是,本发明提供的数据转换方法、装置及设备可用于大数据领域以及金融领域。上述仅为示例,并不对本发明提供的数据转换方法、装置及设备的应用领域进行限定。93.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1