一种数据导出方法、装置及电子设备与流程

文档序号:17762850发布日期:2019-05-24 21:51阅读:188来源:国知局
一种数据导出方法、装置及电子设备与流程

本发明涉及数据处理领域,更具体的说,涉及一种数据导出方法、装置及电子设备。



背景技术:

gbase数据库可以把数据库中的数据按照utf-8编码格式导出为文件,如果在数据导出语句中指定导出文件编码格式为utf-8,一般情况下导出文件的编码格式为utf-8。

但是实际使用中发现,如果gbase数据库中同时存在utf-8编码格式的数据和非utf-8编码格式的数据,非utf-8编码如gbk编码,即使在数据导出语句中设定导出文件格式为utf-8编码,但实际导出文件格式并不为utf-8,导致导出文件乱码。



技术实现要素:

有鉴于此,本发明提供一种数据导出方法、装置及电子设备,以解决如果gbase数据库中同时存在utf-8编码格式的数据和非utf-8编码格式的数据,即使在导出语句中设定导出文件格式为utf-8编码,但实际导出文件格式并不为utf-8,导致导出文件乱码的问题。

为解决上述技术问题,本发明采用了如下技术方案:

一种数据导出方法,包括:

获取以utf-8编码格式作为导出格式的目标导出文件;

若所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据,将所述目标导出文件拆分为多条记录;

将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件。

优选地,判断所述目标导出文件是否同时包括utf-8编码格式的数据和非utf-8编码格式的数据的过程包括:

判断所述目标导出文件的格式是否为预设格式;

若是,所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据;

若否,所述目标导出文件未同时包括utf-8编码格式的数据和非utf-8编码格式的数据。

优选地,将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件,包括:

确定出每一所述记录的编码格式;

筛选出非utf-8编码格式的记录作为第一目标记录,以及筛选出utf-8编码格式的记录作为第二目标记录;

将所述第一目标记录转换成utf-8编码格式的第三目标记录;

整合所述第二目标记录和所述第三目标记录,得到所述导出文件。

优选地,将所述第一目标记录转换成utf-8编码格式的第三目标记录,包括:

采用并行处理方式,将所述第一目标记录转换成utf-8编码格式的第三目标记录。

优选地,整合所述第二目标记录和所述第三目标记录,得到所述导出文件,包括:

根据每一所述第一目标记录和所述第二目标记录分别在所述目标导出文件中的位置信息,为每一所述第一目标记录和每一所述第二目标记录分别设置标识信息;

根据每一所述第一目标记录的标识信息,为每一所述第三目标记录设置标识信息;

根据每一所述第二目标记录和每一所述第三目标记录的标识信息,将所述第二目标记录和所述第三目标记录进行整合,得到所述导出文件。

优选地,若所述目标导出文件仅包括非utf-8编码格式的数据,还包括:

将所述目标导出文件转换成utf-8编码格式的文件。

一种数据导出装置,包括:

文件获取模块,用于获取以utf-8编码格式作为导出格式的目标导出文件;

拆分模块,用于若所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据,将所述目标导出文件拆分为多条记录;

格式转换模块,用于将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件。

优选地,所述格式转换模块包括:

格式确定子模块,用于确定出每一所述记录的编码格式;

筛选子模块,用于筛选出非utf-8编码格式的记录作为第一目标记录,以及筛选出utf-8编码格式的记录作为第二目标记录;

格式转换子模块,用于将所述第一目标记录转换成utf-8编码格式的第三目标记录;

整合子模块,用于整合所述第二目标记录和所述第三目标记录,得到所述导出文件。

优选地,所述整合子模块包括:

第一标识设置单元,用于根据每一所述第一目标记录和所述第二目标记录分别在所述目标导出文件中的位置信息,为每一所述第一目标记录和每一所述第二目标记录分别设置标识信息;

第二标识设置单元,用于根据每一所述第一目标记录的标识信息,为每一所述第三目标记录设置标识信息;

整合单元,用于根据每一所述第二目标记录和每一所述第三目标记录的标识信息,将所述第二目标记录和所述第三目标记录进行整合,得到所述导出文件。

一种电子设备,包括:存储器和处理器;

其中,所述存储器用于存储程序;

处理器调用程序并用于:

获取以utf-8编码格式作为导出格式的目标导出文件;

若所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据,将所述目标导出文件拆分为多条记录;

将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件。

相较于现有技术,本发明具有以下有益效果:

本发明提供了一种数据导出方法、装置及电子设备,若所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据,将所述目标导出文件拆分为多条记录,将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件。通过本发明,可以将目标导出文件中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,避免乱码问题。

附图说明

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

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

图2为本发明实施例提供的另一种数据导出方法的方法流程图;

图3为本发明实施例提供的再一种数据导出方法的方法流程图;

图4为本发明实施例提供的一种数据导出装置的结构示意图;

图5为本发明实施例提供的另一种数据导出装置的结构示意图。

具体实施方式

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

本发明实施例提供了一种数据导出方法,参照图1,可以包括:

s11、获取以utf-8编码格式作为导出格式的目标导出文件;

其中,gbase数据库有专门的数据导出语句,在数据导出语句中设定导出编码格式为utf-8编码格式,若gbase数据库中的数据的编码格式为utf-8编码格式,则目标导出文件的格式也为utf-8编码格式,即能够正常导出。

若gbase数据库中的数据的编码格式既包括utf-8编码格式,也包括非utf-8编码格式,如汉字编码字符集gbk编码格式,则最终导出的文件格式为non-isoextended-ascii编码格式,该编码格式表征最终生成的目标导出文件中包括至少两种编码格式的数据。

若gbase数据库中的数据的编码格式仅包括非utf-8编码格式,则目标导出文件的编码格式为非utf-8编码格式。

综上所述,虽然数据导出语句中设定导出格式为utf-8编码格式,但是最终导出得到的目标导出文件的格式并不一定是utf-8编码格式。

s12、若所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据,将所述目标导出文件拆分为多条记录;

具体的,拆分成多条记录可以是将目标导出文件中的每一行作为一条记录。

可选的,在本实施例的基础上,判断所述目标导出文件是否同时包括utf-8编码格式的数据和非utf-8编码格式的数据的过程包括:

判断所述目标导出文件的格式是否为预设格式;

若是,所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据;

若否,所述目标导出文件未同时包括utf-8编码格式的数据和非utf-8编码格式的数据。

其中,预设格式即为non-isoextended-ascii编码格式,说明目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据。如同时包括utf-8编码格式的数据和gbk编码格式的数据。

s13、将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件。

可选的,在本实施例的基础上,若所述目标导出文件仅包括非utf-8编码格式的数据,还包括:

将所述目标导出文件转换成utf-8编码格式的文件。

具体的,若所述目标导出文件仅包括非utf-8编码格式的数据,说明目标导出文件的编码格式为非utf-8编码格式,如gbk编码格式,此时利用linux命令iconv对目标导出文件进行gbk到utf-8的转码后目标导出文件中gbk数据能正常显示。

需要说明的是,本实施例中当遇到多个目标导出文件时,每一目标导出文件均按照上述的步骤进行操作。每一目标导出文件占用一独立进程。若仅涉及一个目标导出文件的情况,并行对目标导出文件中的多条非utf-8记录进行转换。

本实施例中,若所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据,将所述目标导出文件拆分为多条记录,将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件。通过本发明,可以将目标导出文件中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,避免乱码问题。

可选的,在上述任一数据导出方法的实施例的基础上,参照图2,步骤s13可以包括:

s21、确定出每一所述记录的编码格式;

具体的,计算机可以自动识别每一记录的编码格式,如可以是utf-8编码格式或gbk编码格式。

s22、筛选出非utf-8编码格式的记录作为第一目标记录,以及筛选出utf-8编码格式的记录作为第二目标记录;

具体的,根据识别的记录的编码方式可以确定每一记录属于第一目标记录还是第二目标记录。

此处可以根据第一目标记录和第二目标记录在目标导出文件的位置,为第一目标记录和第二目标记录分别设置标识信息,标识信息可以是编码。

假设目标导出文件共有5条记录,第1、3和5条记录为utf-8编码格式,2和4条记录为gbk编码格式,则第1、3和5条记录为第二目标记录,编号分别为1、3和5,第2和4条记录为第一目标记录,编号分别为2和4。

s23、将所述第一目标记录转换成utf-8编码格式的第三目标记录;

可选的,在本实施例的基础上,步骤s23可以包括:

采用并行处理方式,将所述第一目标记录转换成utf-8编码格式的第三目标记录。

由于文件转码工作实时性要求不高,海杜普hadoop完全可以解决上述问题,占用内存资源少。hadoop分布式运算进行优化,主要运用mapreduce的编程思想,代码得到简化,处理能力进一步提升,适合t数量级的文件转码处理。

具体的,通过hadoop分布式运算方式批量将每一第一目标记录转换成第三目标记录。其中,将第一目标记录转换成第三目标记录仍采用iconv命令。

此外,还可以通过其他分布式系统实现逐行编码转换,比如spark。

s24、整合所述第二目标记录和所述第三目标记录,得到所述导出文件。

具体的,依据第二目标记录和所述第三目标记录对应的目标导出文件中的内容在目标导出文件中的位置,整合所述第二目标记录和所述第三目标记录。

可选的,在本实施例的基础上,参照图3,步骤s24可以包括:

s31、根据每一所述第一目标记录和所述第二目标记录分别在所述目标导出文件中的位置信息,为每一所述第一目标记录和每一所述第二目标记录分别设置标识信息;

具体的,步骤s31已经在上述实施例中进行了解释说明,请参照上述实施例中的相应内容。

s32、根据每一所述第一目标记录的标识信息,为每一所述第三目标记录设置标识信息;

具体的,第一目标记录的标识信息与第一目标记录对应的第三目标记录的标识信息相同。

s33、根据每一所述第二目标记录和每一所述第三目标记录的标识信息,将所述第二目标记录和所述第三目标记录进行整合,得到所述导出文件。

具体的,仍以目标导出文件共有5条记录为例,第1、3和5条记录为utf-8编码格式,2和4条记录为gbk编码格式,则第1、3和5条记录为第二目标记录,编号分别为1、3和5,第2和4条记录为第一目标记录,编号分别为2和4,则根据第一目标记录生成的第三目标记录的编号分别为2和4,按照1、2、3、4和5的顺序组合第二目标记录和第三目标记录。

得到所述导出文件后,文件编码修正后可直接使用,也可导入到gbase数据库对源表进行更新,这样gbase数据库中文编码混乱的问题可以得到解决。

银行系统编码设置包括网页浏览器编码设置、服务器编码设置、数据库编码设置和安全终端模拟软件编码设置(如xshell和securecrt软件),数据输入容易造成数据库数据编码格式混乱。本实施例中,针对银行系统数据量大和gbase数据库导出文件的问题,本实施例能够有效快速的解决编码混乱造成的导出文件编码格式问题,最后对gbase数据库中的源表进行更新,彻底统一编码格式。

可选的,在上述数据导出方法的实施例的基础上,本发明的另一实施例提供了一种数据导出装置,参照图4,可以包括:

文件获取模块101,用于获取以utf-8编码格式作为导出格式的目标导出文件;

拆分模块102,用于若所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据,将所述目标导出文件拆分为多条记录;

格式转换模块103,用于将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件。

进一步,数据导出装置还包括:

判断模块,用于判断所述目标导出文件是否同时包括utf-8编码格式的数据和非utf-8编码格式的数据;

所述判断模块包括:

判断子模块,用于判断所述目标导出文件的格式是否为预设格式;

若是,所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据;

若否,所述目标导出文件未同时包括utf-8编码格式的数据和非utf-8编码格式的数据。

进一步,还包括:

格式处理模块,用于若所述目标导出文件仅包括非utf-8编码格式的数据,将所述目标导出文件转换成utf-8编码格式的文件。

本实施例中,若所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据,将所述目标导出文件拆分为多条记录,将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件。通过本发明,可以将目标导出文件中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,避免乱码问题。

需要说明的是,本实施例中的各个模块和子模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。

可选的,在上述数据导出装置的实施例的基础上,参照图5,格式转换模块103可以包括:

格式确定子模块1031,用于确定出每一所述记录的编码格式;

筛选子模块1032,用于筛选出非utf-8编码格式的记录作为第一目标记录,以及筛选出utf-8编码格式的记录作为第二目标记录;

格式转换子模块1033,用于将所述第一目标记录转换成utf-8编码格式的第三目标记录;

整合子模块1034,用于整合所述第二目标记录和所述第三目标记录,得到所述导出文件。

进一步,所述格式转换子模块1033可以包括:

转换单元,用于采用并行处理方式,将所述第一目标记录转换成utf-8编码格式的第三目标记录。

进一步,所述整合子模块1034可以包括:

第一标识设置单元,用于根据每一所述第一目标记录和所述第二目标记录分别在所述目标导出文件中的位置信息,为每一所述第一目标记录和每一所述第二目标记录分别设置标识信息;

第二标识设置单元,用于根据每一所述第一目标记录的标识信息,为每一所述第三目标记录设置标识信息;

整合单元,用于根据每一所述第二目标记录和每一所述第三目标记录的标识信息,将所述第二目标记录和所述第三目标记录进行整合,得到所述导出文件。

银行系统编码设置包括网页浏览器编码设置、服务器编码设置、数据库编码设置和安全终端模拟软件编码设置(如xshell和securecrt软件),数据输入容易造成数据库数据编码格式混乱。本实施例中,针对银行系统数据量大和gbase数据库导出文件的问题,本实施例能够有效快速的解决编码混乱造成的导出文件编码格式问题,最后对gbase数据库中的源表进行更新,彻底统一编码格式。

需要说明的是,本实施例中的各个模块、子模块和单元的工作过程,请参照上述实施例中的相应说明,在此不再赘述。

可选的,在上述数据导出方法及装置的实施例的基础上,本发明的另一实施例提供了一种电子设备,包括:存储器和处理器;

其中,所述存储器用于存储程序;

处理器调用程序并用于:

获取以utf-8编码格式作为导出格式的目标导出文件;

若所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据,将所述目标导出文件拆分为多条记录;

将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件。

进一步,处理器用于判断所述目标导出文件是否同时包括utf-8编码格式的数据和非utf-8编码格式的数据的过程包括:

判断所述目标导出文件的格式是否为预设格式;

若是,所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据;

若否,所述目标导出文件未同时包括utf-8编码格式的数据和非utf-8编码格式的数据。

进一步,处理器用于将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件的过程包括:

确定出每一所述记录的编码格式;

筛选出非utf-8编码格式的记录作为第一目标记录,以及筛选出utf-8编码格式的记录作为第二目标记录;

将所述第一目标记录转换成utf-8编码格式的第三目标记录;

整合所述第二目标记录和所述第三目标记录,得到所述导出文件。

进一步,处理器用于将所述第一目标记录转换成utf-8编码格式的第三目标记录的过程包括:

采用并行处理方式,将所述第一目标记录转换成utf-8编码格式的第三目标记录。

进一步,处理器用于整合所述第二目标记录和所述第三目标记录,得到所述导出文件的过程包括:

根据每一所述第一目标记录和所述第二目标记录分别在所述目标导出文件中的位置信息,为每一所述第一目标记录和每一所述第二目标记录分别设置标识信息;

根据每一所述第一目标记录的标识信息,为每一所述第三目标记录设置标识信息;

根据每一所述第二目标记录和每一所述第三目标记录的标识信息,将所述第二目标记录和所述第三目标记录进行整合,得到所述导出文件。

进一步,处理器用于若所述目标导出文件仅包括非utf-8编码格式的数据时,还用于:

将所述目标导出文件转换成utf-8编码格式的文件。

本实施例中,若所述目标导出文件同时包括utf-8编码格式的数据和非utf-8编码格式的数据,将所述目标导出文件拆分为多条记录,将所有的所述记录中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,以得到utf-8编码格式的导出文件。通过本发明,可以将目标导出文件中非utf-8编码格式的记录转换成utf-8编码格式的目标记录,避免乱码问题。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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