一种数据文件编码格式转换方法及系统技术方案

技术编号:25087669 阅读:21 留言:0更新日期:2020-07-31 23:31
本发明专利技术涉及一种数据文件编码格式转换方法及系统,该系统包括文件获取模块,用于获取用户上传的输入文件,记录各输入文件的上传时间以及对应的用户名称;线程管理模块,用于为各输入文件的转换任务创建线程任务,并按照上传时间并行取出多个线程任务发送到相应的所述解析模块;解析模块,用于采用原有的编码格式对用户上传的输入文件进行读取,得到与之对应的待转换文件;转码模块,用于采用大数据融合开发系统能够识别的编码格式对待转换文件进行转码,得到新的输入文件;文件输出模块用于将转码后新的输入文件输出到大数据融合开发系统中,用于后续处理。本发明专利技术可以广泛应用于数据转码领域。

【技术实现步骤摘要】
一种数据文件编码格式转换方法及系统
本专利技术涉及一种数据文件编码格式转换方法及系统,属于数据处理领域。
技术介绍
大数据融合开发系统是一款拥有数据接入、数据清洗、数据掌控、自动化分析功能的综合性软件。在大数据平台落地的过程中,数据接入是必不可少的一个关键环节。面对各种来源、各种类型的数据,需要通过数据接入就是将这些零散的数据整合在一起,纳入统一的大数据平台。从数据类型的角度,数据接入主要包括结构化数据(数据库)的接入、日志数据的接入、IoT数据的接入和文件的接入。然而,不同格式的数据如果不进行转换的话无法导入到数据库中,也就无法进行后续的使用。在现有的大数据融合开发系统中,并没有这个功能的实现,用户如果将格式有误的数据导入,会导致数据库中出现无效的数据。同时数据格式转换也面临以下问题:首先就是数据安全,即,在转换过程中如何保证已有的数据能够完整的保存到新的文件中去,转换过程比较复杂,可能有许多突发状况威胁数据安全;其次,就是转换速度,运行时间长的系统数据文件很庞大,转换所需要的时间也较长;最后,通常用户导入数据库的数据是一个数据量很大的文本,这也给数据转换增加了难度。
技术实现思路
针对上述问题,本专利技术的目的是提供一种数据文件编码格式转换方法及系统,能够快速有效地将用户导入的数据转换成有效的数据,在导入乱码文件的时候可以导入正常文件一样,不用担心出现无效的数据。以供大数据融合开发系统的后续分析。为实现上述目的,本专利技术采取以下技术方案:本专利技术的第一个方面是提供一种数据文件编码格式转换系统,其包括:文件获取模块、线程管理模块、解析模块、转码模块和文件输出模块;所述文件获取模块用于获取用户上传的输入文件,记录各输入文件的上传时间以及对应的用户名称;所述线程管理模块用于为各输入文件的转换任务创建线程任务,并按照上传时间并行取出多个线程任务发送到相应的所述解析模块;所述解析模块用于采用原有的编码格式对用户上传的输入文件进行读取,得到与之对应的待转换文件;所述转码模块用于采用大数据融合开发系统能够识别的编码格式对待转换文件进行转码,得到新的输入文件;所述文件输出模块用于将转码后新的输入文件输出到大数据融合开发系统中,用于后续处理。进一步的,所述线程管理模块包括线程创建模块、队列表创建和维护模块以及线程取出模块;所述线程创建模块用于当用户上传多个输入文件或不同用户同时上传一个或多个输入文件时,为每一个输入文件的转换任务创建一个线程放入线程池;所述队列表创建和维护模块用于建立并维护一个队列表,该队列表中存储有各任务线程的相关信息,包括线程所包含的输入文件名称、输入文件对应的用户名称、输入文件的上传时间以及输入文件的处理状态;所述线程取出模块用于按照预设的并行处理线程个数以及队列表中记录的输入文件的上传时间,从线程池中取出相应个数的线程任务,并发送到所述解析模块。进一步的,所述解析模块包括第一读取模块、解析判断模块、分组模块、行号信息记录模块、文件编号记录模块、转换文件建立模块以及存储模块;所述第一读取模块用于采用用户原有的编码格式对用户上传的输入文件进行读取,读取时采用的是java中的IO流工具;所述解析判断模块用于对读取的内容进行解析,并判断读取的内容是否为乱码,如果为乱码则将读取数据发送到所述分组模块,否则将数据发送到所述存储模块;所述分组模块将用于将数据内容中的每一行数据作为一个转换单元,并按照预设最大转换阈值将读取到的所有转换单元进行分组,得到多个转换单元组;所述行号信息记录模块用于将各转换单元组中起止行数据对应的行号信息记录到分组信息表中;所述文件编号记录模块用于根据分组信息表为每一转换单元组建立与其起止行号信息相关联的唯一的转换文件编号,然后将各转换文件编号记录到转换文件编号表中;所述转换文件建立模块用于根据转换文件编号表建立转换文件,并将与之对应的各转换单元组中的数据按条存储到各转换文件中;所述存储模块用于将各转换文件或数据内容存储到待转换文件夹。进一步的,所述文件转码模块包括第二读取模块、二进制转换模块、数据获取模块、关键值写入模块、数据值写入模块;所述第二读取模块用于根据转换文件编号表中的转换文件编号,依次读取待转换文件夹中待转换文件内的转换单元组;所述二进制转换模块用于将读取到的转换单元组中的各转换单元即每条数据分别转换为二进制形式;所述数据获取模块用于对二进制形式的各转换单元进行遍历,得到每一转换单元对应的关键值及该关键值对应的数据值集合;所述关键值写入模块用于将各转换单元组中的关键值重写写入输入文件的第一行,且各转换单元对应的关键值之间采用逗号隔开;所述数据值写入模块用于将各转换单元组中关键值对应的数据值按列依次写入与其对应的关键值下方,且每一行中两两转换单元的数据值之间采用逗号隔开。本专利技术的第二个方面,是提供一种数据文件编码格式转换方法,其包括以下步骤:1)搭建数据文件编码格式转换系统,该数据文件编码格式转换系统包括文件获取模块、线程管理模块、解析模块、转码模块以及文件输出模块;2)文件获取模块用于获取用户上传的输入文件,并记录各输入文件的上传时间以及对应的用户名称;3)线程管理模块将文件获取模块获取的所有输入文件的转换任务创建任务线程放进线程池,并按照各输入文件的上传时间并行取出若干任务线程发送到解析模块;4)各解析模块对任务线程中取出输入文件进行读取解析,得到与输入文件相对应的待转换文件存储到待转换文件夹;5)转码模块采用大数据融合开发系统能够识别的编码格式对得到的待转换文件进行转码,并将转码后的数据写入新的输入文件中;6)文件输出模块将转码后的新的输入文件输入大数据融合开发系统中,用于后续处理。进一步的,所述步骤3)中,线程管理模块文件获取模块获取的所有输入文件的转换任务创建任务线程放进线程池,并按照各输入文件的上传时间并行取出若干任务线程发送到解析模块的方法,包括以下步骤:3.1)当用户上传多个输入文件或不同用户同时上传一个或多个输入文件时,为每一个输入文件的转换任务创建一个线程放入线程池;3.2)建立并维护一个队列表,该队列表中存储有各任务线程的相关信息,包括线程所包含的输入文件名称、输入文件对应的用户名称、输入文件的上传时间以及输入文件的处理状态;3.3)按照预设的并行处理线程个数以及队列表中记录的输入文件的上传时间,从线程池中取出相应个数的线程任务,并发送到解析模块。进一步的,所述步骤4)中,对用户上传的输入文件进行读取解析时,包括以下步骤:4.1)采用用户原有的编码格式对用户上传的输入文件进行逐行读取,读取时采用java中的IO流工具;4.2)对读取的数据内容进行解析,判断读取的数据内容是否为乱码,如果是乱码则进入步骤4.3),否则进入步骤4.7);4.3)将数据内容中的每一行数据作为一个转换单元,并按照预设最大转换阈值将读取到的所有转换单元进行分组,得到多个转换单元组;4.4)将各转换单元组中起止行数据对应的行号信息记录到分组信息表中;4.5)根据分组信息表为每一转换单元组建立与其起止行号信息相关联的唯一的转换文件编号,然后将各转换本文档来自技高网...

【技术保护点】
1.一种数据文件编码格式转换系统,其特征在于其包括:/n文件获取模块、线程管理模块、解析模块、转码模块和文件输出模块;/n所述文件获取模块用于获取用户上传的输入文件,记录各输入文件的上传时间以及对应的用户名称;/n所述线程管理模块用于为各输入文件的转换任务创建线程任务,并按照上传时间并行取出多个线程任务发送到相应的所述解析模块;/n所述解析模块用于采用原有的编码格式对用户上传的输入文件进行读取,得到与之对应的待转换文件;/n所述转码模块用于采用大数据融合开发系统能够识别的编码格式对待转换文件进行转码,得到新的输入文件;/n所述文件输出模块用于将转码后新的输入文件输出到大数据融合开发系统中,用于后续处理。/n

【技术特征摘要】
1.一种数据文件编码格式转换系统,其特征在于其包括:
文件获取模块、线程管理模块、解析模块、转码模块和文件输出模块;
所述文件获取模块用于获取用户上传的输入文件,记录各输入文件的上传时间以及对应的用户名称;
所述线程管理模块用于为各输入文件的转换任务创建线程任务,并按照上传时间并行取出多个线程任务发送到相应的所述解析模块;
所述解析模块用于采用原有的编码格式对用户上传的输入文件进行读取,得到与之对应的待转换文件;
所述转码模块用于采用大数据融合开发系统能够识别的编码格式对待转换文件进行转码,得到新的输入文件;
所述文件输出模块用于将转码后新的输入文件输出到大数据融合开发系统中,用于后续处理。


2.如权利要求1所述的一种数据文件编码格式转换系统,其特征在于:所述线程管理模块包括线程创建模块、队列表创建和维护模块以及线程取出模块;
所述线程创建模块用于当用户上传多个输入文件或不同用户同时上传一个或多个输入文件时,为每一个输入文件的转换任务创建一个线程放入线程池;
所述队列表创建和维护模块用于建立并维护一个队列表,该队列表中存储有各任务线程的相关信息,包括线程所包含的输入文件名称、输入文件对应的用户名称、输入文件的上传时间以及输入文件的处理状态;
所述线程取出模块用于按照预设的并行处理线程个数以及队列表中记录的输入文件的上传时间,从线程池中取出相应个数的线程任务,并发送到所述解析模块。


3.如权利要求1所述的一种数据文件编码格式转换系统,其特征在于:所述解析模块包括第一读取模块、解析判断模块、分组模块、行号信息记录模块、文件编号记录模块、转换文件建立模块以及存储模块;
所述第一读取模块用于采用用户原有的编码格式对用户上传的输入文件进行读取,读取时采用的是java中的IO流工具;
所述解析判断模块用于对读取的内容进行解析,并判断读取的内容是否为乱码,如果为乱码则将读取数据发送到所述分组模块,否则将数据发送到所述存储模块;
所述分组模块将用于将数据内容中的每一行数据作为一个转换单元,并按照预设最大转换阈值将读取到的所有转换单元进行分组,得到多个转换单元组;
所述行号信息记录模块用于将各转换单元组中起止行数据对应的行号信息记录到分组信息表中;
所述文件编号记录模块用于根据分组信息表为每一转换单元组建立与其起止行号信息相关联的唯一的转换文件编号,然后将各转换文件编号记录到转换文件编号表中;
所述转换文件建立模块用于根据转换文件编号表建立转换文件,并将与之对应的各转换单元组中的数据按条存储到各转换文件中;
所述存储模块用于将各转换文件或数据内容存储到待转换文件夹。


4.如权利要求1所述的一种数据文件编码格式转换系统,其特征在于:所述文件转码模块包括第二读取模块、二进制转换模块、数据获取模块、关键值写入模块、数据值写入模块;
所述第二读取模块用于根据转换文件编号表中的转换文件编号,依次读取待转换文件夹中待转换文件内的转换单元组;
所述二进制转换模块用于将读取到的转换单元组中的各转换单元即每条数据分别转换为二进制形式;
所述数据获取模块用于对二进制形式的各转换单元进行遍历,得到每一转换单元对应的关键值及该关键值对应的数据值集合;
所述关键值写入模块用于将各转换单元组中的关键值重写写入输入文件的第一行,且各转换单元对应的关键值之间采用逗号隔开;
所述数据值写入模块用于将各转换单元组中关键值对应的数据值按列依次写入与其对应的关键值下方,且每一行中两两转换单元的数据值之间采用逗号隔开。


5.一种采用如权利要求1~4任一项所述系统的数据文件编码格式转换方法,其特征在于包括以下步骤:
1)搭建数据文件编码格式转换系统,该数据文件编码格式转换系统包括文件获取模块、线程管理模块、解析模块、转码模块以及文件输出模块;
2)文件获取模块用于获取用户上传的输入文件,并...

【专利技术属性】
技术研发人员:陈涛
申请(专利权)人:北京东方金信科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1