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