專利名稱::一種基于文件類sql功能處理海量數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及電信網(wǎng)絡(luò)中的數(shù)據(jù)處理領(lǐng)域,具體提供一種基于文件類SQL功能處理海量數(shù)據(jù)的方法。
背景技術(shù):
:計(jì)算機(jī)技術(shù)的發(fā)展是與適應(yīng)數(shù)據(jù)處理同步的,是互相促進(jìn)的。初期的數(shù)據(jù)處理都是以數(shù)據(jù)文件方式存在的文件方式存儲(chǔ)數(shù)據(jù)有很多缺點(diǎn),比如操作不便、不能復(fù)用、缺少標(biāo)準(zhǔn)。所以在發(fā)展過程中產(chǎn)生了各種關(guān)系型數(shù)據(jù)庫(kù),促進(jìn)了數(shù)據(jù)處理應(yīng)用的發(fā)展。對(duì)海量數(shù)據(jù)的處理,針對(duì)數(shù)據(jù)的特點(diǎn),選擇相應(yīng)的處理方式,是提高處理效率的關(guān)鍵。目前海量數(shù)據(jù)處理提高效率的措施主要有選用優(yōu)秀的數(shù)據(jù)庫(kù)工具;*編寫優(yōu)良的程序代碼;*對(duì)海量數(shù)據(jù)進(jìn)行分區(qū)操作;*建立廣泛的索引;*提高硬件條件,加大CPU和內(nèi)存;*建立緩存機(jī)制;*加大虛擬內(nèi)存;*分批處理;*優(yōu)化査詢SQL語(yǔ)句;*使用文本格式進(jìn)行處理;*定制強(qiáng)大的清洗規(guī)則和出錯(cuò)處理機(jī)制;*建立視圖或者物化視*避免使用32位服務(wù)器(極端情況);*考慮操作系統(tǒng)問題;*使用數(shù)據(jù)倉(cāng)庫(kù)和多維數(shù)據(jù)庫(kù)存儲(chǔ);*使用采樣數(shù)據(jù),進(jìn)行數(shù)據(jù)挖掘;*內(nèi)存數(shù)據(jù)庫(kù)。我國(guó)幅員遼闊,并且電力、通信等網(wǎng)絡(luò)是一體化經(jīng)營(yíng),導(dǎo)致網(wǎng)絡(luò)規(guī)模巨大。但是這些網(wǎng)絡(luò)都有其結(jié)構(gòu)特點(diǎn),可以選擇合適的海量數(shù)據(jù)處理方式來提高數(shù)據(jù)處理的效率。電信網(wǎng)絡(luò)的管理有其規(guī)律性,組成網(wǎng)絡(luò)的每個(gè)節(jié)點(diǎn)是管理的基本單位,按照行政區(qū)、區(qū)域網(wǎng)絡(luò)、整體網(wǎng)絡(luò)分別進(jìn)行統(tǒng)計(jì)分析,稱之為網(wǎng)元粒度的管理;數(shù)據(jù)的產(chǎn)生是按照時(shí)間組織的,可以是5分鐘、15分鐘、60分鐘等間隔方式,在統(tǒng)計(jì)分析中一般要求60分鐘(l小時(shí))、日、周、月、年等,稱之為時(shí)間粒度。在數(shù)據(jù)產(chǎn)生上按照不同的節(jié)點(diǎn)(網(wǎng)元)產(chǎn)生某個(gè)時(shí)間的數(shù)據(jù),整個(gè)網(wǎng)絡(luò)中的網(wǎng)元數(shù)據(jù)可能由于一些原因在數(shù)據(jù)產(chǎn)生上存在時(shí)延。網(wǎng)絡(luò)管理要求數(shù)據(jù)必須是實(shí)時(shí)的,分析的數(shù)據(jù)必須是完整的。基于網(wǎng)絡(luò)數(shù)據(jù)產(chǎn)生的特點(diǎn),在采用數(shù)據(jù)庫(kù)進(jìn)行的數(shù)據(jù)采集、匯總等操作中需要做大量的標(biāo)記,如記錄標(biāo)志數(shù)據(jù)采集、數(shù)據(jù)匯總的時(shí)間點(diǎn)。并且數(shù)據(jù)匯總本身的大數(shù)據(jù)量操作,占用了數(shù)據(jù)庫(kù)本身的大量資源,使數(shù)據(jù)庫(kù)對(duì)用戶提供服務(wù)的能力減弱;數(shù)據(jù)產(chǎn)生的延時(shí),導(dǎo)致在數(shù)據(jù)匯總觸發(fā)上的差異,從而可能導(dǎo)致數(shù)據(jù)的不完整。所有基于數(shù)據(jù)庫(kù)的優(yōu)化和操作,都離不開數(shù)據(jù)庫(kù);數(shù)據(jù)庫(kù)操作的限制,導(dǎo)致了數(shù)據(jù)的不及時(shí)、不完整、對(duì)外服務(wù)提供能力弱。在網(wǎng)元產(chǎn)生的數(shù)據(jù)中,網(wǎng)元粒度關(guān)系有明確的標(biāo)志,并且網(wǎng)元是產(chǎn)生數(shù)據(jù)的基本單位,按照這個(gè)特點(diǎn)對(duì)這些海量數(shù)據(jù)實(shí)現(xiàn)基于文件方式的數(shù)據(jù)累加、刪除、5關(guān)聯(lián)、最大、最小、平均等數(shù)據(jù)庫(kù)的SQL常用操作。隨著服務(wù)器技術(shù)的發(fā)展,對(duì)于直接的數(shù)據(jù)計(jì)算非???,這為數(shù)據(jù)處理提供了硬件基礎(chǔ);哈希數(shù)組的描述性數(shù)組直接定位,為數(shù)據(jù)的計(jì)算方式提供了軟件基礎(chǔ)。按照開閉原則設(shè)計(jì)的實(shí)現(xiàn)方案具有優(yōu)秀的擴(kuò)展性,可以方便的擴(kuò)展數(shù)據(jù)操作(比如增加數(shù)據(jù)的某種特殊的公式計(jì)算)。
發(fā)明內(nèi)容本發(fā)明的一種基于文件類SQL功能處理海量數(shù)據(jù)的方法是針對(duì)以上情況,以電信網(wǎng)絡(luò)為基礎(chǔ),采用文件方式,模仿數(shù)據(jù)庫(kù)操作的方便性,實(shí)現(xiàn)的一種海量數(shù)據(jù)處理方案,借以保證海量數(shù)據(jù)處理的高效率,也使操作非常方便、靈活并具有很強(qiáng)的擴(kuò)展能力。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種基于文件類SQL功能處理海量數(shù)據(jù)的方法,包括以下步驟A、對(duì)采集后產(chǎn)生的文本文件進(jìn)行標(biāo)準(zhǔn)化格式處理;B、基于標(biāo)準(zhǔn)化后的文本文件進(jìn)行海量數(shù)據(jù)處理,使用類SQL語(yǔ)句的方式進(jìn)行相關(guān)數(shù)據(jù)操作;C、操作的結(jié)果可以定義輸出為最終結(jié)果或者中間結(jié)果,對(duì)于中間結(jié)果符合標(biāo)準(zhǔn)化后的格式,繼續(xù)對(duì)該文件進(jìn)行數(shù)據(jù)操作,直至達(dá)到結(jié)果要求。步驟A使用的數(shù)據(jù)文件格式如下-鵬TARiHEADERCOMPANYIDEPARTMENTInspurIossWffiNDIHEADER將STARTIDATA—BLOCKCELLITRXICO,l|C0麗21C0UNT3DF00011123DF00012123腦OOl3123DF00014123DF00021123DF00022123DF00023123DF00024123抑ENDIDATA—BLOCK步驟B中針對(duì)海量數(shù)據(jù)使用脫離數(shù)據(jù)庫(kù)方案,進(jìn)行基于文本文件的操作,在此操作過程中使用了類SQL語(yǔ)句的方式,即通過SQL語(yǔ)句的謂詞實(shí)現(xiàn)對(duì)數(shù)據(jù)的處理。步驟C中采用了對(duì)輸出結(jié)果的重定義,即可以對(duì)一個(gè)原始輸入,重復(fù)利用任何操作的輸出,通過類SQL操作實(shí)現(xiàn)對(duì)數(shù)據(jù)輸出結(jié)果的要求。本發(fā)明的實(shí)現(xiàn)采用開閉原則設(shè)計(jì),實(shí)現(xiàn)類SQL語(yǔ)句的靈活擴(kuò)充和客戶化開發(fā)。開閉原則是面向?qū)ο笤O(shè)計(jì)方法之一,'對(duì)需求開放,對(duì)修改關(guān)閉',意思是實(shí)現(xiàn)的系統(tǒng)具有極高的靈活擴(kuò)展能力,對(duì)于用戶提出的需求能夠無(wú)限度的接納,但是不需要修改原來的程序,只需要針對(duì)用戶新提出的需求進(jìn)行實(shí)現(xiàn)即可。實(shí)現(xiàn)的內(nèi)容通過原功能的調(diào)用即可以實(shí)現(xiàn)用戶需要的功能。實(shí)現(xiàn)對(duì)新擴(kuò)展功能調(diào)用的主功能,稱之為引擎方式。在本例中,可以理解為如果需要添加其他的SQL語(yǔ)句中使用的聚合函數(shù)或其他特殊要求,可以通過編碼實(shí)現(xiàn)該功能,然后按照配置描述,就可以在該功能中使用。本專利的目的是實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的高效、方便處理,方便就是指模擬了SQL操作這種大家熟悉的方式。本發(fā)明的一種基于文件類SQL功能處理海量數(shù)據(jù)的方法,既保證了海量數(shù)據(jù)處理的高效率,也使操作非常方便、靈活并具有很強(qiáng)的擴(kuò)展能力。其特點(diǎn)主要有1、脫離數(shù)據(jù)庫(kù)的數(shù)據(jù)處理海量數(shù)據(jù)的及時(shí)、完整處理,是實(shí)現(xiàn)網(wǎng)絡(luò)管理的關(guān)鍵。但基于數(shù)據(jù)庫(kù)方式的處理,不僅大量占用數(shù)據(jù)庫(kù)資源,并且由于數(shù)據(jù)庫(kù)處理能力的限制,無(wú)法獲得及時(shí)數(shù)據(jù)。影響了用戶對(duì)其他應(yīng)用功能的使用,而且也影響了基于派生數(shù)據(jù)(通過基礎(chǔ)數(shù)據(jù)和一定判斷規(guī)則產(chǎn)生的數(shù)據(jù)稱為派生數(shù)據(jù))的應(yīng)用使用。通過基于文件方式的類數(shù)據(jù)庫(kù)語(yǔ)言操作,可以提高使用效率,把數(shù)據(jù)庫(kù)的使用盡量給予最終使用用戶,節(jié)約投資。數(shù)據(jù)處理指數(shù)據(jù)的累加、刪除、關(guān)聯(lián)、最大、最小、平均等操作。這些操作也是數(shù)據(jù)庫(kù)中數(shù)據(jù)處理的常用操作。2、基于文件的類SQL操作通過程序編程可以實(shí)現(xiàn)對(duì)數(shù)據(jù)文件中某些數(shù)據(jù)的任意處理,但是這些處理就有個(gè)性化并不容易被調(diào)用,使用也不方便。本發(fā)明中通過開閉原則設(shè)計(jì)架構(gòu),便于調(diào)用和使用,主要實(shí)現(xiàn)功能如下表功能等價(jià)的SQL操作備注累加Selectsum(a)fromtabwhere條件groupbycoll,co12可以按分組條件設(shè)置,并且可以按照四則運(yùn)算先進(jìn)行計(jì)算再求和刪除Delete氺fromtabwh6r6條件與SQL操作不同,在該刪除操作中還可以設(shè)置為保留,也就是說做條件的非操作一滿足條件的留8<table>tableseeoriginaldocumentpage9</column></row><table>3、中間數(shù)據(jù)操作數(shù)據(jù)的處理在很多情況下,不是經(jīng)過一個(gè)SQL語(yǔ)句就可以獲得最終結(jié)果的,往往需要經(jīng)過幾個(gè)步驟的操作才能達(dá)到目的,在這個(gè)過程中不可避免的使用了數(shù)據(jù)庫(kù)的臨時(shí)表存儲(chǔ)中間數(shù)據(jù)。為了使數(shù)據(jù)處理更加靈活方便,在本發(fā)明中也具有對(duì)中間數(shù)據(jù)的處理操作。文件處理過程中通過設(shè)置也可以產(chǎn)生中間結(jié)果(臨時(shí)表),可以對(duì)這個(gè)中間表進(jìn)行同樣的操作,即把該中間文件作為原始待處理數(shù)據(jù)文件。通過這種方式,能夠把復(fù)雜的數(shù)據(jù)計(jì)算分為幾個(gè)步驟來實(shí)現(xiàn),提高了實(shí)用性和適應(yīng)性。4、符合開閉原則的驅(qū)動(dòng)引擎各數(shù)據(jù)處理功能做為插件,可以方便的掛接到主程序上,由主程序的引擎驅(qū)動(dòng)完成功能。需要執(zhí)行的操作通過配置設(shè)置就可以完成功能,新增加的數(shù)據(jù)處理功能按照同樣的設(shè)置也可以方便的調(diào)用和使用。該發(fā)明中實(shí)現(xiàn)的系統(tǒng)是開放的、可擴(kuò)展的,通過驅(qū)動(dòng)引擎實(shí)現(xiàn)數(shù)據(jù)的處理。驅(qū)動(dòng)引擎具有多級(jí)日志措施和調(diào)試機(jī)制,可以方便的發(fā)現(xiàn)存在的問題。圖1為本發(fā)明的一種基于文件類SQL功能處理海量數(shù)據(jù)的方法的方法流程圖。具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的一種基于文件類SQL功能處理海量數(shù)據(jù)的方法作進(jìn)一步的描述?;谖募臄?shù)據(jù)處理方案,充分利用了現(xiàn)在的計(jì)算機(jī)硬件,把待處理的數(shù)據(jù)通過數(shù)組放到內(nèi)存中處理,使數(shù)據(jù)處理的速度大大加快。數(shù)組是程序中處理變量常用的方式,但是數(shù)組一般以數(shù)字為排列依據(jù),無(wú)法直接找到需要處理的變量名稱(一般通過遍歷數(shù)組,與對(duì)應(yīng)的數(shù)值比較實(shí)現(xiàn));在本方案中引入的哈希數(shù)組避免了這個(gè)缺點(diǎn),可以直接用變量做為數(shù)組的下標(biāo),區(qū)別和排列數(shù)據(jù)。哈希數(shù)組的使用,使直接對(duì)變量的操作變得方便和靈活,并且加快了數(shù)據(jù)處理速度。驅(qū)動(dòng)引擎采用開閉原則設(shè)計(jì),所謂開閉原則就是'對(duì)修改封閉,對(duì)需求開放',這個(gè)特性使引擎具有更強(qiáng)的適應(yīng)性和更好的擴(kuò)展性。為了使數(shù)據(jù)處理更方便和靈活,引入了臨時(shí)數(shù)據(jù)記錄的模式,在系統(tǒng)中規(guī)定了輸入和臨時(shí)文件具有相同的格式,考慮系統(tǒng)的處理方便和速度,格式做如下要求將STARTIHEADERCOMPANY!DEPARTMENTInspurIoss##ENDIHEADER##STARTIDATA—BLOCKCELLlTRXDF00011123DF00012123DF00013123DF00014123DF00021123DF00022123DF00023123DF00024123C0UNT1|C0UNT2|C0UNT3(內(nèi)容可空)塊名,用來區(qū)別數(shù)據(jù);START標(biāo)志該塊數(shù)據(jù)的開始,一個(gè)塊類似7鵬NDIDATA—BLOCK數(shù)據(jù)體,每行代表相當(dāng)于數(shù)據(jù)表中的一行數(shù)據(jù)。第一行為變量,相當(dāng)于數(shù)據(jù)表的列。END標(biāo)志該塊數(shù)據(jù)的結(jié)束主程序如圖l所示。在使用時(shí)這些操作沒有先后依賴關(guān)系,并且在一個(gè)處理中可以被多次調(diào)用,也可以多個(gè)操作協(xié)同處理達(dá)到某個(gè)要求結(jié)果。如把滿足某種條件的數(shù)據(jù)累加到全網(wǎng)粒度,可以先做一次刪除操作,然后通過累加操作實(shí)現(xiàn)需求的數(shù)據(jù)。程序的調(diào)用和指定數(shù)據(jù)的處理,通過規(guī)則配置實(shí)現(xiàn)。下面的配置是數(shù)據(jù)累加規(guī)則的配置<table>tableseeoriginaldocumentpage11</column></row><table>頁(yè)稱描述表達(dá)式描述OPUPUT—BLOCK—NAME輸出數(shù)據(jù)塊的名稱可以區(qū)分與原始數(shù)據(jù)區(qū)分必填標(biāo)量COUNTERS—TO—SORT—ON累加排序字段,即累加的條件字段可以多個(gè)字段必填數(shù)組REDUNDANT_COUNTERS多余的計(jì)數(shù)器列表,多個(gè)中間用","分割在產(chǎn)生的文件中不需要的列可選,默認(rèn)無(wú)數(shù)組PRODUCE—PIF產(chǎn)生中間臨時(shí)格式文件True-產(chǎn)生,0-不產(chǎn)生可選,默認(rèn)產(chǎn)生標(biāo)量PRODUCE—LIF產(chǎn)生入庫(kù)格式文件True-產(chǎn)生,O-不產(chǎn)生可選,默認(rèn)產(chǎn)生標(biāo)量NON_ADDITIVE—COUNTERS不需要累加的字段的說明列表,多個(gè)中間用","分割如名稱,時(shí)間等不需要累加,累加排序的字段不需要再指定,該字段不做累加可選,默認(rèn)無(wú)數(shù)組APPEND一STR附加字符串,即在參加累加的列名稱后添加此字符串不設(shè)置,則忽略此選項(xiàng)可選,默認(rèn)無(wú)標(biāo)量OLD—COUNTER—NAMES需要改名的列名稱列表不設(shè)置,則忽略此選項(xiàng)可選,默認(rèn)無(wú)數(shù)組12NEW—COUNTER—NAMES改名后的列名稱,與上列表位置對(duì)應(yīng)不設(shè)置,則忽略此選I頁(yè)可選,默認(rèn)無(wú)數(shù)組OUTPUT—DIR入庫(kù)文件存放的路徑可以指定文件存放的特殊位置可選,默認(rèn)見注釋標(biāo)量keep—files入庫(kù)文件存放的備份路徑如果不設(shè)置則不備份,備份主要是給第三方提供數(shù)據(jù)源??蛇x,默認(rèn)見注釋標(biāo)量COMPUTE—EXPRESS麗計(jì)算列表達(dá)式可選,默認(rèn)無(wú)數(shù)組COMTOTE—NAME輸出的名字可選,默認(rèn)無(wú)數(shù)組必填是配置中必須要設(shè)置的項(xiàng),可選項(xiàng)使用時(shí)可不配置。具體例子如下:'RULETYPE,_=>'ACCUMULATE',累加功能調(diào)用的句柄'RULE—DESC'=〉'AcccumulateIN,,.'PRODUCE—PTF,=〉'True','PRODUCE—LIF'=>0,'OUTPUT—BLOCK—NAME'=〉'NICELASS—0','INPUT-FILE-DESCRIPTION'=>['NICELASS扭能,pif]輸入文件名,可通配<COUNTERS-TO-SORT-ON,=〉「'OB.T—ID—1,]SQL語(yǔ)句中,GROUPBY部分的變量名'COMPUTE—EXPRESSION'=>「'C0L1/C0L2'l兩個(gè)變量做除操作,獲得一個(gè)新列'COMPUTE—NAME'=〉['COMPUTE—1'1新列名稱,結(jié)果中按計(jì)算后的值累加'APPEND—STR'=〉'—0'.13以上所述的實(shí)施例,只是本發(fā)明較優(yōu)選的具體實(shí)施方式的一種,本領(lǐng)域的技術(shù)人員在本發(fā)明技術(shù)方案范圍內(nèi)進(jìn)行的通常變化和替換都應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)。權(quán)利要求1、一種基于文件類SQL功能處理海量數(shù)據(jù)的方法,包括以下步驟A、對(duì)采集后產(chǎn)生的文本文件進(jìn)行標(biāo)準(zhǔn)化格式處理;B、基于標(biāo)準(zhǔn)化后的文本文件進(jìn)行海量數(shù)據(jù)處理,使用類SQL語(yǔ)句的方式進(jìn)行相關(guān)數(shù)據(jù)操作;C、操作的結(jié)果可以定義輸出為最終結(jié)果或者中間結(jié)果,對(duì)于中間結(jié)果符合標(biāo)準(zhǔn)化后的格式,繼續(xù)對(duì)該文件進(jìn)行數(shù)據(jù)操作,直至達(dá)到結(jié)果要求。2、根據(jù)權(quán)利要求1所述的一種基于文件類SQL功能處理海量數(shù)據(jù)的方法,;特征在于,所述步驟A使用的數(shù)據(jù)文件格式如下抑STARIHEADERCOMPANY1DEPARTMENTInspurIosstt腳D1HEADER##STARTIDATA—BLOCKCELLITRXICOUNT11C0UNT21C0UNT3DFOOOlDF0001DFOOOlDFOOOlDF0002DF0002DF0002DF0002l|l|2|32|1|2|33|1|2|34|ll2|3l|l|2|32|l|2|33|1|2|34|l|2|3鵬NDIDATA—BLOCK3、根據(jù)權(quán)利要求1所述的一種基于文件類SQL功能處理海量數(shù)據(jù)的方法,其特征在于,所述步驟B中針對(duì)海量數(shù)據(jù)使用脫離數(shù)據(jù)庫(kù)方案,進(jìn)行基于文本文件的操作,在此操作過程中使用了類SQL語(yǔ)句的方式,即通過SQL語(yǔ)句的謂詞實(shí)現(xiàn)對(duì)數(shù)據(jù)的處理。4、根據(jù)權(quán)利要求1所述的一種基于文件類SQL功能處理海量數(shù)據(jù)的方法,其特征在于,所述步驟C中采用了對(duì)輸出結(jié)果的重定義,即可以對(duì)一個(gè)原始輸入,重復(fù)利用任何操作的輸出,通過類SQL操作實(shí)現(xiàn)對(duì)數(shù)據(jù)輸出結(jié)果的要求。全文摘要本發(fā)明涉及電信網(wǎng)絡(luò)中的數(shù)據(jù)處理領(lǐng)域,具體提供一種基于文件類SQL功能處理海量數(shù)據(jù)的方法。本發(fā)明的一種基于文件類SQL功能處理海量數(shù)據(jù)的方法包括以下步驟A.對(duì)采集后產(chǎn)生的文本文件進(jìn)行標(biāo)準(zhǔn)化格式處理;B.基于標(biāo)準(zhǔn)化后的文本文件進(jìn)行海量數(shù)據(jù)處理,使用類SQL語(yǔ)句的方式進(jìn)行相關(guān)數(shù)據(jù)操作;C.操作的結(jié)果可以定義輸出為最終結(jié)果或者中間結(jié)果,對(duì)于中間結(jié)果符合標(biāo)準(zhǔn)化后的格式,繼續(xù)對(duì)該文件進(jìn)行數(shù)據(jù)操作,直至達(dá)到結(jié)果要求。本發(fā)明結(jié)合了文件和數(shù)據(jù)庫(kù)方式的各自優(yōu)點(diǎn),既保證了海量數(shù)據(jù)處理的高效率,也使操作非常方便、靈活并具有很強(qiáng)的擴(kuò)展能力。文檔編號(hào)H04L12/24GK101593197SQ200810249730公開日2009年12月2日申請(qǐng)日期2008年12月30日優(yōu)先權(quán)日2008年12月30日發(fā)明者祝乃國(guó)申請(qǐng)人:浪潮通信信息系統(tǒng)有限公司