CN106294683A - 一种文件拆分方法及装置 - Google Patents
一种文件拆分方法及装置 Download PDFInfo
- Publication number
- CN106294683A CN106294683A CN201610639094.6A CN201610639094A CN106294683A CN 106294683 A CN106294683 A CN 106294683A CN 201610639094 A CN201610639094 A CN 201610639094A CN 106294683 A CN106294683 A CN 106294683A
- Authority
- CN
- China
- Prior art keywords
- split
- text
- file
- separator
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件拆分方法及装置,所述方法包括:获取待拆分的文本文件;根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,所述文本文件中的每一条记录采用分隔符进行分隔;判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。本发明能够使拆分出的子文件中不存在断行数据。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种文件拆分方法及装置。
背景技术
AIX(Advanced Interactive eXecutive)是IBM基于AT&T Unix System V开发的一套类UNIX操作系统,运行在IBM专有的Power系列芯片设计的小型机硬件系统之上。
AIX操作系统提供的文件拆分命令split,提供了按被拆分出的子文件大小拆分文件的功能,但是不能保证被拆分出的子文件中的数据不断行。比如,当文件中记录了不同的用户数据时,比如用户名称、用户家庭住址、用户电话号码等等,当同一用户的相关信息在文件中顺序记录时,如果采用现有文件拆分方法,可能会使同一用户的相关信息拆分到两个子文件中,因此出现了断行现象。
发明内容
有鉴于此,本发明实施例的主要目的在于提供一种文件拆分方法及装置,能够使拆分出的子文件中不存在断行数据。
本发明实施例提供了一种文件拆分方法,包括:
获取待拆分的文本文件;
根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,所述文本文件中的每一条记录采用分隔符进行分隔;
判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
可选的,所述获取待拆分的文本文件,包括:
根据用户输入的数据筛选条件,从ORACLE数据库中筛选数据内容,并以文本文件的形式记录筛选出的数据内容。
可选的,所述根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,包括:
利用多个进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;
相应地,所述如果所述拆分位置位于相邻分隔符之间,则在所述相邻分隔符中的前一分隔符处进行拆分,包括:
如果对应进程确定所述拆分位置位于相邻分隔符之间,则对应进程在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
可选的,所述以文本文件的形式记录筛选出的数据内容之后,包括:
检测文件拆分开关是否开启;
如果所述文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;
如果所述文件拆分开关关闭,则将所述文本文件返回至客户端。
可选的,所述将拆分出的所有子文件返回至客户端,包括:
如果文件压缩开关开启,则将拆分出的所有子文件打包后压缩,并将压缩后的所有子文件返回至客户端;
如果文件压缩开关关闭,则直接将拆分出的所有子文件返回至客户端;
相应地,所述将所述文本文件返回至客户端,包括:
如果文件压缩开关开启,则压缩所述文本本件,并将压缩后的文本文件返回至客户端;
如果文件压缩开关关闭,则直接将所述文本文件返回至客户端。
本发明实施例还提供了一种文件拆分装置,包括:
文件获取单元,用于获取待拆分的文本文件;
位置确定单元,用于根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,所述文本文件中的每一条记录采用分隔符进行分隔;
文件拆分单元,用于判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
可选的,所述文件获取单元,包括:
数据筛选子单元,用于根据用户输入的数据筛选条件,从ORACLE数据库中筛选数据内容;
文件形成子单元,用于以文本文件的形式记录筛选出的数据内容。
可选的,所述位置确定单元,具体用于利用多个进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;
相应地,所述文件拆分单元,具体用于如果对应进程确定所述拆分位置位于相邻分隔符之间,则对应进程在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
可选的,所述装置还包括:
拆分开关检测单元,用于在所述文件形成子单元以文本文件的形式记录筛选出的数据内容之后,检测文件拆分开关是否开启;
子文件返回单元,用于如果所述文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;
文本文件返回单元,用于如果所述文件拆分开关关闭,则将所述文本文件返回至客户端。
可选的,所述子文件返回单元,包括:
第一子文件返回子单元,用于如果文件压缩开关开启,则将拆分出的所有子文件打包后压缩,并将压缩后的所有子文件返回至客户端;
第二子文件返回子单元,用于如果文件压缩开关关闭,则直接将拆分出的所有子文件返回至客户端;
相应地,所述文本文件返回单元,包括:
第一文本文件返回子单元,用于如果文件压缩开关开启,则压缩所述文本本件,并将压缩后的文本文件返回至客户端;
第二文本文件返回子单元,用于如果文件压缩开关关闭,则直接将所述文本文件返回至客户端。
本发明实施例提供的文件拆分方法及装置,获取待拆分的文本文件;根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,所述文本文件中的每一条记录采用分隔符进行分隔;判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。可见,通过在文本文件中的每条记录之间添加分隔符,来对每一记录的整体数据与其它记录进行分隔,基于此,当对文本文件进行拆分时,如果根据子文件大小确定的拆分位置位于某条记录中,则可以选择该记录的前后分隔符之一作为实际的拆分位置,这样可以保证子文件数据不断行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例文件拆分方法的流程示意图;
图2为本发明实施例文件拆分装置的组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发明实施例前,首先就涉及的本发明涉及的技术术语进行介绍:
ORACLE数据库:Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统;
SQL:结构化查询语言(Structured Query Language,简称SQL);
DOS:是磁盘操作系统的缩写,是个人计算机上的一类操作系统;
UNIX:UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。
参见图1,为本发明实施例提供的文件拆分方法的流程示意图,该方法包括以下步骤:
步骤101:获取待拆分的文本文件。
在本实施例中,所述文本文件的获取可以存在以下两种情形:
在第一种情形中,所述文本文件可以是已经存在的文本文件。对于这种情形,可以直接从文件存储位置调取待拆分的文本文件。
在第二种情形中,可以从数据库中获取数据并形成文本文件。对于这种情形,步骤101可以包括:根据用户输入的数据筛选条件(该数据筛选条件可以转化为SQL语句实现),从ORACLE数据库中筛选数据内容,并以文本文件(该文本文件可以支持DOS或UNIX等格式)的形式记录筛选出的数据内容。在这种实施方式中,用户可以在客户端提供的数据筛选界面中输入数据筛选条件,比如银行系统中的储蓄用户,服务器就会从数据库中筛选出所有储蓄用户的相关信息,这些信息将被写入用户定义的文件名对应的文本文件中。
在现有技术中,ORACLE的sqlplus是与ORACLE数据库进行交互的客户端工具,借助sqlplus可以查看、修改ORACLE数据库记录,在sqlplus中,可以运行sqlplus命令与SQL语句。ORACLE提供的用于从ORACLE数据库中导出数据并将导出数据形成文本的工具是sqlplus中的spool,但是,该spool工具只适合从ORACLE数据库中导出小数据量的表,如果数据量很大,数据导出速度将相当缓慢,即ORACLE的sqlplus spool工具只适合导出小量数据,当数据量大的时候导出效率很差,无法满足实际应用的需求。为解决此缺陷,上述第二种情形,是使用ORACLE的PRO*C编程接口编写数据筛选程序,因为C语言是相对比较底层的语言而且效率很高,因此,使用ORACLE的PRO*C编程接口可以高效的从ORACLE中抽取数据并写到文本文件中,解决了从数据库中导出大量数据时存在的导出速度慢的问题。
步骤102:根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,所述文本文件中的每一条记录采用分隔符进行分隔。
在本实施例中,所述文本文件中的数据可以采用分隔符进行分隔,比如,当所述文本文件中记录的是大量银行储蓄用户的相关信息时,可以将每一用户的所有相关信息作为一条记录,将不同用户信息对应的不同记录之间采用分隔符进行分隔。
另外,在对所述文本文件进行拆分前,需要预先设置拆分出的子文件大小,比如,用户可以在客户端设置每一子文件的大小,也可以使用默认设置的子文件大小,比如,每一子文件均为50G、或顺序设置每一子文件的大小(每一子文件可以全部不同或部分不同)。
当拆分文本文件时,根据子文件大小定位到所述文本文件的每个拆分位置。比如,当需要使拆分出的每一子文件大小均为50G、且当前待拆分的文本文件的大小为150G时,则使文本文件的第50G大小的位置为第一个拆分位置,使文本文件的第100G大小的位置为第二个拆分位置,即存在两个拆分位置;又比如,当需要使拆分出的每一子文件大小均为50G、且当前待拆分的文本文件的大小为170G时,则使文本文件的第50G大小的位置为第一个拆分位置,使文本文件的第100G大小的位置为第二个拆分位置,使文本文件的第150G大小的位置为第三个拆分位置,剩下的20G不足以拆分出一个50G,因此存在三个拆分位置。
在一些实施方式中,步骤102可以包括:利用多个进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置。在这种实施方式中,使用C语言实现的多进程同步定位到不同的拆分位置,比如,当待拆分的文本文件大小为170G时、预置拆分出的子文件大小为50G时,通过计算需要定位三个拆分位置,可以采用三个进程进行拆分位置的定位,第一个进程在文本本件中定位在第50G大小的位置,第二个进程在文本本件中定位在第100G大小的位置,第三个进程在文本本件中定位在第150G大小的位置。
步骤103:判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
在本实施例中,如果某一进程定位到的拆分位置在某条记录中的某个位置(非分隔符所在位置),由于该记录的前后均有一个分隔符,此时将该记录的前一分隔符或后一分隔符处作为真正的文件分割位置进行文件拆分。
在一些实施方式中,步骤103可以包括:如果对应进程确定所述拆分位置位于相邻分隔符之间,则对应进程在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。在这种实施方式中,使用C语言实现的多进程同步在各自定位的拆分位置附近进行文件拆分,比如,当待拆分的文本文件大小为170G、且预置拆分出的子文件大小为50G时,可以采用四个进程分别进行拆分,以得到四个子文件,具体地:
当第一个进程在文本本件中定位在第50G大小的位置A时,如果该位置A是分隔符位置,则第一个进程直接在位置A进行拆分,以将文本文件的前50G(等于50G)作为一个子文件拆分出来;如果该位置A在两个分隔符之间,则第一个进程选择位置A的前一分隔符位置处,将前50G(小于50G)作为一个子文件拆分出来、或者第一个进程选择后一分隔符位置处,将前50G(大于50G)作为一个子文件拆分出来;
当第二个进程在文本本件中定位在第100G大小的位置B时,如果该位置B是分隔符位置,则第二个进程获取第一个进程的实际拆分位置,并将第一个进程的实际拆分位置与位置B之间的子文件拆分出来;如果该位置B在两个分隔符之间,则第二个进程获取第一个进程的实际拆分位置,并将第一个进程的实际拆分位置与位置B的前一分隔符位置之间的子文件拆分出来、或者将第一个进程的实际拆分位置与位置B的后一分隔符位置之间的子文件拆分出来。
当第三个进程在文本本件中定位在第150G大小的位置C时,如果该位置C是分隔符位置,则第三个进程获取第二个进程的实际拆分位置,并将第二个进程的实际拆分位置与位置C之间的子文件拆分出来;如果该位置C在两个分隔符之间,则第三个进程获取第二个进程的实际拆分位置,并将第二个进程的实际拆分位置与位置C的前一分隔符位置之间的子文件拆分出来、或者将第二个进程的实际拆分位置与位置C的后一分隔符位置之间的子文件拆分出来。
因第四个文件不足50G,第四个进程获取第三个进程的实际拆分位置,直接将从第三个进程的实际拆分位置到文件末尾的子文件拆分出来。
可见,采用上述多进程可以得到四个子文件,前三个子文件分别为约50G左右的子文件,最后一个子文件为一个约20G左右的子文件。本发明采用多进程在文本文件中定位拆分位置并进行子文件的拆分,多进程同步进行,可以实现高效拆分文件并可保证记录不断行的效果。
需要说明的是,如果选择在前一分隔符位置处进行拆分,则每个进程均选择前一分隔符位置处拆分出各自负责拆分的子文件,如果选择在后一分隔符位置处进行拆分,则每个进程均选择后一分隔符位置处拆分出各自负责拆分的子文件,这样除了最后一个子文件外,可以尽量保证其它各个子文件的大小相同,并且其它各个子文件均约为预先设置的子文件大小。
进一步地,在上述步骤101的具体实现之后,即所述以文本文件的形式记录筛选出的数据内容之后,还可以包括步骤A1、A2和A3:
步骤A1:检测文件拆分开关是否开启。
在本实施例中,可以以软件的形式设置一个文件拆分开关,用户可以在客户端设置文件拆分开关的状态,即开启或关闭。具体地,可以使文件拆分开关默认为开启或关闭状态,用户可以根据需求进行选择设置或者使用默认状态。
步骤A2:如果所述文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端。
如果服务器检测到文件拆分开关开启,则服务器继续执行步骤102和103的文件拆分步骤,并将从文本文件中拆分出的各个子文件发送至客户端,便于用户进行下载存储。
步骤A3:如果所述文件拆分开关关闭,则将所述文本文件返回至客户端。
如果服务器检测到文件拆分开关关闭,则服务器不再继续执行步骤102和103的文件拆分步骤,而是直接将形成的文本文件发送至客户端,便于用户进行下载存储。
更进一步地,在本实施例中,可以以软件的形式设置一个文件压缩开关,用户可以在客户端设置文件压缩开关的状态,即开启或关闭。具体地,可以使文件压缩开关默认为开启或关闭状态,用户可以根据需求进行选择设置或者使用默认状态。
在上述步骤A2中,即所述将拆分出的所有子文件返回至客户端,可以包括步骤B1和B2:
步骤B1:如果文件压缩开关开启,则将拆分出的所有子文件打包后压缩,并将压缩后的所有子文件返回至客户端。
如果服务器检测到文件压缩开关开启,则服务器将拆分出的所有子文件打包后压缩,并将压缩后的所有子文件回传至客户端,采用压缩文件形式进行回传可以加快回传速度。
步骤B2:如果文件压缩开关关闭,则直接将拆分出的所有子文件返回至客户端。
如果服务器检测到文件压缩开关关闭,则服务器可以直接将拆分出的所有子文件回传至客户端。比如,当各个子文件的大小比较小时,选择直接回传至客户端,不会影响文件的回传速度。
相应地,在上述步骤A3中,即所述将所述文本文件返回至客户端,可以包括步骤C1和C2:
步骤C1:如果文件压缩开关开启,则压缩所述文本本件,并将压缩后的文本文件返回至客户端。
如果服务器检测到文件压缩开关开启,则服务器将整个文本文件进行压缩后回传至客户端,采用压缩文件形式进行回传可以加快回传速度。
步骤C2:如果文件压缩开关关闭,则直接将所述文本文件返回至客户端。
如果服务器检测到文件压缩开关关闭,则服务器可以直接将整个文本文件回传至客户端。比如,当整个文本文件的大小比较小时,选择直接回传至客户端,不会影响文件的回传速度。
此外,本发明实施例提供的上述文件拆分方法,可以在64位的开放平台来实现,其中文件处理函数都是基于64位系统来设计的。
本发明实施例提供的文件拆分方法,获取待拆分的文本文件;根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,所述文本文件中的每一条记录采用分隔符进行分隔;判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。可见,通过在文本文件中的每条记录之间添加分隔符,来对每一记录的整体数据与其它记录进行分隔,基于此,当对文本文件进行拆分时,如果根据子文件大小确定的拆分位置位于某条记录中,则可以选择该记录的前后分隔符之一作为实际的拆分位置,这样可以保证子文件数据不断行,并且其它各个子文件均约为预先设置的子文件大小。
参见图2,为本发明实施例提供的文件拆分装置的组成示意图,该装置包括:
文件获取单元201,用于获取待拆分的文本文件;
位置确定单元202,用于根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,所述文本文件中的每一条记录采用分隔符进行分隔;
文件拆分单元203,用于判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
在一些实施方式中,所述文件获取单元201,包括:
数据筛选子单元,用于根据用户输入的数据筛选条件,从ORACLE数据库中筛选数据内容;
文件形成子单元,用于以文本文件的形式记录筛选出的数据内容。
在一些实施方式中,所述位置确定单元202,具体用于利用多个进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;
相应地,所述文件拆分单元203,具体用于如果对应进程确定所述拆分位置位于相邻分隔符之间,则对应进程在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
在一些实施方式中,所述装置还包括:
拆分开关检测单元,用于在所述文件形成子单元以文本文件的形式记录筛选出的数据内容之后,检测文件拆分开关是否开启;
子文件返回单元,用于如果所述文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;
文本文件返回单元,用于如果所述文件拆分开关关闭,则将所述文本文件返回至客户端。
在一些实施方式中,所述子文件返回单元,包括:
第一子文件返回子单元,用于如果文件压缩开关开启,则将拆分出的所有子文件打包后压缩,并将压缩后的所有子文件返回至客户端;
第二子文件返回子单元,用于如果文件压缩开关关闭,则直接将拆分出的所有子文件返回至客户端;
相应地,所述文本文件返回单元,包括:
第一文本文件返回子单元,用于如果文件压缩开关开启,则压缩所述文本本件,并将压缩后的文本文件返回至客户端;
第二文本文件返回子单元,用于如果文件压缩开关关闭,则直接将所述文本文件返回至客户端。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种文件拆分方法,其特征在于,包括:
获取待拆分的文本文件;
根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,所述文本文件中的每一条记录采用分隔符进行分隔;
判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
2.根据权利要求1所述的方法,其特征在于,所述获取待拆分的文本文件,包括:
根据用户输入的数据筛选条件,从ORACLE数据库中筛选数据内容,并以文本文件的形式记录筛选出的数据内容。
3.根据权利要求1所述的方法,其特征在于,所述根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,包括:
利用多个进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;
相应地,所述如果所述拆分位置位于相邻分隔符之间,则在所述相邻分隔符中的前一分隔符处进行拆分,包括:
如果对应进程确定所述拆分位置位于相邻分隔符之间,则对应进程在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
4.根据权利要求2所述的方法,其特征在于,所述以文本文件的形式记录筛选出的数据内容之后,包括:
检测文件拆分开关是否开启;
如果所述文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;
如果所述文件拆分开关关闭,则将所述文本文件返回至客户端。
5.根据权利要求4所述的方法,其特征在于,所述将拆分出的所有子文件返回至客户端,包括:
如果文件压缩开关开启,则将拆分出的所有子文件打包后压缩,并将压缩后的所有子文件返回至客户端;
如果文件压缩开关关闭,则直接将拆分出的所有子文件返回至客户端;
相应地,所述将所述文本文件返回至客户端,包括:
如果文件压缩开关开启,则压缩所述文本本件,并将压缩后的文本文件返回至客户端;
如果文件压缩开关关闭,则直接将所述文本文件返回至客户端。
6.一种文件拆分装置,其特征在于,包括:
文件获取单元,用于获取待拆分的文本文件;
位置确定单元,用于根据被拆分后子文件的预置大小,确定所述文本文件的各个拆分位置,所述文本文件中的每一条记录采用分隔符进行分隔;
文件拆分单元,用于判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
7.根据权利要求6所述的装置,其特征在于,所述文件获取单元,包括:
数据筛选子单元,用于根据用户输入的数据筛选条件,从ORACLE数据库中筛选数据内容;
文件形成子单元,用于以文本文件的形式记录筛选出的数据内容。
8.根据权利要求6所述的装置,其特征在于,
所述位置确定单元,具体用于利用多个进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;
相应地,所述文件拆分单元,具体用于如果对应进程确定所述拆分位置位于相邻分隔符之间,则对应进程在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
拆分开关检测单元,用于在所述文件形成子单元以文本文件的形式记录筛选出的数据内容之后,检测文件拆分开关是否开启;
子文件返回单元,用于如果所述文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;
文本文件返回单元,用于如果所述文件拆分开关关闭,则将所述文本文件返回至客户端。
10.根据权利要求9所述的装置,其特征在于,所述子文件返回单元,包括:
第一子文件返回子单元,用于如果文件压缩开关开启,则将拆分出的所有子文件打包后压缩,并将压缩后的所有子文件返回至客户端;
第二子文件返回子单元,用于如果文件压缩开关关闭,则直接将拆分出的所有子文件返回至客户端;
相应地,所述文本文件返回单元,包括:
第一文本文件返回子单元,用于如果文件压缩开关开启,则压缩所述文本本件,并将压缩后的文本文件返回至客户端;
第二文本文件返回子单元,用于如果文件压缩开关关闭,则直接将所述文本文件返回至客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610639094.6A CN106294683A (zh) | 2016-08-05 | 2016-08-05 | 一种文件拆分方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610639094.6A CN106294683A (zh) | 2016-08-05 | 2016-08-05 | 一种文件拆分方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106294683A true CN106294683A (zh) | 2017-01-04 |
Family
ID=57665933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610639094.6A Pending CN106294683A (zh) | 2016-08-05 | 2016-08-05 | 一种文件拆分方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294683A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304554A (zh) * | 2018-02-02 | 2018-07-20 | 平安证券股份有限公司 | 文件拆分方法、装置、计算机设备和存储介质 |
CN108446301A (zh) * | 2018-01-26 | 2018-08-24 | 阿里巴巴集团控股有限公司 | 业务文件拆分汇总方法、装置及设备 |
CN109656996A (zh) * | 2018-12-14 | 2019-04-19 | 北京锐安科技有限公司 | 文本导入数据库方法、装置、设备及存储介质 |
CN109727106A (zh) * | 2018-09-13 | 2019-05-07 | 网联清算有限公司 | 对账文件的重组方法、装置及电子设备 |
CN109816527A (zh) * | 2019-01-25 | 2019-05-28 | 网联清算有限公司 | 对账文件处理方法、装置、计算机设备及存储介质 |
CN110019030A (zh) * | 2017-08-30 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 分割文件的方法和装置 |
CN110399161A (zh) * | 2019-06-14 | 2019-11-01 | 五八有限公司 | 一种映射关系的生成方法、调用方法及装置 |
CN116303297A (zh) * | 2023-05-25 | 2023-06-23 | 深圳市东信时代信息技术有限公司 | 文件压缩处理方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070071240A1 (en) * | 2005-09-12 | 2007-03-29 | Lsi Logic Corporation | Process for identifying duplicate values in very large data sets |
CN101097760A (zh) * | 2006-06-30 | 2008-01-02 | 索尼株式会社 | 文件拆分装置、文件拆分方法和文件拆分程序 |
CN103077241A (zh) * | 2013-01-10 | 2013-05-01 | 中国银行股份有限公司 | 将文件拆分后并行加载数据入库的方法 |
CN103246498A (zh) * | 2013-05-13 | 2013-08-14 | 浪潮集团山东通用软件有限公司 | 一种支持关系数据并行处理的内存存储结构及实现方法 |
CN103678339A (zh) * | 2012-09-06 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 数据回流、关系型数据库中的数据访问方法及系统 |
CN104699670A (zh) * | 2015-03-31 | 2015-06-10 | 中译语通科技(北京)有限公司 | 一种文件拆分的方法及装置 |
CN104750846A (zh) * | 2015-04-10 | 2015-07-01 | 浪潮集团有限公司 | 一种子串查找方法及装置 |
CN104868922A (zh) * | 2014-02-24 | 2015-08-26 | 华为技术有限公司 | 数据压缩方法及装置 |
-
2016
- 2016-08-05 CN CN201610639094.6A patent/CN106294683A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070071240A1 (en) * | 2005-09-12 | 2007-03-29 | Lsi Logic Corporation | Process for identifying duplicate values in very large data sets |
CN101097760A (zh) * | 2006-06-30 | 2008-01-02 | 索尼株式会社 | 文件拆分装置、文件拆分方法和文件拆分程序 |
CN103678339A (zh) * | 2012-09-06 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 数据回流、关系型数据库中的数据访问方法及系统 |
CN103077241A (zh) * | 2013-01-10 | 2013-05-01 | 中国银行股份有限公司 | 将文件拆分后并行加载数据入库的方法 |
CN103246498A (zh) * | 2013-05-13 | 2013-08-14 | 浪潮集团山东通用软件有限公司 | 一种支持关系数据并行处理的内存存储结构及实现方法 |
CN104868922A (zh) * | 2014-02-24 | 2015-08-26 | 华为技术有限公司 | 数据压缩方法及装置 |
CN104699670A (zh) * | 2015-03-31 | 2015-06-10 | 中译语通科技(北京)有限公司 | 一种文件拆分的方法及装置 |
CN104750846A (zh) * | 2015-04-10 | 2015-07-01 | 浪潮集团有限公司 | 一种子串查找方法及装置 |
Non-Patent Citations (1)
Title |
---|
吴利华: "商业银行业务数据后台处理系统研究及实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019030A (zh) * | 2017-08-30 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 分割文件的方法和装置 |
CN108446301A (zh) * | 2018-01-26 | 2018-08-24 | 阿里巴巴集团控股有限公司 | 业务文件拆分汇总方法、装置及设备 |
CN108446301B (zh) * | 2018-01-26 | 2021-10-29 | 创新先进技术有限公司 | 业务文件拆分汇总方法、装置及设备 |
CN108304554B (zh) * | 2018-02-02 | 2020-07-28 | 平安证券股份有限公司 | 文件拆分方法、装置、计算机设备和存储介质 |
CN108304554A (zh) * | 2018-02-02 | 2018-07-20 | 平安证券股份有限公司 | 文件拆分方法、装置、计算机设备和存储介质 |
CN109727106A (zh) * | 2018-09-13 | 2019-05-07 | 网联清算有限公司 | 对账文件的重组方法、装置及电子设备 |
CN109656996A (zh) * | 2018-12-14 | 2019-04-19 | 北京锐安科技有限公司 | 文本导入数据库方法、装置、设备及存储介质 |
CN109816527B (zh) * | 2019-01-25 | 2022-07-15 | 网联清算有限公司 | 对账文件处理方法、装置、计算机设备及存储介质 |
CN109816527A (zh) * | 2019-01-25 | 2019-05-28 | 网联清算有限公司 | 对账文件处理方法、装置、计算机设备及存储介质 |
CN110399161A (zh) * | 2019-06-14 | 2019-11-01 | 五八有限公司 | 一种映射关系的生成方法、调用方法及装置 |
CN110399161B (zh) * | 2019-06-14 | 2023-08-18 | 五八有限公司 | 一种映射关系的生成方法、调用方法及装置 |
CN116303297A (zh) * | 2023-05-25 | 2023-06-23 | 深圳市东信时代信息技术有限公司 | 文件压缩处理方法、装置、设备及介质 |
CN116303297B (zh) * | 2023-05-25 | 2023-09-29 | 深圳市东信时代信息技术有限公司 | 文件压缩处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294683A (zh) | 一种文件拆分方法及装置 | |
CN104301360B (zh) | 一种日志数据记录的方法、日志服务器及系统 | |
CN104199881B (zh) | 数据库集群、数据查询方法、数据同步方法和装置 | |
CA2135328C (en) | Table of contents indexing system | |
CN105279276B (zh) | 一种数据库索引优化系统 | |
CN103778148B (zh) | Hadoop分布式文件系统数据文件的生命周期管理方法和设备 | |
CA2468584A1 (en) | File system for displaying items of different types and from different physical locations | |
CN105956123A (zh) | 基于局部更新软件的数据处理方法及装置 | |
CN106250409A (zh) | 数据查询方法及装置 | |
CN102902763B (zh) | 关联、检索信息处理数据和处理信息任务的方法及装置 | |
CN108460094A (zh) | 存储统计数据的方法和系统 | |
CN104866556B (zh) | 数据库的故障处理方法、装置和数据库系统 | |
CN103593262B (zh) | 一种基于类别的虚拟机备份方法 | |
CN104166701B (zh) | 机器学习方法及系统 | |
CN106970958A (zh) | 一种流文件的查询与存储方法和装置 | |
CN104536852B (zh) | 数据恢复方法及装置 | |
CN105653546B (zh) | 一种目标主题的检索方法和系统 | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
CN113138973A (zh) | 数据管理系统及工作方法 | |
CN113485999A (zh) | 数据清理方法、装置和服务器 | |
CN108604249A (zh) | 生成索引信息的数据库的存档方法及装置、包含索引信息的存档的数据库的搜索方法及装置 | |
CN106407442A (zh) | 一种海量文本数据处理方法及装置 | |
CN109522273A (zh) | 一种实现数据写入的方法及装置 | |
CN105786877B (zh) | 一种数据存储方法、系统及查询方法 | |
CN107368545A (zh) | 一种基于MerkleTree变形算法的去重方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |
|
RJ01 | Rejection of invention patent application after publication |