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

文档序号:12271451阅读:186来源:国知局
一种数据转换方法及装置与流程

本发明实施例涉及计算机技术领域,具体涉及一种数据转换方法及装置。



背景技术:

在计算机技术领域,常常涉及数据迁移的处理,例如将数据从一个系统迁移到另一个系统。若两个系统的数据格式不同,往往还需要涉及数据格式的转换处理。例如,在银行系统中,为了满足其他国家的监管要求,需要在当地部署银行系统。这时,就需要将相应分行的数据从总行的主机平台迁移到分行的开放平台中。若总行数据的存储格式与分行平台的存储格式不同,则需要对数据进行转码处理。现有技术中,针对每一张需要迁移的数据表,是手工编写转码程序的,这种方式存在工作量大、效率低的缺陷。此外,当需要迁移的数据表较多时,人工编写代码容易出现疏漏,由此带来的复查、调试成本较高。



技术实现要素:

本发明实施例提供了一种数据转换方法及装置,可以实现数据的自动转码,效率高、成本低、准确率高。

为此,本发明实施例提供如下技术方案:

第一方面,本发明实施例提供了一种数据转换方法,包括:确定需要进行转码处理的数据表的列表;根据所述数据表的列表调用主程序分别生成与各数据表对应的转码子程序,所述主程序用于利用所述各数据表的表名获取所述数据表的数据结构,根据所述数据结构生成与所述数据表对应的转码子程序;利用所述转码子程序对与其对应的数据表进行转码处理。

可选地,所述确定需要进行转码处理的数据表的列表包括:获取各数据表的数据结构,根据所述数据结构包含的数据类型确定需要进行转码处理的数据表的列表。

可选地,所述根据所述数据表的列表调用主程序分别生成与各数据表对应的转码子程序包括:根据所述数据表的列表,生成与各数据表对应的空文件;调用主程序以生成与所述数据表对应的转码子程序;将所述转码子程序写入所述空文件。

可选地,所述利用所述各数据表的表名获取所述数据表的数据结构,根据所述数据结构生成与所述数据表对应的转码子程序包括:根据所述列表中各数据表的表名,访问系统表以解析所述数据表的数据结构;根据所述数据表的数据结构判断所述数据表包含的各字段是否需要转码处理;若所述字段需要进行转码处理,生成对应的转码处理程序。

可选地,所述方法还包括:当判断当前数据表包含存储区字段时,调用与所述存储区字段匹配的转码程序进行转码处理。

可选地,所述方法还包括:接收对所述转码子程序的修改请求,更新所述转码子程序。

第二方面,本发明实施例提供了一种数据转换装置,包括确定模块、调用模块、主程序模块和转码处理模块,其中:所述确定模块,用于确定需要进行转码处理的数据表的列表;所述调用模块,用于根据所述数据表的列表调用主程序模块分别生成与各数据表对应的转码子程序;所述主程序模块用于利用所述各数据表的表名获取所述数据表的数据结构,根据所述数据结构生成与所述数据表对应的转码子程序;所述转码处理模块,用于利用所述转码子程序对与其对应的数据表进行转码处理。

可选地,所述确定模块具体用于:获取各数据表的数据结构,根据所述数据结构包含的数据类型确定需要进行转码处理的数据表的列表。

可选地,所述调用模块具体包括:空文件生成子模块,用于根据所述数据表的列表,生成与各数据表对应的空文件;主程序调用子模块,用于调用主程序以生成与所述数据表对应的转码子程序;写入子模块,用于将所述转码子程序写入所述空文件。

可选地,所述主程序模块具体用于:根据所述列表中各数据表的表名,访问系统表以解析所述数据表的数据结构;根据所述数据表的数据结构判断所述数据表包含的各字段是否需要转码处理;若所述字段需要进行转码处理,生成对应的转码处理程序。

可选地,所述调用模块还用于当判断当前数据表包含存储区字段时,调用与所述存储区字段匹配的转码程序进行转码处理。

可选地,所述装置还包括更新模块,用于接收对所述转码子程序的修改请求,更新所述转码子程序。

本发明实施例提供的数据转换方法及装置,可以根据需要进行转码处理的数据表的列表,调用主程序分别生成与各数据表对应的转码子程序,并利用所述转码子程序对与其对应的数据表进行转码处理。由于可以利用主程序根据各数据表的数据结构生成与所述数据表对应的转码子程序,因此大大提高了数据转码的效率,降低了成本,提高了数据处理的准确率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的数据转换方法流程图;

图2为本发明另一实施例提供的海量文本数据处理方法流程图;

图3为本发明实施例数据转换装置示意图。

具体实施方式

本发明实施例提供了一种数据转换方法及装置,可以实现数据的自动转码,效率高、成本低、准确率高。

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

下面将结合附图1至附图2对本发明示例性实施例示出的数据转换方法进行介绍。

参见图1,为本发明一实施例提供的数据转换方法流程图。如图1所示,可以包括:

S101,确定需要进行转码处理的数据表的列表。

具体实现时,可以分析数据库中所有的数据类型,确定需要进行转码处理的数据类型。根据各数据表的数据结构,根据所述数据结构包含的数据类型确定需要进行转码处理的数据表的列表。举例说明,对于给定数据表,若根据所述数据表的数据结构确定其包含需要进行转码处理的数据类型,则确定所述数据表属于需要进行转码处理,将其加入列表。由此,可以获得需要进行转码处理的数据表的列表清单。其中,转码是将数据从一种格式转换为一种格式的方法。

S102,根据所述数据表的列表调用主程序分别生成与各数据表对应的转码子程序。

具体实现时,所述根据所述数据表的列表调用主程序分别生成与各数据表对应的转码子程序包括:根据所述数据表的列表,生成与各数据表对应的空文件;调用主程序以生成与所述数据表对应的转码子程序;将所述转码子程序写入所述空文件。

具体实现时,可以遍历所述列表中的各数据表。针对每一张数据表,可以分成两个过程处理,首先生成一个空文件(MEMBER)。而后,调用主程序将该表对应的转码子程序写入所述空文件。由此依次处理列表中的每一个数据表,这样,每一个数据表均生成了与其对应的转码子程序。

其中,所述主程序可以利用所述各数据表的表名获取所述数据表的数据结构,根据所述数据结构生成与所述数据表对应的转码子程序。具体实现时,所述主程序可以根据所述列表中各数据表的表名,访问系统表以解析所述数据表的数据结构;根据所述数据表的数据结构判断所述数据表包含的各字段是否需要转码处理;若所述字段需要进行转码处理,生成对应的转码处理程序。举例说明,主程序可以遍历列表中的各数据表,根据数据表的表名访问系统表(SYSCOLUMUS),对其系统表中各数据表的字段名(NAME)、字段类型(COLTYPE)、子类型(FOREIGNKEY)等信息,解析出该数据表的数据结构(COPYBOOK,又可以称之为结构体)。根据数据表的数据结构生成与所述数据表对应的转码子程序。具体实现时,可以根据所述数据表的数据结构判断所述数据表包含的各字段是否需要转码处理;若所述字段需要进行转码处理,生成对应的转码处理程序。举例说明,可以根据各字段的字段类型判断该字段是否需要进行转码处理。例如,对于整型字段而言,其在不同的码制之间表示是不一样的,需要进行转码处理。

S103,利用所述转码子程序对与其对应的数据表进行转码处理。

根据前述处理,针对列表中的每一张数据表即生成了与所述数据表对应的转码子程序。当需要进行转码处理时,则可以根据所述数据表的列表,利用与所述数据表对应的转码子程序对数据表进行转码处理。

需要说明的是,在一些实施方式中,对于一些特殊类型的字段,例如大存储区(BUFFER)字段,需要进行些特殊处理。一般地,所述大存储区(BUFFER)字段下面又重新定义了几个不同类型的字段。若当前处理的数据表存在大存储区字段,可以由专人修改该表对应的转码子程序,以实现对所述字段的特殊处理。这时,本发明实施例提供的方法可以包括:接收对所述转码子程序的修改请求,更新所述转码子程序。也就是说,转码子程序可以进行修改、删除、更新等操作。

在一些实施方式中,可以预先编写、生成与所述存储区字段对应的转码程序,将其嵌入已生成的转码子程序中即可。当然,也可以在执行转码时,当判断当前数据表包含存储区字段时,再调用与所述存储区字段匹配的转码程序进行转码处理,这些实现方式都是可行的。

下面结合一个具体的实例对本发明提供的方法进行介绍。

参见图2,为本发明一实施例提供的数据转换方法流程图。

S201,确定需要进行转码处理的数据表的列表。

举例说明,若将数据从主机平台迁移到分行平台时,可以分析主机平台数据库中所有的数据类型,哪些需要转码,该以什么格式接收,从而整理出规范,然后整理出主机平台需要转码的数据表的清单,形成表清单。

S202,调用模块接收所述列表,执行两个编目过程生成转码子程序。

其中,一个编目过程是生成转码程序的空文件,一个编目过程是往空文件里面写程序,形成转码子程序。具体实现时,可以编写作业,该作业对每张数据表分两个编目过程处理,编目过程1的功能是生成一个空文件(MEMBER),编目过程2的功能是调用主程序(MAINPROG),将该表对应的转码程序写进编目过程1生成的空文件(MEMBER),这样一个作业大概可以处理100张表,每张表对应一个文件。

S203,主程序模块根据调用模块传入的表名,读取系统表,生成每张表对应的转码子程序。

具体实现时,可以编写主程序(MAINPROG),该程序遍历S201中的表清单,通过表名访问系统表(SYSCOLUMUS),读取SYSCOLUMUS表中的NAME(表中的字段名),COLTYPE(字段类型),FOREIGNKEY(子类型),解析出该表对应的结构体COPYBOOK,生成该表对应的子程序SUBPRROG,将该子程序写入S202创建的文件中。该子程序根据该数据表的COPYBOOK逐一判断该表对应的字段是否需要转码,如果需要转码,就进行转码处理,例如将EBCDIC码(简称E码)转换为ASCII(简称A码)。

S204,转码模块根据是否需要转码的清单,完成表中数据的转码功能。

在本发明实施例中,可以根据需要转码的表清单,编写主程序,该主程序通过表名读取系统表,自动生成与每一张表对应的数据转码子程序。以BOCS-O系统为例进行说明,该系统有717张数据库表,从主机平台迁移到开放平台的过程中,大部分表都要进行转码处理。如果针对每张表都去手工写一个转码程序,这样无疑是一项技术含量不高,但是却费时费力的工作。而应用本发明的方法,通过整理出需要转码的表清单,编写一个主程序,自动生成每一张表的转码子程序,可以完成大部分的数据转码工作,极大的提高了塑胶处理效率,降低了错误率,实现数据从主机到开放平台的准确迁移。

以上对本发明提供的数据转换方法进行介绍,下面对数据转换装置进行介绍。

参见图3,为本发明实施例提供的数据转换装置示意图。

一种数据转换装置300,包括确定模块、调用模块、主程序模块和转码处理模块,其中:

所述确定模块301用于确定需要进行转码处理的数据表的列表。

所述调用模块302用于根据所述数据表的列表调用主程序模块分别生成与各数据表对应的转码子程序。

所述主程序模块303用于利用所述各数据表的表名获取所述数据表的数据结构,根据所述数据结构生成与所述数据表对应的转码子程序。

所述转码处理模块304用于利用所述转码子程序对与其对应的数据表进行转码处理。

在一些实施方式中,所述确定模块具体用于:获取各数据表的数据结构,根据所述数据结构包含的数据类型确定需要进行转码处理的数据表的列表。

在一些实施方式中,所述调用模块具体包括:空文件生成子模块,用于根据所述数据表的列表,生成与各数据表对应的空文件;主程序调用子模块,用于调用主程序以生成与所述数据表对应的转码子程序;写入子模块,用于将所述转码子程序写入所述空文件。

在一些实施方式中,所述主程序模块具体用于:根据所述列表中各数据表的表名,访问系统表以解析所述数据表的数据结构;根据所述数据表的数据结构判断所述数据表包含的各字段是否需要转码处理;若所述字段需要进行转码处理,生成对应的转码处理程序。

在一些实施方式中,所述调用模块还用于当判断当前数据表包含存储区字段时,调用与所述存储区字段匹配的转码程序进行转码处理。

在一些实施方式中,所述装置还包括新模块,接收对所述转码子程序的修改请求,更新所述转码子程序。

其中,本发明装置各单元或模块的设置可以参照图1至图2所示的方法而实现,在此不赘述。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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