專(zhuān)利名稱(chēng):大文件排序方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種大文件排序方法及系統(tǒng),主要用于解決IBM大型機(jī)環(huán)境、z/OS操作系統(tǒng)下海量的順序文件(QSAM文件)排序的性能問(wèn)題。
背景技術(shù):
在使用IBM大型機(jī)(z/OS操作系統(tǒng))環(huán)境下進(jìn)行批量處理的過(guò)程中,為了提高處理效率,往往會(huì)采用DFSORT工具對(duì)海量的順序文件進(jìn)行排序處理。DFSORT工具是IBM研發(fā)的排序工具軟件,在業(yè)界被廣泛地使用,它可以有效地提高批量處理速度。但在處理海量數(shù)據(jù)時(shí),IBM的DFSORT工具仍顯不足,排序處理的時(shí)間過(guò)長(zhǎng),不能夠滿(mǎn)足應(yīng)用要求。例如,某銀行的一個(gè)中等規(guī)模的分行客戶(hù)資料包括13227038條客戶(hù)數(shù)據(jù)記錄,每條數(shù)據(jù)記錄多達(dá)2576字節(jié),采用DFSORT工具對(duì)該文件進(jìn)行排序的時(shí)間高達(dá)29.48分鐘。排序步驟所用的時(shí)間較長(zhǎng),影響了批處理的效率,成為制約批處理速度的關(guān)鍵環(huán)節(jié)。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的上述問(wèn)題,本發(fā)明要解決的技術(shù)問(wèn)題是提供一種利用DFSORT工具對(duì)包含有海量的數(shù)據(jù)記錄的大文件的進(jìn)行快速排序的方法和系統(tǒng)。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了大文件排序方法,所述大文件包括海量數(shù)據(jù)記錄,包括如下步驟:(a)壓縮:將所述大文件包括的每一條原始數(shù)據(jù)記錄均進(jìn)行壓縮處理生成對(duì)應(yīng)的新數(shù)據(jù)記錄,并將所有新數(shù)據(jù)記錄組成一個(gè)新文件;(b)排序:將所述新文件所包括的新數(shù)據(jù)記錄使用DFSORT工具進(jìn)行排序;(C)解壓:將排序后的每一條新數(shù)據(jù)記錄進(jìn)行解壓處理,還原為所述原始數(shù)據(jù)記錄。作為優(yōu)選,其中,所述壓縮步驟進(jìn)一步包括:(al)拆分:將每一條所述原始數(shù)據(jù)記錄的字符從高位到低位以固定的字節(jié)數(shù)為單位按順序拆分成多個(gè)字符段;(a2)分類(lèi)賦值:為每一字符段賦予一個(gè)控制字,所述控制字包括字符類(lèi)別代碼和字符長(zhǎng)度,根據(jù)字符類(lèi)別的不同分別賦予不同的字符類(lèi)別代碼:如果該字符段全部為空格,定義為第一類(lèi)字符段,賦予第一字符類(lèi)別代碼;如果字符段全部為數(shù)字0,定義為第二類(lèi)字符段,賦予第二字符類(lèi)別代碼;如果該字符段既不全部為空格也不全部為數(shù)字0,定義為第三類(lèi)字符段,賦予第三字符類(lèi)別代碼;(a3)按順序生成所述新數(shù)據(jù)記錄:其中由第一類(lèi)字符段和第二類(lèi)字符段生成的第一類(lèi)新字符串和第二類(lèi)新字符串分別只包括與其對(duì)應(yīng)的控制字,由第三類(lèi)字符段生成的第三類(lèi)新字符串包括與其對(duì)應(yīng)的控制字和位于該控制字后的該字符段自身;其中,所述解壓步驟進(jìn)一步包括:(Cl)根據(jù)控制字將新數(shù)據(jù)記錄拆分為多個(gè)所述新字符串;
(c2)根據(jù)控制字中的字符類(lèi)別代碼對(duì)新字符串進(jìn)行分類(lèi)處理:如果是第一類(lèi)新字符串和第二類(lèi)新字符串,根據(jù)控制字的字符類(lèi)別代碼及字符長(zhǎng)度還原為相應(yīng)的由空格和數(shù)字O組成的字符段,如果是第三類(lèi)新字符串,提出位于第三類(lèi)字符串的控制字之后的字符,還原為原始的字符段;(c3)按順序還原成所述原始數(shù)據(jù)記錄;將新字符串對(duì)應(yīng)的原始的字符按順序組合,還原為所述原始數(shù)據(jù)記錄。進(jìn)一步地,其中步驟(a2)和(a3)之間還包括:如果相鄰的兩個(gè)或多個(gè)字符段屬于相同的字符類(lèi)別,則將其合并為一個(gè)字符段。作為優(yōu)選,其中所述固定的字節(jié)數(shù)為四。本發(fā)明還提供了一種大文件排序系統(tǒng),包括:壓縮模塊:用于將所述大文件包括的每一條原始數(shù)據(jù)記錄均進(jìn)行壓縮處理生成對(duì)應(yīng)的新數(shù)據(jù)記錄,并將所有新數(shù)據(jù)記錄組成一個(gè)新文件;排序模塊:用于將所述新文件所包括的新數(shù)據(jù)記錄使用DFSORT工具進(jìn)行排序;解壓模塊:用于將排序后的每一條新數(shù)據(jù)記錄進(jìn)行解壓處理,還原為所述原始數(shù)據(jù)記錄。作為優(yōu)選,所述壓縮模塊進(jìn)一步包括:拆分模塊:用于將每一條所述原始數(shù)據(jù)記錄的字符從高位到低位以固定的字節(jié)數(shù)為單位按順序拆分成多個(gè)字符段;賦值模塊:為每一字符段賦予一個(gè)控制字,所述控制字包括字符類(lèi)別代碼和字符長(zhǎng)度,每一類(lèi)別的字符段分別賦予一個(gè)字符類(lèi)別代碼,其中字符類(lèi)別按如下規(guī)則進(jìn)行分類(lèi):如果該字符段全部為空格,定義為第一類(lèi)字符段;如果字符段全部為數(shù)字0,定義為第二類(lèi)字符段;如果該字符段既不全部為空格也不全部為數(shù)字0,定義為第三類(lèi)字符段;組合模塊:將由各個(gè)字符段生成的新字符串進(jìn)行組合,其中由第一類(lèi)字符段和第二類(lèi)字符段生成的新字符串分別只包括與其對(duì)應(yīng)的控制字,由第三類(lèi)字符段生成的新字符串則包括與其對(duì)應(yīng)的控制字和位于該控制字之后的該字符段自身。進(jìn)一步地,所述大文件排序系統(tǒng)還包括預(yù)組合模塊,用于將屬于相同字符類(lèi)別的兩個(gè)或多個(gè)相鄰的字符段合并為一個(gè)字符段。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:通過(guò)壓縮,縮小了參與排序的數(shù)據(jù)記錄以及由這些數(shù)據(jù)記錄組成的文件的大小,降低了 CPU及內(nèi)存開(kāi)銷(xiāo),提高了排序速度。
圖1為本發(fā)明的一個(gè)實(shí)施例的大文件排序方法的流程圖。圖2為本發(fā)明的大文件排序方法的壓縮過(guò)程的詳細(xì)流程示意圖。圖3為采用本發(fā)明的大文件排序方法對(duì)一條數(shù)據(jù)記錄進(jìn)行壓縮后生成新的數(shù)據(jù)記錄與原始數(shù)據(jù)記錄的對(duì)應(yīng)圖。圖4為本發(fā)明的一個(gè)實(shí)施例的大文件排序系統(tǒng)的組成框圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述,但不作為對(duì)本發(fā)明的限定。在本申請(qǐng)文件中,數(shù)據(jù)記錄對(duì)應(yīng)于數(shù)據(jù)源(文件)中的一組完整的信息,是進(jìn)行數(shù)據(jù)處理的基本單位。大文件指的是包括海量的數(shù)據(jù)記錄的數(shù)據(jù)文件,由于其包括的數(shù)據(jù)記錄的條數(shù)特別多,一般在百萬(wàn)級(jí)以上設(shè)置多達(dá)上億條數(shù)據(jù)記錄,因此其所占據(jù)的存儲(chǔ)空間也較大。圖1為本發(fā)明的一個(gè)實(shí)施例的大文件排序方法的流程圖。如圖1所示,本發(fā)明的大文件排序方法,包括如下步驟:(a)壓縮:將所述大文件包括的每一條原始數(shù)據(jù)記錄均進(jìn)行壓縮處理生成對(duì)應(yīng)的新數(shù)據(jù)記錄,并將所有新數(shù)據(jù)記錄組成一個(gè)新文件;(b)排序:將所述新文件所包括的新數(shù)據(jù)記錄使用DFSORT工具進(jìn)行排序;(C)解壓:將排序后的每一條新數(shù)據(jù)記錄進(jìn)行解壓處理,還原為所述原始數(shù)據(jù)記錄。本發(fā)明的大文件排序方法對(duì)所采用的壓縮方法的要求是,對(duì)大文件所包括的每一條原始數(shù)據(jù)記錄分別進(jìn)行壓縮,而不是對(duì)大文件整體進(jìn)行壓縮。經(jīng)過(guò)壓縮后的數(shù)據(jù)記錄所占用的存儲(chǔ)空間減少,而且在排序過(guò)程中所消耗的內(nèi)存與CPU等資源也較少,從而提高了整體的處理效率。圖2為本發(fā)明的大文件排序方法的壓縮過(guò)程的詳細(xì)流程示意圖。圖3為采用本發(fā)明的大文件排序方法對(duì)一條數(shù)據(jù)記錄進(jìn)行壓縮后生成新的數(shù)據(jù)記錄與原始數(shù)據(jù)記錄的對(duì)應(yīng)圖。為了盡可能地提高排序效率,在減少數(shù)據(jù)記錄所占的存儲(chǔ)空間的同時(shí)不能影響后續(xù)的排序操作,本實(shí)施例采用獨(dú)特的壓縮方法。如圖2所示,本實(shí)施例中,壓縮步驟進(jìn)一步包括:(al)拆分:將每一條原始數(shù)據(jù)記錄的字符從高位到低位以固定的字節(jié)數(shù)為單位按順序拆分成多個(gè)字符段;(a2)分類(lèi)賦值:為每一字符段賦予一個(gè)控制字,所述控制字包括字符類(lèi)別代碼和字符長(zhǎng)度,根據(jù)字符類(lèi)別的不同分別賦予不同的字符類(lèi)別代碼:如果該字符段全部為空格,定義為第一類(lèi)字符段,賦予第一字符類(lèi)別代碼;如果字符段全部為數(shù)字0,定義為第二類(lèi)字符段,賦予第二字符類(lèi)別代碼;如果該字符段既不全部為空格也不全部為數(shù)字0,定義為第三類(lèi)字符段,賦予第三字符類(lèi)別代碼;(a3)按順序生成新數(shù)據(jù)記錄:其中由第一類(lèi)字符段和第二類(lèi)字符段生成的第一類(lèi)新字符串和第二類(lèi)新字符串分別只包括與其對(duì)應(yīng)的控制字,由第三類(lèi)字符段生成的第三類(lèi)新字符串包括與其對(duì)應(yīng)的控制字和位于該控制字后的該字符段自身。雖然圖2中未示出解壓步驟,但參照?qǐng)D2所示的壓縮步驟可以幫助理解解壓步驟,與上述的壓縮步驟相對(duì)應(yīng)(解壓步驟是壓縮步驟的逆過(guò)程),所述解壓步驟進(jìn)一步包括:(Cl)根據(jù)控制字將新數(shù)據(jù)記錄進(jìn)行拆分,分為多個(gè)新字符串;(c2)根據(jù)控制字中的字符類(lèi)別代碼對(duì)新字符串進(jìn)行分類(lèi)處理:如果是第一類(lèi)新字符串和第二類(lèi)新字符串,根據(jù)控制字的字符類(lèi)別代碼及字符長(zhǎng)度分別還原為相應(yīng)的由空格和數(shù)字O組成的字符段,如果是第三類(lèi)新字符串,提出位于第三類(lèi)字符串的控制字之后的字符,還原為原始的由空格和數(shù)字O之外的普通字符組成的字符段;(c3)按順序還原成原始的數(shù)據(jù)記錄;將新字符串對(duì)應(yīng)的原始的字符按順序組合,還原為原始的數(shù)據(jù)記錄。
以下以圖3中所示的數(shù)據(jù)記錄并參照?qǐng)D2所示的流程圖來(lái)說(shuō)明本實(shí)施例的大文件排序方法,其中“ABCDEFGH”代表參與排序的字符,是不能壓縮的普通字符,“S”代表空格,“0”代表數(shù)字0,都是可壓縮的字符。壓縮處理以一個(gè)WORD (字,即4個(gè)字節(jié))為單位,主要考慮到IBM大型機(jī)的很多指令是以WORD為處理單位,這樣可以提高處理效率。圖3所示的數(shù)據(jù)記錄被拆分為八個(gè)字符段,每段字符段都會(huì)被賦予一個(gè)字長(zhǎng)的控制字,其中高2位字節(jié)的X’ 0001’、X’ 0002’、X’ 0003’(均為十六進(jìn)制),分別表示空格、數(shù)字O、普通字符,低2位字節(jié)表示相應(yīng)的字符段的長(zhǎng)度。作為優(yōu)選處理,為了提高壓縮效率,如果相鄰的兩個(gè)或多個(gè)字符段屬于相同的字符類(lèi)別,則將其合并為一個(gè)字符段。例如在圖3中,將“ABCDEFGH”合并為一個(gè)字符段,將四個(gè)字長(zhǎng)的16個(gè)S合并為一個(gè)字符段,將2個(gè)字長(zhǎng)的數(shù)字0合并為一個(gè)字符段。如圖3所示,對(duì)于普通字符段,也就是除了全部為空格的第一類(lèi)字符段和全部為數(shù)字0的第二類(lèi)字符段的第三類(lèi)字符段,例如“ABCDEFGH”,被壓縮后,生成的第三類(lèi)新字符串為“X’ 00030008’ AB⑶EFGH”,其中的控制字“X’ 0003’ ”為字符類(lèi)別代碼,即說(shuō)明其代表的是普通字符,“X’ 0008”代表字符長(zhǎng)度,即普通字符有8位。其中,字符類(lèi)別代碼可以根據(jù)實(shí)際需要進(jìn)行賦值,只要不同的字符類(lèi)別對(duì)應(yīng)不同的代碼即可。在解壓縮時(shí),如果一個(gè)新字符串中的控制字的字符類(lèi)別代碼表示其為由普通字符段生成的第三類(lèi)字符串,則提出位于第三類(lèi)字符串的控制字之后的字符,還原為原始的字符段。對(duì)于全部由空格組成的第一類(lèi)字符段,則僅生成控制字即可,即圖3所示的16個(gè)空格對(duì)應(yīng)“X,00010010’”,其中“X,0001’”表示此處為空格,“X’ 0010’”表示空格長(zhǎng)度為16。在解壓時(shí),只需還原為對(duì)應(yīng)長(zhǎng)度的空格即可。同理,對(duì)于全部由數(shù)字0組成的第二類(lèi)字符段,比如圖3所示的8個(gè)0,生成為“X’ 00020008’”,其中“X,0002”表示此處為數(shù)字0,“X’ 0008’”表示有8個(gè)O。在解壓縮時(shí)采用與此相反的方式從各個(gè)控制字得到原始的字符段。與上文所述的對(duì)大文件進(jìn)行排序的相對(duì)應(yīng),如圖4所示,本發(fā)明實(shí)施例的對(duì)大文件進(jìn)行排序的系統(tǒng),包括:壓縮模塊1:用于對(duì)所述大文件的每一條原始數(shù)據(jù)記錄均進(jìn)行壓縮處理生成對(duì)應(yīng)的新數(shù)據(jù)記錄,將所有的新數(shù)據(jù)記錄組成一個(gè)新文件;排序模塊2:用于將新文件所包括的所有的新數(shù)據(jù)記錄使用DFSORT工具進(jìn)行排序;解壓模塊3:用于將排序后的每一條新數(shù)據(jù)記錄進(jìn)行解壓處理,還原為原始數(shù)據(jù)記錄。如圖4所示,所述壓縮模塊I進(jìn)一步包括:拆分模塊11:用于將每一條數(shù)據(jù)記錄的字符從高位到低位以固定的字節(jié)數(shù)為單位按順序拆分成多個(gè)字符段。為了盡可能地壓縮每一條數(shù)據(jù)記錄,還包括預(yù)組合模塊12,在拆分模塊之后賦值模塊還未工作之前,用于將屬于相同字符類(lèi)別的兩個(gè)或多個(gè)相鄰的字符段合并為一個(gè)字符段。賦值模塊13:為每一字符段賦予一個(gè)控制字,所述控制字包括字符類(lèi)別代碼和字符長(zhǎng)度,每一類(lèi)別的字符段分別賦予一個(gè)字符類(lèi)別代碼,其中字符類(lèi)別按如下規(guī)則進(jìn)行分類(lèi):如果該字符段全部為空格,定義為第一類(lèi)字符段;如果字符段全部為數(shù)字O,定義為第二類(lèi)字符段;如果該字符段既不全部為空格也不全部為數(shù)字O,定義為第三類(lèi)字符段。組合模塊14:將由各個(gè)字符段生成的新字符串進(jìn)行組合,其中由第一類(lèi)字符段和第二類(lèi)字符段生成的新字符串分別只包括與其對(duì)應(yīng)的控制字,由第三類(lèi)字符段生成的新字符串則包括與其對(duì)應(yīng)的控制字和位于該控制字之后的該字符段自身。本發(fā)明的排序方法主要適用于包含有大量的連續(xù)空格和/或連續(xù)d數(shù)字O的文件。采用本實(shí)施例的排序方法對(duì)背景技術(shù)所述的包括13227038條數(shù)據(jù)記錄,每條數(shù)據(jù)記錄多達(dá)2576字節(jié)的大文件進(jìn)行處理時(shí),其壓縮的速度達(dá)到400萬(wàn)條記錄/分鐘。經(jīng)過(guò)測(cè)試,原文件大小為31.73G的客戶(hù)資料,壓縮后大小為6.70G,壓縮率為21.1%。在同樣的硬件和軟件環(huán)境下,采用本發(fā)明的方法對(duì)原文件進(jìn)行排序的運(yùn)行時(shí)間,在采用DFSORT工具直接排序的運(yùn)行時(shí)間的30-40%之間。以上實(shí)施例僅為本發(fā)明的示例性實(shí)施例,不用于限制本發(fā)明,本發(fā)明的保護(hù)范圍由權(quán)利要求書(shū)限定。本領(lǐng)域技術(shù)人員可以在本發(fā)明的實(shí)質(zhì)和保護(hù)范圍內(nèi),對(duì)本發(fā)明做出各種修改或等同替換,這種修改或等同替換也應(yīng)視為落在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.大文件排序方法,所述大文件包括海量數(shù)據(jù)記錄,其特征在于, 包括如下步驟: (a)壓縮:將所述大文件包括的每一條原始數(shù)據(jù)記錄均進(jìn)行壓縮處理生成對(duì)應(yīng)的新數(shù)據(jù)記錄,并將所有新數(shù)據(jù)記錄組成一個(gè)新文件; (b)排序:將所述新文件所包括的新數(shù)據(jù)記錄使用DFSORT工具進(jìn)行排序; (c)解壓:將排序后的每一條新數(shù)據(jù)記錄進(jìn)行解壓處理,還原為所述原始數(shù)據(jù)記錄。
2.根據(jù)權(quán)利要求1所述的大文件排序方法,其特征在于,其中, 所述壓縮步驟進(jìn)一步包括: (al)拆分:將每一條所述原始數(shù)據(jù)記錄的字符從高位到低位以固定的字節(jié)數(shù)為單位按順序拆分成多個(gè)字符段; (a2)分類(lèi)賦值:為每一字符段賦予一個(gè)控制字,所述控制字包括字符類(lèi)別代碼和字符長(zhǎng)度,根據(jù)字符類(lèi)別的不同分別賦予不同的字符類(lèi)別代碼:如果該字符段全部為空格,定義為第一類(lèi)字符段,賦予第一字符類(lèi)別代碼;如果字符段全部為數(shù)字0,定義為第二類(lèi)字符段,賦予第二字符類(lèi)別代碼;如果該字符段既不全部為空格也不全部為數(shù)字0,定義為第三類(lèi)字符段,賦予第三字符類(lèi)別代碼; (a3)按順序生成所述新數(shù)據(jù)記錄:其中由第一類(lèi)字符段和第二類(lèi)字符段生成的第一類(lèi)新字符串和第二類(lèi)新字符串分別只包括與其對(duì)應(yīng)的控制字,由第三類(lèi)字符段生成的第三類(lèi)新字符串包括與其對(duì)應(yīng)的控制字和位于該控制字后的該字符段自身; 其中,所述解壓步驟進(jìn)一 步包括: (Cl)根據(jù)控制字將新數(shù)據(jù)記錄拆分為多個(gè)所述新字符串; (c2)根據(jù)控制字中的字符類(lèi)別代碼對(duì)新字符串進(jìn)行分類(lèi)處理:如果是第一類(lèi)新字符串和第二類(lèi)新字符串,根據(jù)控制字的字符類(lèi)別代碼及字符長(zhǎng)度還原為相應(yīng)的由空格和數(shù)字0組成的字符段,如果是第三類(lèi)新字符串,提出位于第三類(lèi)字符串的控制字之后的字符,還原為原始的字符段; (c3)按順序還原成所述原始數(shù)據(jù)記錄;將新字符串對(duì)應(yīng)的原始的字符按順序組合,還原為所述原始數(shù)據(jù)記錄。
3.根據(jù)權(quán)利要求2所述的大文件排序方法,其特征在于,其中步驟(a2)和(a3)之間還包括: 如果相鄰的兩個(gè)或多個(gè)字符段屬于相同的字符類(lèi)別,則將其合并為一個(gè)字符段。
4.根據(jù)權(quán)利要求2或3所述的大文件排序方法,其特征在于,其中所述固定的字節(jié)數(shù)為四。
5.大文件排序系統(tǒng),其特征在于,包括: 壓縮模塊:用于將所述大文件包括的每一條原始數(shù)據(jù)記錄均進(jìn)行壓縮處理生成對(duì)應(yīng)的新數(shù)據(jù)記錄,并將所有新數(shù)據(jù)記錄組成一個(gè)新文件; 排序模塊:用于將所述新文件所包括的新數(shù)據(jù)記錄使用DFSORT工具進(jìn)行排序; 解壓模塊:用于將排序后的每一條新數(shù)據(jù)記錄進(jìn)行解壓處理,還原為所述原始數(shù)據(jù)記錄。
6.如權(quán)利要求5所述的對(duì)大文件進(jìn)行排序的系統(tǒng),其特征在于,所述壓縮模塊進(jìn)一步包括:拆分模塊:用于將每一條所述原始數(shù)據(jù)記錄的字符從高位到低位以固定的字節(jié)數(shù)為單位按順序拆分成多個(gè)字符段; 賦值模塊:為每一字符段賦予一個(gè)控制字,所述控制字包括字符類(lèi)別代碼和字符長(zhǎng)度,每一類(lèi)別的字符段分別賦予一個(gè)字符類(lèi)別代碼,其中字符類(lèi)別按如下規(guī)則進(jìn)行分類(lèi):如果該字符段全部為空格,定義為第一類(lèi)字符段;如果字符段全部為數(shù)字O,定義為第二類(lèi)字符段;如果該字符段既不全部為空格也不全部為數(shù)字O,定義為第三類(lèi)字符段; 組合模塊:將由各個(gè)字符段生成的新字符串進(jìn)行組合,其中由第一類(lèi)字符段和第二類(lèi)字符段生成的新字符串分別只包括與其對(duì)應(yīng)的控制字,由第三類(lèi)字符段生成的新字符串則包括與其對(duì)應(yīng)的控制字和位于該控制字之后的該字符段自身。
7.如權(quán)利要求6所述的對(duì)大文件進(jìn)行排序的系統(tǒng),其特征在于,還包括預(yù)組合模塊,用于將屬于相同字符類(lèi)別的兩 個(gè)或多個(gè)相鄰的字符段合并為一個(gè)字符段。
全文摘要
本發(fā)明公開(kāi)了一種大文件排序方法,包括如下步驟(a)壓縮將所述大文件包括的每一條原始數(shù)據(jù)記錄均進(jìn)行壓縮處理生成對(duì)應(yīng)的新數(shù)據(jù)記錄,并將所有新數(shù)據(jù)記錄組成一個(gè)新文件;(b)排序?qū)⑺鲂挛募ǖ男聰?shù)據(jù)記錄使用DFSORT工具進(jìn)行排序;(c)解壓將排序后的每一條新數(shù)據(jù)記錄進(jìn)行解壓處理,還原為所述原始數(shù)據(jù)記錄。本發(fā)明還公開(kāi)了一種大文件排序系統(tǒng),用于對(duì)包括海量數(shù)據(jù)記錄的大文件進(jìn)行排序處理。本發(fā)明的有益效果在于通過(guò)壓縮,縮小了參與排序的數(shù)據(jù)記錄以及由這些數(shù)據(jù)記錄組成的文件的大小,降低了CPU及內(nèi)存開(kāi)銷(xiāo),提高了排序速度。
文檔編號(hào)G06F17/30GK103198127SQ20131012359
公開(kāi)日2013年7月10日 申請(qǐng)日期2013年4月10日 優(yōu)先權(quán)日2013年4月10日
發(fā)明者廖文勝, 徐慧斌 申請(qǐng)人:中國(guó)銀行股份有限公司