掌桥专利:专业的专利平台
掌桥专利
首页

数据转换方法、装置、设备及存储介质

文献发布时间:2023-06-19 19:00:17


数据转换方法、装置、设备及存储介质

技术领域

本发明涉及计算机技术领域,尤其涉及一种数据转换方法、装置、设备及存储介质。

背景技术

现如今,大型企业一般会设置多个系统或功能平台,而不可避免的,各个系统或功能平台之间需要进行数据交互,而各平台的开发人员不同、开发规范不同、开发所使用的技术也可能不同,从而导致了各个系统或功能平台的数据规范、格式均可能不相同,而在此基础上,平台对接过程中需要单独开发适配流程,编写适配代码,且适配代码一般仅能对接一套系统或功能平台,而无法通用,十分浪费人力,效率低下。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

本发明的主要目的在于提供一种数据转换方法、装置、设备及存储介质,旨在解决现有技术平台对接人力浪费严重且效率低下的技术问题。

为实现上述目的,本发明提供了一种数据转换方法,所述方法包括以下步骤:

根据接收到的数据转换请求确定数据转换标识及数据源;

获取所述数据转换标识对应的数据转换规则;

通过预先创建的多个数据获取线程从所述数据源加载待转换数据;

将所述待转换数据添加至数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

可选的,所述通过预先创建的多个数据获取线程从所述数据源加载待转换数据的步骤,包括:

获取所述数据源的数据源类型;

查找所述数据源类型对应的目标线程池,从所述目标线程池中获取预先创建的多个数据获取线程;

通过所述多个数据获取线程从所述数据源加载待转换数据。

可选的,所述通过所述多个数据获取线程从所述数据源加载待转换数据的步骤,包括:

获取所述数据源的数据源类型;

根据所述数据源类型确定数据读取规则;

基于所述数据读取规则,通过所述多个数据获取线程从所述数据源加载待转换数据。

可选的,所述查找所述数据源类型对应的目标线程池,从所述目标线程池中获取预先创建的多个数据获取线程的步骤,包括:

查找所述数据源类型对应的目标线程池,并确定所述数据源对应的数据量级;

根据所述数据量级确定所需线程数量,并获取所述目标线程池的当前线程数量;

在所述当前线程数量大于或等于所述所需线程数量时,从所述目标线程池中获取预先创建的多个数据获取线程。

可选的,所述根据所述数据规模确定所需线程数量,并获取所述目标线程池的当前线程数量的步骤之后,还包括:

在所述当前线程数量小于所述所需线程数量时,根据所述所需线程数量及所述当前线程数量确定待添加线程数量;

根据所述待添加线程数量创建若干个数据获取线程,并将创建的数据获取线程添加至所述目标线程池;

从所述目标线程池中获取预先创建的多个数据获取线程。

可选的,所述将所述待转换数据添加至数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换的步骤,包括:

获取所述待转换数据对应的数据优先级;

根据所述数据优先级查找对应的数据转换队列;

将所述待转换数据添加至所述数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

可选的,所述根据接收到的数据转换请求确定数据转换标识及数据源的步骤,包括:

在接收到数据转换请求时,提取所述数据转换请求中的数据转换标识及数据来源标识;

在所述数据来源类型为第一类型标识时,将所述数据转换请求作为数据源。

可选的,所述在接收到数据转换请求时,提取所述数据转换请求中的数据转换标识及数据来源类型的步骤之后,还包括:

在所述数据来源标识为第二类型标识时,提取所述数据转换请求中的数据来源路径;

根据所述数据来源路径确定数据源。

可选的,所述获取所述数据转换标识对应的数据转换规则的步骤,包括:

获取所述数据转换标识对应的转换对象;

读取所述转换对象中的目标转换字段;

在转换规则库中查找所述目标转换字段对应的数据转换规则,获得所述数据转换标识对应的数据转换规则。

可选的,所述在转换规则库中查找所述目标转换字段对应的数据转换规则,获得所述数据转换标识对应的数据转换规则的步骤,包括:

在转换规则库中查找所述目标转换字段对应的数据转换规则,获得若干条数据转换规则;

获取各数据转换规则的生效标识参数;

将所述若干条数据转换规则中生效标识参数为规则失效的数据转换规则清除,获得有效转换规则;

将所述有效转换规则作为所述数据转换标识对应的数据转换规则。

可选的,所述将所述待转换数据添加至数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换的步骤之后,还包括:

获取数据转换结果,根据所述数据转换结果确定数据转换是否成功;

在数据转换成功时,根据所述数据转换结果生成数据转换响应;

将所述数据转换响应发送至所述数据转换请求的请求发起者。

可选的,所述获取数据转换结果,根据所述数据转换结果确定数据转换是否成功的步骤之后,还包括:

在数据转换不成功时,根据所述数据转换结果确定转换失败数据及转换失败原因;

根据所述转换失败数据及所述转换失败原因构建异常提示消息;

根据所述异常提示消息及所述数据转换结果生成数据转换响应;

将所述数据转换响应发送至所述数据转换请求的请求发起者。

此外,为实现上述目的,本发明还提出一种数据转换装置,所述数据转换装置包括以下模块:

请求接收模块,用于根据接收到的数据转换请求确定数据转换标识及数据源;

规则获取模块,用于获取所述数据转换标识对应的数据转换规则;

数据加载模块,用于通过预先创建的多个数据获取线程从所述数据源加载待转换数据;

数据转换模块,用于将所述待转换数据添加至数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

可选的,所述数据加载模块,还用于获取所述数据源的数据源类型;查找所述数据源类型对应的目标线程池,从所述目标线程池中获取预先创建的多个数据获取线程;通过所述多个数据获取线程从所述数据源加载待转换数据。

可选的,所述数据加载模块,还用于获取所述数据源的数据源类型;根据所述数据源类型确定数据读取规则;基于所述数据读取规则,通过所述多个数据获取线程从所述数据源加载待转换数据。

可选的,所述数据加载模块,还用于查找所述数据源类型对应的目标线程池,并确定所述数据源对应的数据量级;根据所述数据量级确定所需线程数量,并获取所述目标线程池的当前线程数量;在所述当前线程数量大于或等于所述所需线程数量时,从所述目标线程池中获取预先创建的多个数据获取线程。

可选的,所述数据加载模块,还用于在所述当前线程数量小于所述所需线程数量时,根据所述所需线程数量及所述当前线程数量确定待添加线程数量;根据所述待添加线程数量创建若干个数据获取线程,并将创建的数据获取线程添加至所述目标线程池;从所述目标线程池中获取预先创建的多个数据获取线程。

可选的,所述数据转换模块,还用于获取所述待转换数据对应的数据优先级;根据所述数据优先级查找对应的数据转换队列;将所述待转换数据添加至所述数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

此外,为实现上述目的,本发明还提出一种数据转换设备,所述数据转换设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的数据转换程序,所述数据转换程序被处理器执行时实现如上所述的数据转换方法的步骤。

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据转换程序,所述数据转换程序执行时实现如上所述的数据转换方法的步骤。

本发明通过根据接收到的数据转换请求确定数据转换标识及数据源;获取数据转换标识对应的数据转换规则;通过预先创建的多个数据获取线程从数据源加载待转换数据;将待转换数据添加至数据转换队列,以使数据转换队列的消费者根据数据转换规则对待转换数据进行数据转换。本发明提供的上述方法在平台对接时不必每次对接编写适配代码进行数据适配,仅需添加对应的数据转换规则即可,减少了开发工作量,由于本发明在加载待转换数据时采用了多线程进行加载,数据转换效率高,数据转换时采用了消息队列,可异步进行处理,防止了持续占用系统资源。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的电子设备的结构示意图;

图2为本发明数据转换方法第一实施例的流程示意图;

图3为本发明数据转换方法第二实施例的流程示意图;

图4为本发明数据转换方法第三实施例的流程示意图;

图5为本发明数据转换装置第一实施例的结构框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的数据转换设备结构示意图。

如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据转换程序。

在图1所示的电子设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在数据转换设备中,所述电子设备通过处理器1001调用存储器1005中存储的数据转换程序,并执行本发明实施例提供的数据转换方法。

本发明实施例提供了一种数据转换方法,参照图2,图2为本发明一种数据转换方法第一实施例的流程示意图。

本实施例中,所述数据转换方法包括以下步骤:

步骤S10:根据接收到的数据转换请求确定数据转换标识及数据源。

需要说明的是,本实施例的执行主体可以是所述数据转换设备,所述数据转换设备可以是个人电脑、服务器等电子设备,还可以是其他可实现相同或相似功能的设备,本实施例对此不加以限制,在本实施例及下述各实施例中,以数据转换设备为例对本发明数据转换方法进行说明。

需要说明的是,数据转换请求可以是其他系统或功能平台发送至所述数据转换设备的请求。数据转换标识可以是目标格式的标识,目标格式可以是数据被转换后的格式,数据源用于指定数据获取的来源。

进一步的,由于在实际使用中,不同的系统的交互方式也不相同,数据源有多种,为了尽可能的适应各种系统,本实施例步骤S10,可以包括:

在接收到数据转换请求时,提取所述数据转换请求中的数据转换标识及数据来源标识;在所述数据来源标识为第一类型标识时,将所述数据转换请求作为数据源。

需要说明的是,部分系统可能将需要进行转换的数据添加在数据转换请求中一同发送至数据转换设备,则此时可以将数据转换请求作为数据源(例如:将需要进行转换的数据转换为json数据,然后通过拼接符进行拼接,从而获得拼接字符串,将拼接字符串作为参数添加至数据转换请求中,则此时可以将数据转换请求作为数据源);当然,也有一些系统并不会将需要进行转换的数据添加在数据转换请求中,而是通过在数据转换请求中设置参数(例如在数据转换请求中设置数据来源路径参数)来指定数据源。因此,可以在数据转换请求中设置数据来源标识使得数据转换设备在接收到该请求时通过请求中携带的数据来源标识区分是否已经将需要转换的数据添加在了数据转换请求中。

在实际使用中,若数据来源标识为第一类型标识,则说明需要转换的数据已经被添加在数据转换请求中;若数据来源标识为第二类型标识,则说明需要进行转换的数据并未被添加在数据转换请求中,例如:假设第一类型标识为true,第二类型标识为false,则在数据来源标识的值为true时,可以判定所需要转换的数据已经被添加在数据转换请求中,在数据来源标识的值为false时,可以判定所需要转换的数据并未被添加在数据转换请求中。

进一步的,为了在需要转换的数据未被添加至数据转换请求中时仍然可以正常确定数据源,本实施例所述在接收到数据转换请求时,提取所述数据转换请求中的数据转换标识及数据来源标识的步骤之后,还可以包括:

在所述数据来源标识为第二类型标识时,提取所述数据转换请求中的数据来源路径;根据所述数据来源路径确定数据源。

需要说明的是,数据来源路径可以是数据来源的访问路径。

可以理解的是,若数据来源标识为第二类型标识,则表示需要进行转换的数据并未被添加在数据转换请求中,则此时可以判定是通过数据转换请求中的设置参数,从而指定数据源,因此,此时可以提取数据转换请求中的数据来源路径,然后根据数据来源路径确定数据源。

在实际使用中,根据所述数据来源路径确定数据源可以是向数据来源路径发送请求获取数据源的信息,从而确定数据源。还可以是根据数据来源路径在预设路径库中查找数据源的信息,从而确定数据源,其中,预设路径库中可以包括各数据源的信息,可以由数据转换设备的管理人员预先设置。

步骤S20:获取所述数据转换标识对应的数据转换规则。

需要说明的是,数据转换规则可以是进行数据转换时需要遵循的规则,其中可以包括待转换数据字段、目标字段、数据转换条件等信息,待转换数据字段可以是待转换数据中需要转换的字段,目标字段为待转换数据被转换后的字段,数据转换条件为将待转换数据转换为目标字段的条件,数据转换条件可以以转换公式的形式进行设置。获取数据转换标识对应的数据转换规则可以是根据数据转换标识在预设规则库中查找对应的数据转换规则,其中,数据转换标识可以对应多条数据转换规则,预设规则库可以是用于存放数据转换规则的数据库,数据转换规则可以由数据转换设备的管理人员预先进行设置。

步骤S30:通过预先创建的多个数据获取线程从所述数据源加载待转换数据。

需要说明的是,数据获取线程可以是预先创建的用于从数据源读取数据的线程。待转换数据可以是需要进行数据转换的数据。

某些情况下,需要从数据源加载的数据的量级可能极大,若直接从数据源进行加载,可能需要消耗大量的时间,执行效率低。因此,可以通过预先创建多个数据获取线程,在确定数据源之后,同时运行多个数据获取线程从数据源加载待转换数据,从而节省数据加载时间,提高执行效率。

步骤S40:将所述待转换数据添加至数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

需要说明的是,从数据源加载需要转换的待转换数据的数据量可能较大,数据转换的时间会较长,若直接进行数据转换,则数据转换请求的请求发起者需要一直等待数据转换设备返回数据,这就使得请求发起者的相关资源一直被占用。为了避免此种情况,可以采用异步处理的方式进行数据转换,即在从数据源加载数据之后,直接向请求发起者反馈转换处理响应,使请求发起者不必等待返回数据,同时数据转换设备将待转换数据添加至数据转换队列中,使得数据转换队列的消费者根据数据转换规则对待转换数据进行数据转换,最后在所有数据均转换结束之后,将数据转换结果汇总,再推送至请求发起者。

在实际使用中,将待转换数据添加至数据转换队列可以是由主线程在接收到各个数据获取线程从数据源加载的待转换数据之后,再将待转换数据添加至数据转换队列中;也可以是由数据获取线程在从数据源加载待转换数据之后直接添加至数据转换队列中。为了提高数据转换的速度,可以为数据转换队列设置多个消费者,由多个消费者共同消费数据转换队列中的待转换数据,当然,当消费者为多个时,为了避免数据重复处理,需要为各个消费者设置竞争消费机制,例如:在某一消费者第一个获取到某条待转换数据之后,在各消费者的共享缓存中添加标识,其他消费者在检测到该标识之后,不会再次对该待转换数据进行处理。

进一步的,为了保证数据转换请求的请求发起者可第一时间接收到数据转换结果进行数据处理,本实施例步骤S40之后,还可以包括:

获取数据转换结果,根据所述数据转换结果确定数据转换是否成功;在数据转换成功时,根据所述数据转换结果生成数据转换响应;将所述数据转换响应发送至所述数据转换请求的请求发起者。

需要说明的是,数据转换结果可以包括数据转换状态码及目标数据,其中,数据转换状态码用于表征是否数据转换是否成功,目标数据为将待转换数据进行数据转换后获得的数据。根据数据转换结果确定数据转换是否成功可以是提取数据转换结果中的数据转换状态码,将数据转换状态码与成功状态码进行比对,若两者一致,则判定数据转换成功,若两者不一致,则判定数据转换失败。

可以理解的是,若数据转换成功,则需要将数据转换得到的数据反馈至数据转换请求的请求发起者,因此,可以根据数据转换结果生成数据转换响应。其中,根据数据转换结果生成数据转换响应可以是将数据转换结果作为响应参数生成数据转换响应。

在实际使用中,可以通过有线网络或无线网络将数据转换响应发送至数据转换请求的请求发起者,本实施例对此不加以限制。

进一步的,为了在数据转换失败时便于数据转换请求的请求发起者排查异常原因,本实施例所述获取数据转换结果,根据所述数据转换结果确定数据转换是否成功的步骤之后,还可以包括:

在数据转换不成功时,根据所述数据转换结果确定转换失败数据及转换失败原因;根据所述转换失败数据及所述转换失败原因构建异常提示消息;根据所述异常提示消息及所述数据转换结果生成数据转换响应;将所述数据转换响应发送至所述数据转换请求的请求发起者。

需要说明的是,转换失败原因可以是用于描述导致数据转换失败的原因,转换失败数据可以是发生异常无法正常进行数据转换的待转换数据。转换失败原因可以是根据数据转换结果中的数据转换状态码确定,例如:数据转换状态码为E302,则表示网络异常。

可以理解的是,根据转换失败数据及转换失败原因构建异常提示消息,然后根据异常提示消息及数据转换结果生成数据转换响应并将数据转换响应发送至数据转换请求的请求发起者,则请求发起者可以对接收到的数据转换响应进行解析,获取异常提示消息,根据异常提示消息即可确定转换失败数据及转换失败原因,从而快速确定是哪一条数据转换异常及为何异常,从而快速定位异常原因,并进行相应的处理。

本实施例通过根据接收到的数据转换请求确定数据转换标识及数据源;获取数据转换标识对应的数据转换规则;通过预先创建的多个数据获取线程从数据源加载待转换数据;将待转换数据添加至数据转换队列,以使数据转换队列的消费者根据数据转换规则对待转换数据进行数据转换。本发明提供的上述方法在平台对接时不必每次对接编写适配代码进行数据适配,仅需添加对应的数据转换规则即可,减少了开发工作量,由于本发明在加载待转换数据时采用了多线程进行加载,数据转换效率高,数据转换时采用了消息队列,可异步进行处理,防止了持续占用系统资源。

参考图3,图3为本发明一种数据转换方法第二实施例的流程示意图。

基于上述第一实施例,本实施例数据转换方法的所述步骤S30,包括:

步骤S301:获取所述数据源的数据源类型。

需要说明的是,数据源类型可以是数据源的类型,例如:字典类、数据表、第三方数据接口等。获取数据源的数据源类型可以是根据数据源的信息确定数据源路径,提取数据源路径中的关键字符(字符包含,文字、字母、数字,符号或者它们的组合,涵盖面更广),根据关键字符确定数据源类型,例如:根据数据源路径中的mysql、oracle、http、https等关键字符确定数据源类型。还可以是向数据源路径发送请求,并接收数据源反馈的响应信息,根据响应信息确定数据源类型。

步骤S302:查找所述数据源类型对应的目标线程池,从所述目标线程池中获取预先创建的多个数据获取线程。

可以理解的是,从数据源类型不同的数据源处加载数据的难度以及时长均不相同,为了便于控制数据获取线程的数量,可以创建多个数据获取线程池,各个数据获取线程池分别对应一个数据源类型。各个数据获取线程池中存放的线程数量可以不同。

进一步的,为了保证数据加载效率,本实施例步骤S302,可以包括:

查找所述数据源类型对应的目标线程池,并确定所述数据源对应的数据量级;根据所述数据量级确定所需线程数量,并获取所述目标线程池的当前线程数量;在所述当前线程数量大于或等于所述所需线程数量时,从所述目标线程池中获取预先创建的多个数据获取线程。

需要说明的是,数据源对应的数据量级可以是需要从数据源加载的数据的量级。根据数据量级确定所需线程数量可以是获取数据加载最大时长及单线程加载速度,将数据加载最大时长及单线程加载速度相乘获得单线程最大加载量级,将数量量级与单线程最大加载量级相除,获得所需线程数量。其中,数据加载最大时长可以由数据转换设备的管理人员进行设置,用于表征允许数据加载的最大消耗时长;单线程加载速度为数据转换设备单个线程每秒可加载的数据量,可以由数据转换设备的管理人员预先根据数据转换设备的性能进行标定。

可以理解的是,若目标线程池的当前线程数量大于或等于所需线程数量,则表示目标线程池中的线程数量足够,可以在数据加载最大时长内完成数据加载,则此时可以直接从目标线程池中获取预先创建的多个数据获取线程。

在实际使用中,若目标线程池的当前线程数量小于所需线程数量,则表示目标线程池中的线程数量过少,无法在数据加载最大时长内完成数据加载此时为了保证在数据加载最大时长内完成数据加载,可以根据所需线程数量及当前线程数量确定待添加线程数量;根据待添加线程数量创建若干个数据获取线程,并将创建的数据获取线程添加至目标线程池中;再从目标线程池中获取预先创建的多个数据获取线程。其中,根据所需线程数量及当前线程数量确定待添加线程数量可以是将所需线程数量减去当前线程数量,从而获得待添加线程数量;根据待添加线程数量创建若干个数据获取线程可以是创建数量与待添加线程数量相同的数据获取线程。

步骤S303:通过所述多个数据获取线程从所述数据源加载待转换数据。

可以理解的是,在从目标线程池中获取预先创建的多个数据获取线程之后,可以同时运行多个数据获取线程从数据源加载待转换数据,可以大量节省数据加载时间,提高执行效率。

进一步的,为了保证可正常通过多个数据获取线程从数据源加载待转换数据,本实施例步骤S303,可以包括:

获取所述数据源的数据源类型;根据所述数据源类型确定数据读取规则;基于所述数据读取规则,通过所述多个数据获取线程从所述数据源加载待转换数据。

需要说明的是,数据源类型可以包括:拼接字符串、字典表、数据表、第三方数据接口等。

在实际使用中,从数据源类型不同的数据源加载数据的方式也不相同,而涉及到通过多线程同时加载数据,则需要为各线程进行分工,使其可正常协同,因此,需要根据数据源类型确定数据读取规则,然后基于数据读取规则,通过多个数据获取线程从数据源加载待转换数据。

例如:假设数据获取线程为4个,若数据源类型为拼接字符串,则需要通过拼接符对拼接字符串进行拆解,从而获得数据集合,然后将数据集合拆分为4个子集,分发至各数据获取线程进行加载;若数据源类型为字典表或数据表,则可以获取表索引最大值,根据索引最大值将索引值均分为4份分发至各数据获取线程,数据获取线程加载分发到的索引值对应的数据;若数据源类型为第三方接口,则获取数据总量,根据数据总量计算各数据获取线程对应的分页参数,然后各数据获取线程根据分页参数从第三方接口加载数据。

在本实施例中,通过获取所述数据源的数据源类型;查找所述数据源类型对应的目标线程池,从所述目标线程池中获取预先创建的多个数据获取线程;通过所述多个数据获取线程从所述数据源加载待转换数据。由于从不同数据源类型的数据源加载数据的难度及时长均不相同,根据数据源类型的不同设置了多个目标线程池,可以为不同数据源类型分配不同的数据获取线程数量,便于管理,合理的分配了资源。

在本实施例中,所述步骤S40,包括:

步骤S401:获取所述待转换数据对应的数据优先级。

需要说明的是,数据优先级用于表征待转换数据的紧急程度,数据优先级越高,则表示紧急程度越高,需优先分配资源进行处理。获取待转换数据对应的数据优先级可以是获取待转换数据对应的数据转换请求,查找数据转换请求对应的请求发起者,在预设优先级映射表中查找请求发起者对应的数据优先级,将查找到的数据优先级作为待转换数据对应的数据优先级。其中,请求发起者为发出该数据转换请求的系统或功能平台,预设优先级映射表中包含有各系统或功能平台与数据优先级的映射关系,可以由数据转换设备的管理人员预先进行设置。

步骤S402:根据所述数据优先级查找对应的数据转换队列。

可以理解的是,可以设置多个不同的数据转换队列,各个数据转换队列分别与各数据优先级对应,根据数据优先级查找对应的数据转换队列可以是查找对应的数据优先级与待转换数据对应的数据优先级一致的数据转换队列。

在实际使用中,对应的数据优先级越高的数据转换队列的消费者数量就越多,例如:假设数据优先级分为低、中、高,分别对应的数据转换队列为A、B、C,其中,A对应的消费者数量为2,B对应的消费者数量为4,C对应的额消费者数量为8。

步骤S403:将所述待转换数据添加至所述数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

可以理解的是,在根据待转换数据对应的数据优先级查找到对应的数据转换队列之后,即可将待转换数据添加至数据转换队列中,使得数据转换队列的消费者根据数据转换规则对待转换数据进行数据转换。

本实施例通过获取所述待转换数据对应的数据优先级;根据所述数据优先级查找对应的数据转换队列;将所述待转换数据添加至所述数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。由于对应的数据优先级的数据转换队列的消费者数量不同,数据消费速度不同,根据待转换数据对应的数据优先级将待转换数据添加至对应的数据转换队列中,保证了数据优先度较高的待转换数据可优先进行处理。

参考图4,图4为本发明一种数据转换方法第三实施例的流程示意图。

基于上述第一实施例,本实施例数据转换方法的所述步骤S20,包括:

步骤S201:获取所述数据转换标识对应的转换对象。

需要说明的是,转换对象可以是用于声明目标格式的对象,转换对象中可以包括目标格式中各个字段及各个字段的数据优先级等信息。获取数据转换标识对应的转换对象可以是根据数据转换标识在数据转换设备的内存中查找对应的转换对象。

步骤S202:读取所述转换对象中的目标转换字段。

需要说明的是,目标转换字段为转换对象中需要进行数据转换的字段。在进行数据转换时,并非所有的字段都需要进行转换,待转换数据与转换对象中部分字段可能字段名及数据优先级均一致,则此字段无需转换,因此,可以为转换对象中无需进行转换的字段设置相应的标识,将转换对象中所有字段中具备相应的标识的字段去除即可获得目标转换字段。

步骤S203:在转换规则库中查找所述目标转换字段对应的数据转换规则,获得所述数据转换标识对应的数据转换规则。

需要说明的是,转换规则库可以是包含有各种数据转换规则的数据库,其中的数据转换规则可以由数据转换设备的管理人员预先进行设置。在转换规则库中查找目标转换字段对应的数据转换规则,获得数据转换标识对应的数据转换规则可以是将目标转换字段与数据转换规则中的目标字段进行匹配,将匹配到的数据转换规则作为数据转换标识对应的数据转换规则。

在实际使用中,各不同的转换对象中的字段的字段名可能会相同,若仅以字段名查找目标转换字段对应的数据转换规则可能会出现误查等现象,为了保证数据转换规则的正常区分,可以在数据转换规则中设置数据转换标识,然后根据数据转换标识及目标转换字段的字段名查找目标转换字段对应的数据转换规则。

进一步的,为了减少数据转换规则的修改量,提高数据转换规则的复用性,本实施例步骤S203,可以包括:

在转换规则库中查找所述目标转换字段对应的数据转换规则,获得若干条数据转换规则;获取各数据转换规则的生效标识参数;将所述若干条数据转换规则中生效标识参数为规则失效的数据转换规则清除,获得有效转换规则;将所述有效转换规则作为所述数据转换标识对应的数据转换规则。

需要说明的是,随着系统的迭代更新,目标转换字段也会发生变化,则此时数据转换规则也需要对应的修改,但是,在实际开发过程中,随时可能会发生回滚等现象,对数据转换规则修改时若采用覆盖性修改,则系统一旦回滚,数据转换规则无法恢复,需要人工一条条重新修改,十分不便,因此,可以在数据转换规则中添加一个生效标识参数,根据生效标识参数声明该数据转换规则是否生效使用,在需要对数据转换规则进行修改时不进行覆盖性修改,而是重新创建一条相同的数据转换规则,将旧的数据转换规则的生效标识参数修改为规则失效,然后修改新创建的数据转换规则,由此,在回滚时仅需对数据转换规则的生效标识参数进行修改即可,而修改整条数据转换规则,可以提高便利性。

在实际使用中,为了适应上述修改,查找到目标转换字段对应的数据转换规则时,需要将查找到的生效标识参数为规则失效的数据转换规则筛除,从而获得生效的数据转换规则,即有效转换规则,然后将有效转换规则作为数据转换标识对应的数据转换规则。

本实施例通过获取所述数据转换标识对应的转换对象;读取所述转换对象中的目标转换字段;在转换规则库中查找所述目标转换字段对应的数据转换规则,获得所述数据转换标识对应的数据转换规则。由于是根据数据转换标识对应的转换对象中的目标转换字段查找对应的数据转换规则,减少了对不必进行转换的字段的规则查询,节省了系统资源,提高了执行效率。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据转换程序,所述数据转换程序被处理器执行时实现如上文所述的数据转换方法的步骤。

参照图5,图5为本发明数据转换装置第一实施例的结构框图。

如图5所示,本发明实施例提出的数据转换装置包括:

请求接收模块10,用于根据接收到的数据转换请求确定数据转换标识及数据源;

规则获取模块20,用于获取所述数据转换标识对应的数据转换规则;

数据加载模块30,用于通过预先创建的多个数据获取线程从所述数据源加载待转换数据;

数据转换模块40,用于将所述待转换数据添加至数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

本实施例通过根据接收到的数据转换请求确定数据转换标识及数据源;获取数据转换标识对应的数据转换规则;通过预先创建的多个数据获取线程从数据源加载待转换数据;将待转换数据添加至数据转换队列,以使数据转换队列的消费者根据数据转换规则对待转换数据进行数据转换。本发明提供的上述方法在平台对接时不必每次对接编写适配代码进行数据适配,仅需添加对应的数据转换规则即可,减少了开发工作量,由于本发明在加载待转换数据时采用了多线程进行加载,数据转换效率高,数据转换时采用了消息队列,可异步进行处理,防止了持续占用系统资源。

进一步的,所述数据加载模块30,还用于获取所述数据源的数据源类型;查找所述数据源类型对应的目标线程池,从所述目标线程池中获取预先创建的多个数据获取线程;通过所述多个数据获取线程从所述数据源加载待转换数据。

进一步的,所述数据加载模块30,还用于获取所述数据源的数据源类型;根据所述数据源类型确定数据读取规则;基于所述数据读取规则,通过所述多个数据获取线程从所述数据源加载待转换数据。

进一步的,所述数据加载模块30,还用于查找所述数据源类型对应的目标线程池,并确定所述数据源对应的数据量级;根据所述数据量级确定所需线程数量,并获取所述目标线程池的当前线程数量;在所述当前线程数量大于或等于所述所需线程数量时,从所述目标线程池中获取预先创建的多个数据获取线程。

进一步的,所述数据加载模块30,还用于在所述当前线程数量小于所述所需线程数量时,根据所述所需线程数量及所述当前线程数量确定待添加线程数量;根据所述待添加线程数量创建若干个数据获取线程,并将创建的数据获取线程添加至所述目标线程池;从所述目标线程池中获取预先创建的多个数据获取线程。

进一步的,所述数据转换模块40,还用于获取所述待转换数据对应的数据优先级;根据所述数据优先级查找对应的数据转换队列;将所述待转换数据添加至所述数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

进一步的,所述请求接收模块10,还用于在接收到数据转换请求时,提取所述数据转换请求中的数据转换标识及数据来源标识;在所述数据来源类型为第一类型标识时,将所述数据转换请求作为数据源。

进一步的,所述请求接收模块10,还用于在所述数据来源标识为第二类型标识时,提取所述数据转换请求中的数据来源路径;根据所述数据来源路径确定数据源。

进一步的,所述规则获取模块20,还用于获取所述数据转换标识对应的转换对象;读取所述转换对象中的目标转换字段;在转换规则库中查找所述目标转换字段对应的数据转换规则,获得所述数据转换标识对应的数据转换规则。

进一步的,所述规则获取模块20,还用于在转换规则库中查找所述目标转换字段对应的数据转换规则,获得若干条数据转换规则;获取各数据转换规则的生效标识参数;将所述若干条数据转换规则中生效标识参数为规则失效的数据转换规则清除,获得有效转换规则;将所述有效转换规则作为所述数据转换标识对应的数据转换规则。

进一步的,所述数据转换模块40,还用于获取数据转换结果,根据所述数据转换结果确定数据转换是否成功;在数据转换成功时,根据所述数据转换结果生成数据转换响应;将所述数据转换响应发送至所述数据转换请求的请求发起者。

进一步的,所述数据转换模块40,还用于在数据转换不成功时,根据所述数据转换结果确定转换失败数据及转换失败原因;根据所述转换失败数据及所述转换失败原因构建异常提示消息;根据所述异常提示消息及所述数据转换结果生成数据转换响应;将所述数据转换响应发送至所述数据转换请求的请求发起者。

应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。

需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据转换方法,此处不再赘述。

此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read OnlyMemory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

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

本发明公开了A1、一种数据转换方法,所述数据转换方法包括以下步骤:

根据接收到的数据转换请求确定数据转换标识及数据源;

获取所述数据转换标识对应的数据转换规则;

通过预先创建的多个数据获取线程从所述数据源加载待转换数据;

将所述待转换数据添加至数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

A2、如A1所述的数据转换方法,所述通过预先创建的多个数据获取线程从所述数据源加载待转换数据的步骤,包括:

获取所述数据源的数据源类型;

查找所述数据源类型对应的目标线程池,从所述目标线程池中获取预先创建的多个数据获取线程;

通过所述多个数据获取线程从所述数据源加载待转换数据。

A3、如A2所述的数据转换方法,所述通过所述多个数据获取线程从所述数据源加载待转换数据的步骤,包括:

获取所述数据源的数据源类型;

根据所述数据源类型确定数据读取规则;

基于所述数据读取规则,通过所述多个数据获取线程从所述数据源加载待转换数据。

A4、如A2所述的数据转换方法,所述查找所述数据源类型对应的目标线程池,从所述目标线程池中获取预先创建的多个数据获取线程的步骤,包括:

查找所述数据源类型对应的目标线程池,并确定所述数据源对应的数据量级;

根据所述数据量级确定所需线程数量,并获取所述目标线程池的当前线程数量;

在所述当前线程数量大于或等于所述所需线程数量时,从所述目标线程池中获取预先创建的多个数据获取线程。

A5、如A4所述的数据转换方法,所述根据所述数据规模确定所需线程数量,并获取所述目标线程池的当前线程数量的步骤之后,还包括:

在所述当前线程数量小于所述所需线程数量时,根据所述所需线程数量及所述当前线程数量确定待添加线程数量;

根据所述待添加线程数量创建若干个数据获取线程,并将创建的数据获取线程添加至所述目标线程池;

从所述目标线程池中获取预先创建的多个数据获取线程。

A6、如A1所述的数据转换方法,所述将所述待转换数据添加至数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换的步骤,包括:

获取所述待转换数据对应的数据优先级;

根据所述数据优先级查找对应的数据转换队列;

将所述待转换数据添加至所述数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

A7、如A1所述的数据转换方法,所述根据接收到的数据转换请求确定数据转换标识及数据源的步骤,包括:

在接收到数据转换请求时,提取所述数据转换请求中的数据转换标识及数据来源标识;

在所述数据来源类型为第一类型标识时,将所述数据转换请求作为数据源。

A8、如A7所述的数据转换方法,所述在接收到数据转换请求时,提取所述数据转换请求中的数据转换标识及数据来源类型的步骤之后,还包括:

在所述数据来源标识为第二类型标识时,提取所述数据转换请求中的数据来源路径;

根据所述数据来源路径确定数据源。

A9、如A1所述的数据转换方法,所述获取所述数据转换标识对应的数据转换规则的步骤,包括:

获取所述数据转换标识对应的转换对象;

读取所述转换对象中的目标转换字段;

在转换规则库中查找所述目标转换字段对应的数据转换规则,获得所述数据转换标识对应的数据转换规则。

A10、如A9所述的数据转换方法,所述在转换规则库中查找所述目标转换字段对应的数据转换规则,获得所述数据转换标识对应的数据转换规则的步骤,包括:

在转换规则库中查找所述目标转换字段对应的数据转换规则,获得若干条数据转换规则;

获取各数据转换规则的生效标识参数;

将所述若干条数据转换规则中生效标识参数为规则失效的数据转换规则清除,获得有效转换规则;

将所述有效转换规则作为所述数据转换标识对应的数据转换规则。

A11、如A1-A10中任一项所述的数据转换方法,所述将所述待转换数据添加至数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换的步骤之后,还包括:

获取数据转换结果,根据所述数据转换结果确定数据转换是否成功;

在数据转换成功时,根据所述数据转换结果生成数据转换响应;

将所述数据转换响应发送至所述数据转换请求的请求发起者。

A12、如A11所述的数据转换方法,所述获取数据转换结果,根据所述数据转换结果确定数据转换是否成功的步骤之后,还包括:

在数据转换不成功时,根据所述数据转换结果确定转换失败数据及转换失败原因;

根据所述转换失败数据及所述转换失败原因构建异常提示消息;

根据所述异常提示消息及所述数据转换结果生成数据转换响应;

将所述数据转换响应发送至所述数据转换请求的请求发起者。

本发明公开了B13、一种数据转换装置,所述数据转换装置包括以下模块:

请求接收模块,用于根据接收到的数据转换请求确定数据转换标识及数据源;

规则获取模块,用于获取所述数据转换标识对应的数据转换规则;

数据加载模块,用于通过预先创建的多个数据获取线程从所述数据源加载待转换数据;

数据转换模块,用于将所述待转换数据添加至数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

B14、如B13所述的数据转换装置,所述数据加载模块,还用于获取所述数据源的数据源类型;查找所述数据源类型对应的目标线程池,从所述目标线程池中获取预先创建的多个数据获取线程;通过所述多个数据获取线程从所述数据源加载待转换数据。

B15、如B14所述的数据转换装置,所述数据加载模块,还用于获取所述数据源的数据源类型;根据所述数据源类型确定数据读取规则;基于所述数据读取规则,通过所述多个数据获取线程从所述数据源加载待转换数据。

B16、如B14所述的数据转换装置,所述数据加载模块,还用于查找所述数据源类型对应的目标线程池,并确定所述数据源对应的数据量级;根据所述数据量级确定所需线程数量,并获取所述目标线程池的当前线程数量;在所述当前线程数量大于或等于所述所需线程数量时,从所述目标线程池中获取预先创建的多个数据获取线程。

B17、如B16所述的数据转换装置,所述数据加载模块,还用于在所述当前线程数量小于所述所需线程数量时,根据所述所需线程数量及所述当前线程数量确定待添加线程数量;根据所述待添加线程数量创建若干个数据获取线程,并将创建的数据获取线程添加至所述目标线程池;从所述目标线程池中获取预先创建的多个数据获取线程。

B18、如B13所述的数据转换装置,所述数据转换模块,还用于获取所述待转换数据对应的数据优先级;根据所述数据优先级查找对应的数据转换队列;将所述待转换数据添加至所述数据转换队列,以使所述数据转换队列的消费者根据所述数据转换规则对所述待转换数据进行数据转换。

本发明公开了C19、一种数据转换设备,所述数据转换设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的数据转换程序,所述数据转换程序被处理器执行时实现如上所述的数据转换方法的步骤。

本发明公开了D20、一种计算机可读存储介质,所述计算机可读存储介质上存储有数据转换程序,所述数据转换程序执行时实现如上所述的数据转换方法的步骤。

相关技术
  • 基于数据分区的语种转换方法、装置、设备及存储介质
  • 时间转换方法及装置、设备、存储介质、处理器
  • 一种代码转换方法、装置及设备、存储介质
  • 脚本转换方法、装置、计算机设备及存储介质
  • 图像转换方法、装置、电子设备及存储介质
  • 不同数据模型的数据转换方法、装置、设备及存储介质
  • 数据库存储过程转换方法、装置、终端设备及存储介质
技术分类

06120115760172