可左右滑动选省市

异构系统间的数据处理方法、装置、存储介质和设备

更新时间:2024-10-01
异构系统间的数据处理方法、装置、存储介质和设备 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:异构系统间的数据处理方法、装置、存储介质和设备

专利类型:实用新型专利

专利申请号:CN201910945146.6

专利申请(专利权)人:北京国双科技有限公司
权利人地址:北京市海淀区北四环中路229号海泰大厦4层南401号

专利发明(设计)人:丁维军

专利摘要:本公开涉及一种异构系统间的数据处理方法、装置、存储介质和设备,涉及数字信息处理技术领域,该方法包括:利用预设的数据接口从源系统中抽取第一格式的源数据表,源数据表中包含至少一条源数据,且源数据表包含至少一个源字段,将源数据表按列存入每个源字段对应的队列,每个队列存储有该源字段对应的数值,根据目标系统指定的第二格式和第一格式,确定每个队列对应的转换引擎,并利用每个转换引擎转换该队列中存储的数值,将每个队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集,将目标队列集合并为第二格式的目标数据表,并将目标数据表存入目标系统。能够提高数据处理的速度和性能。

主权利要求:
1.一种异构系统间的数据处理方法,其特征在于,所述方法包括:利用预设的数据接口从源系统中抽取第一格式的源数据表,所述源数据表中包含至少一条源数据,且所述源数据表包含至少一个源字段;
将所述源数据表按列存入每个所述源字段对应的队列,每个所述队列存储有该源字段对应的数值;
根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值;
所述根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值,包括:根据所述第一格式指示的第一源字段的第一数据类型,所述第二格式指示的所述第一源字段的第二数据类型,确定预设的转换接口的实现类,并将所述转换接口的实现类作为所述转换引擎,所述第一源字段为至少一个所述源字段中的任一源字段;
利用所述转换引擎将第一队列中的每个数值由所述第一数据类型转换为所述第二数据类型,所述第一队列为所述第一源字段对应的队列;
所述根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值,还包括:按照预设规则,确定预设的扩展接口的实现类,和/或确定预设的解析接口的实现类;
将所述扩展接口的实现类作为扩展引擎,和/或将所述解析接口的实现类作为解析引擎;
利用所述扩展引擎将至少两个目标队列存储的数值扩展为扩展队列;和/或,利用所述解析引擎根据所述目标队列存储的数值解析为至少两个解析队列,所述目标队列为所述预设规则指定的源字段对应的队列;
将每个所述队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集;
所述将每个所述队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集,包括:将每个所述队列中经过转换的数值存入该队列对应的阻塞队列;
将所述扩展队列中的数值存入所述扩展队列对应的阻塞队列;和/或,将所述解析队列中的数值存入所述解析队列对应的阻塞队列;
将全部阻塞队列作为所述目标队列集;
将所述目标队列集合并为所述第二格式的目标数据表,并存入所述目标系统。
2.根据权利要求1所述的方法,其特征在于,所述利用预设的数据接口从源系统中抽取第一格式的源数据表,包括:从所述源系统中获取原始格式的初始数据表;
利用所述数据接口将所述初始数据表转换为所述第一格式的所述源数据表。
3.根据权利要求1所述的方法,其特征在于,所述将所述源数据表按列存入每个所述源字段对应的队列,包括:依次将每个所述源字段存储在第一字段数组中;
依次将每条所述源数据存储在第一存储表中;
根据所述第一字段数组中的每个所述源字段,从所述第一存储表中取出该源字段对应的数值,并将该源字段对应的数值存入该源字段对应的队列;
删除所述第一存储表。
4.根据权利要求1所述的方法,其特征在于,所述将所述目标队列集合并为所述第二格式的目标数据表,并存入所述目标系统,包括:将所述目标队列集中的每个所述阻塞队列存储在第二存储表中;
将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据;
重复执行所述将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据的步骤,直至每个所述阻塞队列为空;
将全部所述目标数据作为所述目标数据表,并将所述目标数据表存入所述目标系统。
5.根据权利要求4所述的方法,其特征在于,所述将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据,包括:为所述第二存储表中的每个所述阻塞队列分配一个线程;
通过每个所述阻塞队列对应的线程取出该阻塞队列的队头存储的数值;
将每个所述阻塞队列对应的线程取出的数值合并为所述目标数据。
6.一种异构系统间的数据处理装置,其特征在于,所述装置包括:抽取模块,用于利用预设的数据接口从源系统中抽取第一格式的源数据表,所述源数据表中包含至少一条源数据,且所述源数据表包含至少一个源字段;
第一存储模块,用于将所述源数据表按列存入每个所述源字段对应的队列,每个所述队列存储有该源字段对应的数值;
转换模块,用于根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值;所述根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值,包括:根据所述第一格式指示的第一源字段的第一数据类型,所述第二格式指示的所述第一源字段的第二数据类型,确定预设的转换接口的实现类,并将所述转换接口的实现类作为所述转换引擎,所述第一源字段为至少一个所述源字段中的任一源字段;利用所述转换引擎将第一队列中的每个数值由所述第一数据类型转换为所述第二数据类型,所述第一队列为所述第一源字段对应的队列;所述根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值,还包括:按照预设规则,确定预设的扩展接口的实现类,和/或确定预设的解析接口的实现类;将所述扩展接口的实现类作为扩展引擎,和/或将所述解析接口的实现类作为解析引擎;利用所述扩展引擎将至少两个目标队列存储的数值扩展为扩展队列;和/或,利用所述解析引擎根据所述目标队列存储的数值解析为至少两个解析队列,所述目标队列为所述预设规则指定的源字段对应的队列;
第二存储模块,用于将每个所述队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集;所述将每个所述队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集,包括:将每个所述队列中经过转换的数值存入该队列对应的阻塞队列;将所述扩展队列中的数值存入所述扩展队列对应的阻塞队列;
和/或,将所述解析队列中的数值存入所述解析队列对应的阻塞队列;将全部阻塞队列作为所述目标队列集;
合并模块,用于将所述目标队列集合并为所述第二格式的目标数据表,并存入所述目标系统。
7.一种存储介质,其上存储有程序,其特征在于,该程序被处理器执行时实现权利要求
1‑5中任一项所述方法的步骤。
8.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;
其中,所述处理器、所述存储器通过所述总线完成相互间的通信;
所述处理器用于调用所述存储器中的程序指令,以执行权利要求1‑5中任一项所述方法的步骤。 说明书 : 异构系统间的数据处理方法、装置、存储介质和设备技术领域[0001] 本公开涉及数字信息处理技术领域,具体地,涉及一种异构系统间的数据处理方法、装置、存储介质和设备。背景技术[0002] 随着网络信息技术的不断发展,各种数据信息和数据量的规模越来越大。用户需要通过各种各样的数据处理系统来对数据信息进行处理和使用。然而,由于来源不同、使用场景不同、平台不同等原因,数据信息的表现形式可以为多种结构,相同的数据信息在不同的数据处理系统中,数据结构也不相同。因此,需要借助ETL(英文:Extract‑Transform‑Load,中文:抽取‑转换‑加载)工具对数据信息进行不同系统之间的转换。ETL工具对数据进行处理的过程中,包括数据源(即源系统)、数据处理、数据存储(即目标系统)三个异构的系统。每个系统都有各自支持的数据类型,为了使每个系统的数据类型能够互相兼容,通常会采用穷举的方法,实现所有数据类型中任意两种数据类型之间的转换,因此会执行大量重复冗余的格式转换。例如,数据信息中包括M个字段,支持N种数据类型,那么要保证各个数据类型能够兼容,需要重复执行M*N次数据转换,即时间复杂度为O(M*N),性能差,效率低。发明内容[0003] 本公开的目的是提供一种异构系统间的数据处理方法、装置、存储介质和设备,用以解决现有技术中存在的需要进行大量的格式转换,性能差、效率低的问题。[0004] 为了实现上述目的,根据本公开实施例的第一方面,提供一种异构系统间的数据处理方法,所述方法包括:[0005] 利用预设的数据接口从源系统中抽取第一格式的源数据表,所述源数据表中包含至少一条源数据,且所述源数据表包含至少一个源字段;[0006] 将所述源数据表按列存入每个所述源字段对应的队列,每个所述队列存储有该源字段对应的数值;[0007] 根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值;[0008] 将每个所述队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集;[0009] 将所述目标队列集合并为所述第二格式的目标数据表,并存入所述目标系统。[0010] 可选地,所述利用预设的数据接口从源系统中抽取第一格式的源数据表,包括:[0011] 从所述源系统中获取原始格式的初始数据表;[0012] 利用所述数据接口将所述初始数据表转换为所述第一格式的所述源数据表。[0013] 可选地,所述将所述源数据表按列存入每个所述源字段对应的队列,包括:[0014] 依次将每个所述源字段存储在第一字段数组中;[0015] 依次将每条所述源数据存储在第一存储表中;[0016] 根据所述第一字段数组中的每个所述源字段,从所述第一存储表中取出该源字段对应的数值,并将该源字段对应的数值存入该源字段对应的队列;[0017] 删除所述第一存储表。[0018] 可选地,所述根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值,包括:[0019] 根据所述第一格式指示的第一源字段的第一数据类型,所述第二格式指示的所述第一源字段的第二数据类型,确定预设的转换接口的实现类,并将所述转换接口的实现类作为所述转换引擎,所述第一源字段为至少一个所述源字段中的任一源字段;[0020] 利用所述转换引擎将第一队列中的每个数值由所述第一数据类型转换为所述第二数据类型,所述第一队列为所述第一源字段对应的队列。[0021] 可选地,所述根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值,还包括:[0022] 按照预设规则,确定预设的扩展接口的实现类,和/或确定预设的解析接口的实现类;[0023] 将所述扩展接口的实现类作为扩展引擎,和/或将所述解析接口的实现类作为解析引擎;[0024] 利用所述扩展引擎将至少两个目标队列存储的数值扩展为扩展队列;和/或,利用所述解析引擎根据所述目标队列存储的数值解析为至少两个解析队列,所述目标队列为所述预设规则指定的源字段对应的队列。[0025] 可选地,所述将每个所述队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集,包括:[0026] 将每个所述队列中经过转换的数值存入该队列对应的阻塞队列;[0027] 将所述扩展队列中的数值存入所述扩展队列对应的阻塞队列;和/或,将所述解析队列中的数值存入所述解析队列对应的阻塞队列;[0028] 将全部阻塞队列作为所述目标队列集。[0029] 可选地,所述将所述目标队列集合并为所述第二格式的目标数据表,并存入所述目标系统,包括:[0030] 将所述目标队列集中的每个所述阻塞队列存储在第二存储表中;[0031] 将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据;[0032] 重复执行所述将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据的步骤,直至每个所述阻塞队列为空;[0033] 将全部所述目标数据作为所述目标数据表,并将所述目标数据表存入所述目标系统。[0034] 可选地,所述将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据,包括:[0035] 为所述第二存储表中的每个所述阻塞队列分配一个线程;[0036] 通过每个所述阻塞队列对应的线程取出该阻塞队列的队头存储的数值;[0037] 将每个所述阻塞队列对应的线程取出的数值合并为所述目标数据。[0038] 根据本公开实施例的第二方面,提供一种异构系统间的数据处理装置,所述装置包括:[0039] 抽取模块,用于利用预设的数据接口从源系统中抽取第一格式的源数据表,所述源数据表中包含至少一条源数据,且所述源数据表包含至少一个源字段;[0040] 第一存储模块,用于将所述源数据表按列存入每个所述源字段对应的队列,每个所述队列存储有该源字段对应的数值;[0041] 转换模块,用于根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值;[0042] 第二存储模块,用于将每个所述队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集;[0043] 合并模块,用于将所述目标队列集合并为所述第二格式的目标数据表,并存入所述目标系统。[0044] 可选地,所述抽取模块包括:[0045] 获取子模块,用于从所述源系统中获取原始格式的初始数据表;[0046] 转换子模块,用于利用所述数据接口将所述初始数据表转换为所述第一格式的所述源数据表。[0047] 可选地,所述第一存储模块包括:[0048] 第一存储子模块,用于依次将每个所述源字段存储在第一字段数组中;[0049] 所述第一存储子模块,还用于依次将每条所述源数据存储在第一存储表中;[0050] 第二存储子模块,用于根据所述第一字段数组中的每个所述源字段,从所述第一存储表中取出该源字段对应的数值,并将该源字段对应的数值存入该源字段对应的队列;[0051] 删除子模块,用于删除所述第一存储表。[0052] 可选地,所述转换模块包括:[0053] 第一确定子模块,用于根据所述第一格式指示的第一源字段的第一数据类型,所述第二格式指示的所述第一源字段的第二数据类型,确定预设的转换接口的实现类,并将所述转换接口的实现类作为所述转换引擎,所述第一源字段为至少一个所述源字段中的任一源字段;[0054] 第一转换子模块,用于利用所述转换引擎将第一队列中的每个数值由所述第一数据类型转换为所述第二数据类型,所述第一队列为所述第一源字段对应的队列。[0055] 可选地,所述转换模块还包括:[0056] 第二确定子模块,用于按照预设规则,确定预设的扩展接口的实现类,和/或确定预设的解析接口的实现类;[0057] 所述第二确定子模块,还用于将所述扩展接口的实现类作为扩展引擎,和/或将所述解析接口的实现类作为解析引擎;[0058] 第二转换子模块,用于利用所述扩展引擎将至少两个目标队列存储的数值扩展为扩展队列;和/或,利用所述解析引擎根据所述目标队列存储的数值解析为至少两个解析队列,所述目标队列为所述预设规则指定的源字段对应的队列。[0059] 可选地,所述第二存储模块包括:[0060] 第三存储子模块,用于将每个所述队列中经过转换的数值存入该队列对应的阻塞队列;[0061] 所述第三存储子模块,还用于将所述扩展队列中的数值存入所述扩展队列对应的阻塞队列;和/或,将所述解析队列中的数值存入所述解析队列对应的阻塞队列;[0062] 目标队列确定子模块,用于将全部阻塞队列作为所述目标队列集。[0063] 可选地,所述合并模块包括:[0064] 第四存储子模块,用于将所述目标队列集中的每个所述阻塞队列存储在第二存储表中;[0065] 合并子模块,用于将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据;[0066] 循环子模块,用于重复执行所述将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据的步骤,直至每个所述阻塞队列为空;[0067] 第五存储子模块,用于将全部所述目标数据作为所述目标数据表,并将所述目标数据表存入所述目标系统。[0068] 可选地,所述合并子模块用于:[0069] 为所述第二存储表中的每个所述阻塞队列分配一个线程;[0070] 通过每个所述阻塞队列对应的线程取出该阻塞队列的队头存储的数值;[0071] 将每个所述阻塞队列对应的线程取出的数值合并为所述目标数据。[0072] 根据本公开实施例的第三方面,提供一种存储介质,其上存储有程序,该程序被处理器执行时实现本公开实施例的第一方面所述方法的步骤。[0073] 根据本公开实施例的第四方面,提供一种设备,所述设备包括:[0074] 至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;[0075] 其中,所述处理器、所述存储器通过所述总线完成相互间的通信;[0076] 所述处理器用于调用所述存储器中的程序指令,以执行本公开实施例的第一方面所述方法的步骤。[0077] 通过上述技术方案,本公开中首先利用预设的数据接口抽取原系统中的源数据表,源数据表为第一格式,且包含有至少一条源数据,每条源数据包含至少一个源字段。之后,将源数据表按列存入每个源字段对应的队列,再根据目标系统指定的第二格式和第一格式,确定适用于每个队列的转换引擎,并利用转换引擎转换队列中存储的数值,进一步的,将每个队列中经过转换的数值存入队列对应的阻塞队列,以全部阻塞队列作为目标队列集,最后将目标队列集合并为第二格式的目标数据表,并存入目标系统。本公开通过将源系统中的源数据表按列进行存储,再针对按列存储的数据选择对应的转换引擎,从而将源数据表转换为目标系统指定的第二格式的目标数据表,避免了大量重复冗余的格式转换,提高了数据处理的速度和性能。[0078] 本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明[0079] 附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:[0080] 图1是根据一示例性实施例示出的一种异构系统间的数据处理方法的流程图;[0081] 图2是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图;[0082] 图3是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图;[0083] 图4是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图;[0084] 图5是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图;[0085] 图6是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图;[0086] 图7是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图;[0087] 图8是根据一示例性实施例示出的一种异构系统间的数据处理装置的框图;[0088] 图9是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图;[0089] 图10是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图;[0090] 图11是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图;[0091] 图12是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图;[0092] 图13是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图;[0093] 图14是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图;[0094] 图15是根据一示例性实施例示出的一种设备的框图。具体实施方式[0095] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。[0096] 在介绍本公开提供的异构系统间的数据处理方法、装置、存储介质和设备之前,首先对本公开各个实施例所涉及应用场景进行介绍。该应用场景中,源系统、目标系统可以是任一种用于数据存储的数据库或者用于数据展示、处理的文件。其中,数据库可以是SQL(英文:StructuredQueryLanguage,中文:结构化查询语言)类型数据库,例如PostgreSQL数据库等。文件例如可以是CSV(英文:Comma‑SeparatedValues,中文:逗号分隔值)文件、XML(英文:ExtensibleMarkupLanguage,中文:可扩展标记语言)文件、JSON(英文:JavaScriptObjectNotation)文件或HTML(英文:HyperTextMarkupLanguage,中文:超文本标记语言)文件等。本公开所提供的数据处理方法的执行主体可以是能够与源系统和目标系统进行数据交互的服务器或者终端。例如服务器可以是本地服务器或者云端服务器。终端可以是智能手机、平板电脑、智能电视、智能手表、PDA(英文:PersonalDigitalAssistant,中文:个人数字助理)、便携计算机等移动终端,也可以是台式计算机等固定终端。[0097] 图1是根据一示例性实施例示出的一种异构系统间的数据处理方法的流程图,如图1所示,该方法包括:[0098] 步骤101,利用预设的数据接口从源系统中抽取第一格式的源数据表,源数据表中包含至少一条源数据,且源数据表包含至少一个源字段。[0099] 举例来说,首先通过预设的数据接口从源系统中抽取第一格式的源数据表,源数据表中可以包括一条或多条第一格式的源数据,源数据表中包含一个或多个源字段,即源数据表中每条源数据中均包括相同的源字段。第一格式可以包括:每个源字段的数据类型。可以将源数据表看作一个n行m列的表格,表格中每一行对应一条源数据,每一列对应一个源字段,n表示源数据的条数,m表示源字段的数量。其中,数据接口能够将源系统中的原始数据转换为第一格式的源数据,例如可以是JDBC(英文:JavaDataBaseConnectivity,中文:java数据库连接)接口,或者ODBC(英文:OpenDatabaseConnectivity,中文:开放数据库连接)接口。以源系统为PostgreSQL数据库,数据接口为JDBC接口来举例。数据库中包含有表User,表User中包括100个数据,每个数据包含有以下8个字段:id(bigint),name(text),sex(enum),birthday(timestamp),createTime(date),hasChildren(boolean),personalDetails(json),wages(numeric)。其中,某一数据的具体数值为:id=1,name=张三,sex=男,birthday=1966062102000,createTime=2019‑08‑2811:22:22,hasChildren=true,personalDetails({"address":"北京市XXX","educational":"本科"}),wages(20000)。那么可以利用JDBC接口的PostgresqlJdbcDriver将表User中的数据抽取出来,得到第一格式的源数据表,源数据表中包含有100条源数据,每条源数据都包含有8个字段。PostgresqlJdbcDriver是JDBC接口的具体实现,其中封装了Java和Postgresql之间的协议(例如:建立连接、执行查询、修改、删除等操作),能够将表User的8个字段的数据类型自动转换为java支持的数据类型,那么第一格式为:id(long),name(String),sex(int),birthday(Date),createTime(Date),hasChildren(boolean),personalDetails(PGobject),wages(BigDecimal)。[0100] 步骤102,将源数据表按列存入每个源字段对应的队列,每个队列存储有该源字段对应的数值。[0101] 示例的,将源数据表按列进行切分,将切分后的每个源字段中的数值存放在对应的队列(Queue)中。源数据表中的源数据是按照行进行划分的,每一行对应一条源数据,每条源数据都包含全部的源字段。那么,可以预先为每个源字段创建一个队列,用于存放该源字段对应的数值(value)。例如,源数据表中包含有100条源数据,每条源数据都包含有8个字段,那么预先建立8个Queue,每个Queue用于存放一个源字段对应的100个数值。其中,若某条源数据的某一源字段的数值不存在,可以按照null进行存储。其中,本公开实施例中的队列(也包括后文所提到的阻塞队列),都是在表的队头(即:front、前端)进行取出(即删除)操作,在表的队尾(即:rear、后端)进行插入操作。[0102] 步骤103,根据目标系统指定的第二格式和第一格式,确定每个队列对应的转换引擎,并利用每个转换引擎转换该队列中存储的数值。[0103] 步骤104,将每个队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集。[0104] 进一步的,要将源系统中的数据转换到目标系统中处理或使用,即需要将数据转换为目标系统能够支持的第二格式,第二格式可以包括目标系统指定多个字段的数据类型。那么,根据步骤101中获取的源数据表的第一格式,和目标系统指定的第二格式,来确定每个队列对应的转换引擎,并利用每个转换引擎将该队列中存储的数值转换为第二格式中指定的数据类型。转换引擎可以理解为是预先设置的转换接口的一个具体实现类,能够将该队列中的数值由第一格式中指示的数据类型转换为第二格式中指示的数据类型,转换接口为将一种数据类型转换为另一种数据类型抽象出的接口。例如,第一格式中,源字段sex的数据类型为int,第二格式中指定sex的数据类型为字符串类型,那么适用于sex对应的队列的转换引擎即为转换接口中将int转换为字符串的实现类,利用将int转换为字符串的实现类将sex对应的队列中的数值由int类型转换为字符串类型。这样,只需预先设置一个转换接口,再具体根据第一格式和第二格式来确定转换引擎,不需要采用穷举的方法来进行大量冗余的格式转换,有效提高了数据处理的速度和性能。[0105] 在利用转换引擎将每个队列中存储的数值进行转换之后,将转换后的数值存储该队列对应的阻塞队列(BlockingQueue),并将全部阻塞队列作为目标队列集。可以理解为,为步骤102中的每个队列都创建一个对应的阻塞队列,用于存储队列中经过转换引擎转换的数值,即每个源字段对应一个队列和一个阻塞队列。以源字段createTime来举例,第一格式中,数据类型为Date,第二格式中指定createTime的数据类型为timestamp类型,那么适用于createTime对应的队列的转换引擎即为转换接口中将Date转换为timestamp的实现类,利用将Date转换为timestamp的实现类将createTime对应的队列中的数值由Date类型转换为timestamp类型,将转换后的timestamp类型的数据存入createTime对应的阻塞队列。对8个队列中的数据都执行上述步骤,直至获取8个阻塞队列,将8个阻塞队列作为目标队列集。[0106] 步骤105,将目标队列集合并为第二格式的目标数据表,并存入目标系统。[0107] 示例的,步骤104中获取的目标队列集中的数据,是按列存储的,即每个阻塞队列对应一个源字段。而在目标系统中最终输出的数据,应当以行为单位进行输出,那么需要将目标队列集中的数据再合并为以行为单位的数据。可以依次取出每个阻塞队列的前端(front)数值,组合成一条目标数据,阻塞队列中包括多少个数值,得到多少条目标数据,即为目标数据表,最后将目标数据表存入目标系统中。由于阻塞队列中存储的数值均为第二格式中指定的数据类型,那么存入目标系统的目标数据表中的目标数据均满足第二格式。[0108] 综上所述,本公开中首先利用预设的数据接口抽取原系统中的源数据表,源数据表为第一格式,且包含有至少一条源数据,且源数据表包含至少一个源字段。之后,将源数据表按列存入每个源字段对应的队列,再根据目标系统指定的第二格式和第一格式,确定适用于每个队列的转换引擎,并利用转换引擎转换队列中存储的数值,进一步的,将每个队列中经过转换的数值存入队列对应的阻塞队列,以全部阻塞队列作为目标队列集,最后将目标队列集合并为第二格式的目标数据表,并存入目标系统。本公开通过将源系统中的源数据表按列进行存储,再针对按列存储的数据选择对应的转换引擎,从而将源数据表转换为目标系统指定的第二格式的目标数据表,避免了大量重复冗余的格式转换,提高了数据处理的速度和性能。[0109] 图2是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图,如图2所示,步骤101包括以下步骤:[0110] 步骤1011,从源系统中获取原始格式的初始数据表。[0111] 步骤1012,利用数据接口将初始数据表转换为第一格式的源数据表。[0112] 举例来说,数据接口可以为:JDBC接口或者ODBC接口。以源系统为PostgreSQL数据库来举例,原始格式的初始数据表为:id(bigint),name(text),sex(enum),birthday(timestamp),createTime(date),hasChildren(boolean),personalDetails(json),wages(numeric)。利用JDBC接口将初始数据表转换为java支持的数据类型,第一格式的源数据表为:id(long),name(String),sex(int),birthday(Date),createTime(Date),hasChildren(boolean),personalDetails(PGobject),wages(BigDecimal)。[0113] 图3是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图,如图3所示,步骤102的实现方式可以包括:[0114] 步骤1021,依次将每个源字段存储在第一字段数组中。[0115] 步骤1022,依次将每条源数据存储在第一存储表中。[0116] 在具体的应用场景中,由于源数据表中的源数据均为按行划分,那么首先要将按行划分的源数据表进行存储,再对源数据表按列进行切分。首先,建立第一字段数组List,将每个源字段存储在fieldNames中,建立第一存储表Map,将每条源数据存储在fieldValueMap中。以表User为例,那么ListfieldNames存储有8个源字段:id,name,sex,birthday,createTime,hasChildren,personalDetails,wages。MapfieldValueMap中按照<源字段,数值>的格式按行存储有100条源数据,其中源字段为键值(key),数值为value。如果某条源数据中的某个源字段的数值不存在,则对应存储为null。[0117] 步骤1023,根据第一字段数组中的每个源字段,从第一存储表中取出该源字段对应的数值,并将该源字段对应的数值存入该源字段对应的队列。[0118] 步骤1024,删除第一存储表。[0119] 之后,依次从第一存储表中取出第一字段数组中的每个源字段对应的数值,并存入第一字段数组中的该源字段对应的队列。再将第一存储表中的数值全部取出后,为了减少存储空间,可以将第一存储表删除。以表User为例,以id为键值,从第一存储表中取出id对应的数值,依次存入id对应的队列。对8个源字段都执行上述步骤,以得到8个分别存储有8个源字段对应的数值的队列。[0120] 需要说明的是,本公开实施例中的存储表(包括上述第一存储表,和后文提及的第二存储表和第三存储表),能够存储源字段和源字段对应的数值之间的对应关系,例如以是哈希表(英文:HashTable),也可以是其他类型、其他结构的存储表,本公开对此不作限定。[0121] 图4是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图,如图4所示,步骤103可以包括以下步骤:[0122] 步骤1031,根据第一格式指示的第一源字段的第一数据类型,第二格式指示的第一源字段的第二数据类型,确定预设的转换接口的实现类,并将转换接口的实现类作为转换引擎,第一源字段为至少一个源字段中的任一源字段。[0123] 步骤1032,利用转换引擎将第一队列中的每个数值由第一数据类型转换为第二数据类型,第一队列为第一源字段对应的队列。[0124] 以第一源字段createTime来举例,第一格式中,第一数据类型为Date,第二格式中指定createTime的第二数据类型为timestamp类型,那么适用于createTime对应的队列的转换引擎即为转换接口中将Date转换为timestamp的实现类,利用将Date转换为timestamp的实现类将createTime对应的队列中的数值由Date类型转换为timestamp类型。[0125] 图5是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图,如图5所示,步骤103还可以包括:[0126] 步骤1033,按照预设规则,确定预设的扩展接口的实现类,和/或确定预设的解析接口的实现类。[0127] 步骤1034,将扩展接口的实现类作为扩展引擎,和/或将解析接口的实现类作为解析引擎。[0128] 步骤1035,利用扩展引擎将至少两个目标队列存储的数值扩展为扩展队列。和/或,利用解析引擎根据目标队列存储的数值解析为至少两个解析队列,目标队列为预设规则指定的源字段对应的队列。[0129] 举个例子,除了对源字段的数据类型进行转换之外,还可以按照预设的规则对多个源字段进行扩展或者解析。例如,可以根据createTime字段和birthday字段,扩展出age字段,即age=createTime‑birthday,还可以从personalDetails字段中解析出address和educational两个字段。首先,按照预设规则,确定出扩展接口的实现类,或者确定解析接口的实现类。其中,扩展接口可以理解为根据多个数值扩展得到一个新的数值抽象出的接口,解析接口可以理解为将一个数值解析为多个新的数值抽象出的接口。预设规则可以包括扩展规则和解析规则,扩展规则中指定了一个或多个源字段,和扩展生成新的字段的数据类型,解析规则中指定了一个源字段,和解析生成新的字段的数据类型。那么,可以根据扩展规则确定扩展引擎和对应的目标队列,根据解析规则确定解析引擎和对应的目标队列,并利用扩展引擎将至少两个目标队列存储的数值扩展为扩展队列。利用解析引擎根据目标队列存储的数值解析为至少两个解析队列。[0130] 以扩展规则中指定了createTime字段和birthday字段,和扩展生成新的age字段的数据类型为timestamp类型,age=createTime‑birthday举例,那么扩展引擎即为扩展接口中将两个timestamp类型字段扩展为一个timestamp类型字段的实现类。以解析规则中指定了personalDetails字段,和解析生成新的address字段的数据类型为String类型,educational字段为String类型举例,那么解析引擎即为解析接口中将一个PGobject类型字段解析为两个String类型字段的实现类。[0131] 图6是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图,如图6所示,步骤104可以包括:[0132] 步骤1041,将每个队列中经过转换的数值存入该队列对应的阻塞队列。[0133] 步骤1042,将扩展队列中的数值存入扩展队列对应的阻塞队列。和/或,将解析队列中的数值存入解析队列对应的阻塞队列。[0134] 步骤1043,将全部阻塞队列作为目标队列集。[0135] 进一步的,首先将步骤1032中获取的每个队列中经过转换的数值存入该队列对应的阻塞队列,之后,若步骤1035中还获取有扩展队列和解析队列,那么还可以将扩展队列中的数值存入扩展队列对应的阻塞队列,将解析队列中的数值存入解析队列对应的阻塞队列。最后,将全部阻塞队列作为目标队列集。[0136] 图7是根据一示例性实施例示出的另一种异构系统间的数据处理方法的流程图,如图7所示,步骤105的实现方式可以包括:[0137] 步骤1051,将目标队列集中的每个阻塞队列存储在第二存储表中。[0138] 步骤1052,将第二存储表中每个阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据。[0139] 步骤1053,重复执行步骤1052,直至每个阻塞队列为空。[0140] 步骤1054,将全部目标数据作为目标数据表,并将目标数据表存入目标系统。[0141] 举例来说,在将阻塞队列中的数值取出合并为以行为单位的目标数据时,可以预先建立第二存储表,用于存储目标队列集中的每个阻塞队列。第二存储表存储目标队列集中的每个阻塞队列,具体可以是存储每个阻塞队列的指针或标识;例如对于java里的实现方式,可以是存储阻塞队列的指针。第二存储表例如可以是Map,按照<源字段,阻塞队列>的格式进行存储,其中源字段为键值,阻塞队列为value。需要说明的是,Map不支持value为null,可以预先定义EmptyObject来表示null,并且生成单例EmptyObject,以减少对象的创建。[0142] 之后,将第二存储表中每个阻塞队列的队头(front)存储的数值取出,并将取出的数值合并为目标数据。具体的,首先可以为第二存储表中的每个阻塞队列分配一个线程。之后,以异步遍历的方式,通过每个阻塞队列对应的线程取出该阻塞队列的队头存储的数值。最后,将每个阻塞队列对应的线程取出的数值合并为目标数据。重复执行上述步骤,直至每个阻塞队列为空。还可以建立第三存储表用于存储目标数据,例如Map,按照<源字段,数值>的格式按行存储。最终,将第三存储表中存储的全部目标数据作为目标数据表,并将目标数据表存入目标系统。[0143] 需要说明的是,在将目标数据表存入目标系统时,还可以预先抽象出一个加载接口,针对不同的目标系统,选择对应的加载引擎(即加载接口的具体实现类)。例如,目标系统为CSV文件,那么可以将第三存储表中的目标数据表按行存入CSV文件,每一条目标数据之间以逗号进行分隔。[0144] 综上所述,本公开中首先利用预设的数据接口抽取原系统中的源数据表,源数据表为第一格式,且包含有至少一条源数据,且源数据表包含至少一个源字段。之后,将源数据表按列存入每个源字段对应的队列,再根据目标系统指定的第二格式和第一格式,确定适用于每个队列的转换引擎,并利用转换引擎转换队列中存储的数值,进一步的,将每个队列中经过转换的数值存入队列对应的阻塞队列,以全部阻塞队列作为目标队列集,最后将目标队列集合并为第二格式的目标数据表,并存入目标系统。本公开通过将源系统中的源数据表按列进行存储,再针对按列存储的数据选择对应的转换引擎,从而将源数据表转换为目标系统指定的第二格式的目标数据表,避免了大量重复冗余的格式转换,提高了数据处理的速度和性能。[0145] 图8是根据一示例性实施例示出的一种异构系统间的数据处理装置的框图,如图8所示,该装置200包括:[0146] 抽取模块201,用于利用预设的数据接口从源系统中抽取第一格式的源数据表,源数据表中包含至少一条源数据,且源数据表包含至少一个源字段。[0147] 第一存储模块202,用于将源数据表按列存入每个源字段对应的队列,每个队列存储有该源字段对应的数值。[0148] 转换模块203,用于根据目标系统指定的第二格式和第一格式,确定每个队列对应的转换引擎,并利用每个转换引擎转换该队列中存储的数值。[0149] 第二存储模块204,用于将每个队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集。[0150] 合并模块205,用于将目标队列集合并为第二格式的目标数据表,并存入目标系统。[0151] 图9是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图,如图9所示,抽取模块201可以包括:[0152] 获取子模块2011,用于从源系统中获取原始格式的初始数据表。[0153] 转换子模块2012,用于利用数据接口将初始数据表转换为第一格式的源数据表。[0154] 图10是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图,如图10所示,第一存储模块202包括:[0155] 第一存储子模块2021,用于依次将每个源字段存储在第一字段数组中。[0156] 第一存储子模块2021,还用于依次将每条源数据存储在第一存储表中。[0157] 第二存储子模块2022,用于根据第一字段数组中的每个源字段,从第一存储表中取出该源字段对应的数值,并将该源字段对应的数值存入该源字段对应的队列。[0158] 删除子模块2023,用于删除第一存储表。[0159] 图11是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图,如图11所示,转换模块203包括:[0160] 第一确定子模块2031,用于根据第一格式指示的第一源字段的第一数据类型,第二格式指示的第一源字段的第二数据类型,确定预设的转换接口的实现类,并将转换接口的实现类作为转换引擎,第一源字段为至少一个源字段中的任一源字段。[0161] 第一转换子模块2032,用于利用转换引擎将第一队列中的每个数值由第一数据类型转换为第二数据类型,第一队列为第一源字段对应的队列。[0162] 图12是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图,如图12所示,转换模块203还可以包括:[0163] 第二确定子模块2033,用于按照预设规则,确定预设的扩展接口的实现类,和/或确定预设的解析接口的实现类。[0164] 第二确定子模块2033,还用于将扩展接口的实现类作为扩展引擎,和/或将解析接口的实现类作为解析引擎。[0165] 第二转换子模块2034,用于利用扩展引擎将至少两个目标队列存储的数值扩展为扩展队列。和/或,利用解析引擎根据目标队列存储的数值解析为至少两个解析队列,目标队列为预设规则指定的源字段对应的队列。[0166] 图13是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图,如图13所示,第二存储模块204包括:[0167] 第三存储子模块2041,用于将每个队列中经过转换的数值存入该队列对应的阻塞队列。[0168] 第三存储子模块2041,还用于将扩展队列中的数值存入扩展队列对应的阻塞队列。和/或,将解析队列中的数值存入解析队列对应的阻塞队列。[0169] 目标队列确定子模块2042,用于将全部阻塞队列作为目标队列集。[0170] 图14是根据一示例性实施例示出的另一种异构系统间的数据处理装置的框图,如图14所示,合并模块205包括:[0171] 第四存储子模块2051,用于将目标队列集中的每个阻塞队列存储在第二存储表中。[0172] 合并子模块2052,用于将第二存储表中每个阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据。[0173] 循环子模块2053,用于重复执行将第二存储表中每个阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据的步骤,直至每个阻塞队列为空。[0174] 第五存储子模块2054,用于将全部目标数据作为目标数据表,并将目标数据表存入目标系统。[0175] 具体的,合并子模块2052可以用于执行以下步骤:[0176] 1)为第二存储表中的每个阻塞队列分配一个线程。[0177] 2)通过每个阻塞队列对应的线程取出该阻塞队列的队头存储的数值。[0178] 3)将每个阻塞队列对应的线程取出的数值合并为目标数据。[0179] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。[0180] 综上所述,本公开中首先利用预设的数据接口抽取原系统中的源数据表,源数据表为第一格式,且包含有至少一条源数据,且源数据表包含至少一个源字段。之后,将源数据表按列存入每个源字段对应的队列,再根据目标系统指定的第二格式和第一格式,确定适用于每个队列的转换引擎,并利用转换引擎转换队列中存储的数值,进一步的,将每个队列中经过转换的数值存入队列对应的阻塞队列,以全部阻塞队列作为目标队列集,最后将目标队列集合并为第二格式的目标数据表,并存入目标系统。本公开通过将源系统中的源数据表按列进行存储,再针对按列存储的数据选择对应的转换引擎,从而将源数据表转换为目标系统指定的第二格式的目标数据表,避免了大量重复冗余的格式转换,提高了数据处理的速度和性能。[0181] 所述异构系统间的数据处理包括处理器和存储器,上述抽取模块,第一存储模块、转换模块、第二存储模块和合并模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。[0182] 处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来通过将源系统中的源数据表按列进行存储,再针对按列存储的数据选择对应的转换引擎,从而将源数据表转换为目标系统指定的第二格式的目标数据表。[0183] 本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数字资源的处理方法。[0184] 本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数字资源的处理方法。[0185] 图15是根据一示例性实施例示出的一种设备30的框图,该设备30包括至少一个处理器301、以及与处理器301连接的至少一个存储器302、总线303;其中,处理器301、存储器302通过总线303完成相互间的通信。处理器301用于调用存储器302中的程序指令,以执行上述的数字资源的处理方法。本文中的设备可以是服务器(例如:本地服务器或者服务器集群)、智能手机、平板电脑、PDA、便携计算机,也可以是台式计算机等固定终端等。[0186] 本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序,该方法包括:[0187] 利用预设的数据接口从源系统中抽取第一格式的源数据表,所述源数据表中包含至少一条源数据,且源数据表包含至少一个源字段;[0188] 将所述源数据表按列存入每个所述源字段对应的队列,每个所述队列存储有该源字段对应的数值;[0189] 根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值;[0190] 将每个所述队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集;[0191] 将所述目标队列集合并为所述第二格式的目标数据表,并存入所述目标系统。[0192] 可选地,所述利用预设的数据接口从源系统中抽取第一格式的源数据表,包括:[0193] 从所述源系统中获取原始格式的初始数据表;[0194] 利用所述数据接口将所述初始数据表转换为所述第一格式的所述源数据表。[0195] 可选地,所述将所述源数据表按列存入每个所述源字段对应的队列,包括:[0196] 依次将每个所述源字段存储在第一字段数组中;[0197] 依次将每条所述源数据存储在第一存储表中;[0198] 根据所述第一字段数组中的每个所述源字段,从所述第一存储表中取出该源字段对应的数值,并将该源字段对应的数值存入该源字段对应的队列;[0199] 删除所述第一存储表。[0200] 可选地,所述根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值,包括:[0201] 根据所述第一格式指示的第一源字段的第一数据类型,所述第二格式指示的所述第一源字段的第二数据类型,确定预设的转换接口的实现类,并将所述转换接口的实现类作为所述转换引擎,所述第一源字段为至少一个所述源字段中的任一源字段;[0202] 利用所述转换引擎将第一队列中的每个数值由所述第一数据类型转换为所述第二数据类型,所述第一队列为所述第一源字段对应的队列。[0203] 可选地,所述根据目标系统指定的第二格式和所述第一格式,确定每个所述队列对应的转换引擎,并利用每个所述转换引擎转换该队列中存储的数值,还包括:[0204] 按照预设规则,确定预设的扩展接口的实现类,和/或确定预设的解析接口的实现类;[0205] 将所述扩展接口的实现类作为扩展引擎,和/或将所述解析接口的实现类作为解析引擎;[0206] 利用所述扩展引擎将至少两个目标队列存储的数值扩展为扩展队列;和/或,利用所述解析引擎根据所述目标队列存储的数值解析为至少两个解析队列,所述目标队列为所述预设规则指定的源字段对应的队列。[0207] 可选地,所述将每个所述队列中经过转换的数值存入该队列对应的阻塞队列,以全部阻塞队列作为目标队列集,包括:[0208] 将每个所述队列中经过转换的数值存入该队列对应的阻塞队列;[0209] 将所述扩展队列中的数值存入所述扩展队列对应的阻塞队列;和/或,将所述解析队列中的数值存入所述解析队列对应的阻塞队列;[0210] 将全部阻塞队列作为所述目标队列集。[0211] 可选地,所述将所述目标队列集合并为所述第二格式的目标数据表,并存入所述目标系统,包括:[0212] 将所述目标队列集中的每个所述阻塞队列存储在第二存储表中;[0213] 将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据;[0214] 重复执行所述将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据的步骤,直至每个所述阻塞队列为空;[0215] 将全部所述目标数据作为所述目标数据表,并将所述目标数据表存入所述目标系统。[0216] 可选地,所述将所述第二存储表中每个所述阻塞队列的队头存储的数值取出,并将取出的数值合并为目标数据,包括:[0217] 为所述第二存储表中的每个所述阻塞队列分配一个线程;[0218] 通过每个所述阻塞队列对应的线程取出该阻塞队列的队头存储的数值;[0219] 将每个所述阻塞队列对应的线程取出的数值合并为所述目标数据。[0220] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0221] 在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。[0222] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。[0223] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。[0224] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。[0225] 本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。[0226] 以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。关于PatentHub关于我们加入我们联系我们帮助中心PatentHub产品专利百科 商标查询专利交易大学排行榜 行业专题库 API接口排行榜专利资讯最新中国发明专利最新美国发明专利PatentHub联系方式QQ:3307693423 QQ:3236401158 Copyright © 2017 北京南冥科技有限公司 备案号:京ICP备16030233号-1 var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://"); document.write(unescape("%3Cspan id='cnzz_stat_icon_1259408509'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s11.cnzz.com/z_stat.php%3Fid%3D1259408509' type='text/javascript'%3E%3C/script%3E"));

专利地区:北京

专利申请日期:2019-09-30

专利公开日期:2024-07-26

专利公告号:CN112579676B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
电话咨询
读内容
搜本页
回顶部