大文件排序方法及系统技术方案

技术编号:8907174 阅读:200 留言:0更新日期:2013-07-11 04:51
本发明专利技术公开了一种大文件排序方法,包括如下步骤:(a)压缩:将所述大文件包括的每一条原始数据记录均进行压缩处理生成对应的新数据记录,并将所有新数据记录组成一个新文件;(b)排序:将所述新文件所包括的新数据记录使用DFSORT工具进行排序;(c)解压:将排序后的每一条新数据记录进行解压处理,还原为所述原始数据记录。本发明专利技术还公开了一种大文件排序系统,用于对包括海量数据记录的大文件进行排序处理。本发明专利技术的有益效果在于:通过压缩,缩小了参与排序的数据记录以及由这些数据记录组成的文件的大小,降低了CPU及内存开销,提高了排序速度。

【技术实现步骤摘要】

本专利技术涉及一种大文件排序方法及系统,主要用于解决IBM大型机环境、z/OS操作系统下海量的顺序文件(QSAM文件)排序的性能问题。
技术介绍
在使用IBM大型机(z/OS操作系统)环境下进行批量处理的过程中,为了提高处理效率,往往会采用DFSORT工具对海量的顺序文件进行排序处理。DFSORT工具是IBM研发的排序工具软件,在业界被广泛地使用,它可以有效地提高批量处理速度。但在处理海量数据时,IBM的DFSORT工具仍显不足,排序处理的时间过长,不能够满足应用要求。例如,某银行的一个中等规模的分行客户资料包括13227038条客户数据记录,每条数据记录多达2576字节,采用DFSORT工具对该文件进行排序的时间高达29.48分钟。排序步骤所用的时间较长,影响了批处理的效率,成为制约批处理速度的关键环节。
技术实现思路
针对现有技术的上述问题,本专利技术要解决的技术问题是提供一种利用DFSORT工具对包含有海量的数据记录的大文件的进行快速排序的方法和系统。为了解决上述技术问题,本专利技术提供了大文件排序方法,所述大文件包括海量数据记录,包括如下步骤:(a)压缩:将所述大文件包括的每一条原始数据记录均进行压缩处理生成对应的新数据记录,并将所有新数据记录组成一个新文件;(b)排序:将所述新文件所包括的新数据记录使用DFSORT工具进行排序;(C)解压:将排序后的每一条新数据记录进行解压处理,还原为所述原始数据记录。作为优选,其中,所述压缩步骤进一步包括:(al)拆分:将每一条所述原始数据记录的字符从高位到低位以固定的字节数为单位按顺序拆分成多个字符段;(a2)分类赋值:为每一字符段赋予一个控制字,所述控制字包括字符类别代码和字符长度,根据字符类别的不同分别赋予不同的字符类别代码:如果该字符段全部为空格,定义为第一类字符段,赋予第一字符类别代码;如果字符段全部为数字0,定义为第二类字符段,赋予第二字符类别代码;如果该字符段既不全部为空格也不全部为数字0,定义为第三类字符段,赋予第三字符类别代码;(a3)按顺序生成所述新数据记录:其中由第一类字符段和第二类字符段生成的第一类新字符串和第二类新字符串分别只包括与其对应的控制字,由第三类字符段生成的第三类新字符串包括与其对应的控制字和位于该控制字后的该字符段自身;其中,所述解压步骤进一步包括:(Cl)根据控制字将新数据记录拆分为多个所述新字符串;(c2)根据控制字中的字符类别代码对新字符串进行分类处理:如果是第一类新字符串和第二类新字符串,根据控制字的字符类别代码及字符长度还原为相应的由空格和数字O组成的字符段,如果是第三类新字符串,提出位于第三类字符串的控制字之后的字符,还原为原始的字符段;(c3)按顺序还原成所述原始数据记录;将新字符串对应的原始的字符按顺序组合,还原为所述原始数据记录。进一步地,其中步骤(a2)和(a3)之间还包括:如果相邻的两个或多个字符段属于相同的字符类别,则将其合并为一个字符段。作为优选,其中所述固定的字节数为四。本专利技术还提供了一种大文件排序系统,包括:压缩模块:用于将所述大文件包括的每一条原始数据记录均进行压缩处理生成对应的新数据记录,并将所有新数据记录组成一个新文件;排序模块:用于将所述新文件所包括的新数据记录使用DFSORT工具进行排序;解压模块:用于将排序后的每一条新数据记录进行解压处理,还原为所述原始数据记录。作为优选,所述压缩模块进一步包括:拆分模块:用于将每一条所述原始数据记录的字符从高位到低位以固定的字节数为单位按顺序拆分成多个字符段;赋值模块:为每一字符段赋予一个控制字,所述控制字包括字符类别代码和字符长度,每一类别的字符段分别赋予一个字符类别代码,其中字符类别按如下规则进行分类:如果该字符段全部为空格,定义为第一类字符段;如果字符段全部为数字0,定义为第二类字符段;如果该字符段既不全部为空格也不全部为数字0,定义为第三类字符段;组合模块:将由各个字符段生成的新字符串进行组合,其中由第一类字符段和第二类字符段生成的新字符串分别只包括与其对应的控制字,由第三类字符段生成的新字符串则包括与其对应的控制字和位于该控制字之后的该字符段自身。进一步地,所述大文件排序系统还包括预组合模块,用于将属于相同字符类别的两个或多个相邻的字符段合并为一个字符段。与现有技术相比,本专利技术的有益效果在于:通过压缩,缩小了参与排序的数据记录以及由这些数据记录组成的文件的大小,降低了 CPU及内存开销,提高了排序速度。附图说明图1为本专利技术的一个实施例的大文件排序方法的流程图。图2为本专利技术的大文件排序方法的压缩过程的详细流程示意图。图3为采用本专利技术的大文件排序方法对一条数据记录进行压缩后生成新的数据记录与原始数据记录的对应图。图4为本专利技术的一个实施例的大文件排序系统的组成框图。具体实施例方式下面结合附图和具体实施例对本专利技术作进一步详细描述,但不作为对本专利技术的限定。在本申请文件中,数据记录对应于数据源(文件)中的一组完整的信息,是进行数据处理的基本单位。大文件指的是包括海量的数据记录的数据文件,由于其包括的数据记录的条数特别多,一般在百万级以上设置多达上亿条数据记录,因此其所占据的存储空间也较大。图1为本专利技术的一个实施例的大文件排序方法的流程图。如图1所示,本专利技术的大文件排序方法,包括如下步骤:(a)压缩:将所述大文件包括的每一条原始数据记录均进行压缩处理生成对应的新数据记录,并将所有新数据记录组成一个新文件;(b)排序:将所述新文件所包括的新数据记录使用DFSORT工具进行排序;(C)解压:将排序后的每一条新数据记录进行解压处理,还原为所述原始数据记录。本专利技术的大文件排序方法对所采用的压缩方法的要求是,对大文件所包括的每一条原始数据记录分别进行压缩,而不是对大文件整体进行压缩。经过压缩后的数据记录所占用的存储空间减少,而且在排序过程中所消耗的内存与CPU等资源也较少,从而提高了整体的处理效率。图2为本专利技术的大文件排序方法的压缩过程的详细流程示意图。图3为采用本专利技术的大文件排序方法对一条数据记录进行压缩后生成新的数据记录与原始数据记录的对应图。为了尽可能地提高排序效率,在减少数据记录所占的存储空间的同时不能影响后续的排序操作,本实施例采用独特的压缩方法。如图2所示,本实施例中,压缩步骤进一步包括:(al)拆分:将每一条原始数据记录的字符从高位到低位以固定的字节数为单位按顺序拆分成多个字符段;(a2)分类赋值:为每一字符段赋予一个控制字,所述控制字包括字符类别代码和字符长度,根据字符类别的不同分别赋予不同的字符类别代码:如果该字符段全部为空格,定义为第一类字符段,赋予第一字符类别代码;如果字符段全部为数字0,定义为第二类字符段,赋予第二字符类别代码;如果该字符段既不全部为空格也不全部为数字0,定义为第三类字符段,赋予第三字符类别代码;(a3)按顺序生成新数据记录:其中由第一类字符段和第二类字符段生成的第一类新字符串和第二类新字符串分别只包括与其对应的控制字,由第三类字符段生成的第三类新字符串包括与其对应的控制字和位于该控制字后的该字符段自身。虽然图2中未示出解压步骤,但参照图2所示的压缩步骤可以帮助理解解压步骤,与上述的压缩步骤相对应(解压步骤是压缩步骤本文档来自技高网...

【技术保护点】
大文件排序方法,所述大文件包括海量数据记录,其特征在于,包括如下步骤:(a)压缩:将所述大文件包括的每一条原始数据记录均进行压缩处理生成对应的新数据记录,并将所有新数据记录组成一个新文件;(b)排序:将所述新文件所包括的新数据记录使用DFSORT工具进行排序;(c)解压:将排序后的每一条新数据记录进行解压处理,还原为所述原始数据记录。

【技术特征摘要】

【专利技术属性】
技术研发人员:廖文胜徐慧斌
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:

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

1