專利名稱:一種海量數(shù)據(jù)的處理方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)處理領(lǐng)域,尤其涉及一種海量數(shù)據(jù)進(jìn)行存儲(chǔ)、檢索處理的方法。
背景技術(shù):
在通信、氣象和金融等技術(shù)領(lǐng)域中存在著對(duì)海量數(shù)據(jù)的分析和檢索需求,由于數(shù)據(jù)量本身的龐大,在存儲(chǔ)、檢索以及分析這些數(shù)據(jù)的過(guò)程中,執(zhí)行效率以及空間開(kāi)銷是無(wú)法回避的技術(shù)瓶頸。
在現(xiàn)有技術(shù)中,一種方法是通過(guò)設(shè)計(jì)一個(gè)高效的并行算法,使用高性能的并行處理機(jī)制來(lái)實(shí)現(xiàn)最終數(shù)據(jù)的存儲(chǔ)、檢索和分析,諸如大型機(jī)系統(tǒng)或者分布式計(jì)算系統(tǒng),主要通過(guò)高性能的硬件以及結(jié)合優(yōu)良的并行分布算法來(lái)解決海量數(shù)據(jù)的處理性能瓶頸。這種方法雖然實(shí)施比較簡(jiǎn)單,技術(shù)風(fēng)險(xiǎn)也相對(duì)比較小,但由于大型的并行處理機(jī)或者分布式計(jì)算系統(tǒng)成本很高,維護(hù)復(fù)雜,對(duì)于使用低端設(shè)備的用戶來(lái)說(shuō)是可望而不可及的。另外,不可預(yù)知的數(shù)據(jù)處理量增加導(dǎo)致硬件系統(tǒng)的升級(jí),也會(huì)不斷增加系統(tǒng)的成本。
第二種方法是在海量數(shù)據(jù)處理前先主觀確定一個(gè)標(biāo)準(zhǔn),然后根據(jù)該標(biāo)準(zhǔn)將數(shù)據(jù)進(jìn)行無(wú)量綱化以及歸一化處理,通過(guò)數(shù)據(jù)預(yù)處理可將數(shù)據(jù)類型化、序列化,甚至可以通過(guò)特定的算法將原始數(shù)據(jù)進(jìn)行轉(zhuǎn)化,已達(dá)到縮小數(shù)據(jù)處理規(guī)模以及復(fù)雜度的目的。這種方法方案抽象程度較高,有較好的靈活性和處理能力,但常常導(dǎo)致運(yùn)算結(jié)果不僅含有諸多主觀因素,而且在運(yùn)算前就改動(dòng)了數(shù)據(jù)的原始性。另外,通常這類方法運(yùn)算相對(duì)復(fù)雜,難以被一般技術(shù)人員掌握。同時(shí),大部分海量數(shù)據(jù)對(duì)象的抽象有一定的難度,具有很高的數(shù)據(jù)建模要求。
第三種方法是使用數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)挖掘技術(shù),它在一定程度上包含第二種技術(shù)方案,是一種面向主題的、集成而且穩(wěn)定的、隨時(shí)間不斷變化的數(shù)據(jù)集和技術(shù)。這種方法能夠很好的解決海量數(shù)據(jù)處理的問(wèn)題,但由于實(shí)施環(huán)境的信息化基礎(chǔ)設(shè)備相對(duì)不太完善、數(shù)據(jù)倉(cāng)庫(kù)的價(jià)格居高不下、管理機(jī)制和技術(shù)人才缺乏、數(shù)據(jù)積累不充分以及數(shù)據(jù)挖掘工具本身不成熟等原因難以廣泛獲得推廣。
綜上所述,現(xiàn)有技術(shù)在對(duì)海量數(shù)據(jù)進(jìn)行處理時(shí),普遍存在實(shí)現(xiàn)成本較高,實(shí)現(xiàn)過(guò)程復(fù)雜等缺點(diǎn),難以滿足用戶的實(shí)際應(yīng)用需要。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種數(shù)據(jù)處理方法,旨在解決對(duì)海量數(shù)據(jù)進(jìn)行處理時(shí),實(shí)現(xiàn)成本較高,實(shí)現(xiàn)過(guò)程復(fù)雜的問(wèn)題。
本發(fā)明的發(fā)明目的是這樣實(shí)現(xiàn)的,一種海量數(shù)據(jù)的處理方法,所述方法包括下述步驟A.接收請(qǐng)求處理的源數(shù)據(jù),將所述源數(shù)據(jù)分塊存入源數(shù)據(jù)隊(duì)列;B.對(duì)所述源數(shù)據(jù)隊(duì)列中的數(shù)據(jù)塊進(jìn)行處理,將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù);C.將所述目標(biāo)數(shù)據(jù)存入數(shù)據(jù)庫(kù)。
所述步驟A進(jìn)一步包括提取所述源數(shù)據(jù)的原始信息,根據(jù)所述原始信息將所述源數(shù)據(jù)分塊處理,所述原始信息包括所述源數(shù)據(jù)數(shù)據(jù)包的大小、時(shí)間或幀頭附加信息。
所述步驟A進(jìn)一步包括當(dāng)源數(shù)據(jù)隊(duì)列達(dá)到最大水位時(shí),緩存溢出的數(shù)據(jù),并在源數(shù)據(jù)隊(duì)列空閑時(shí),將緩存的數(shù)據(jù)補(bǔ)充進(jìn)源數(shù)據(jù)隊(duì)列。
所述緩存溢出的數(shù)據(jù)的步驟進(jìn)一步包括將溢出的數(shù)據(jù)放入在內(nèi)存中設(shè)置的緩沖器,當(dāng)緩沖器滿后將數(shù)據(jù)寫(xiě)入外部存儲(chǔ)介質(zhì)進(jìn)行緩存。
所述步驟B進(jìn)一步包括通過(guò)多個(gè)線程對(duì)所述源數(shù)據(jù)隊(duì)列進(jìn)行并行輪詢處理,每個(gè)線程以源數(shù)據(jù)塊為單位,將輪詢獲取的源數(shù)據(jù)塊轉(zhuǎn)換為目標(biāo)數(shù)據(jù)。
所述步驟B進(jìn)一步包括在將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)的過(guò)程中,將多個(gè)源數(shù)據(jù)壓縮封裝為一個(gè)目標(biāo)數(shù)據(jù),并將所述目標(biāo)數(shù)據(jù)存入目標(biāo)數(shù)據(jù)隊(duì)列。
所述步驟C進(jìn)一步包括設(shè)置存儲(chǔ)所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)表,以及對(duì)所述數(shù)據(jù)表進(jìn)行索引的索引表。
所述方法進(jìn)一步包括D.對(duì)數(shù)據(jù)庫(kù)進(jìn)行定時(shí)配置和維護(hù)。
所述步驟D進(jìn)一步包括根據(jù)數(shù)據(jù)表時(shí)間定期對(duì)數(shù)據(jù)表進(jìn)行合并和刪除,以及定期清理數(shù)據(jù)庫(kù)日志。
所述步驟C進(jìn)一步包括設(shè)置單頁(yè)顯示記錄數(shù),在用戶查詢數(shù)據(jù)時(shí),根據(jù)設(shè)置的單頁(yè)顯示記錄數(shù)和用戶查詢的數(shù)據(jù)總記錄數(shù),向用戶分頁(yè)輸出查詢記錄。
本發(fā)明在海量數(shù)據(jù)的處理過(guò)程中,通過(guò)對(duì)應(yīng)用處理邏輯以及數(shù)據(jù)庫(kù)存儲(chǔ)操作進(jìn)行優(yōu)化,提升了整個(gè)應(yīng)用系統(tǒng)對(duì)海量數(shù)據(jù)的吞吐能力,實(shí)現(xiàn)簡(jiǎn)單,成本低。
圖1是本發(fā)明提供的數(shù)據(jù)處理方法的實(shí)現(xiàn)流程圖;圖2是本發(fā)明中源數(shù)據(jù)和目標(biāo)數(shù)據(jù)的壓縮封裝比例示意圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明通過(guò)對(duì)請(qǐng)求處理的源數(shù)據(jù)進(jìn)行隊(duì)列緩存、并行邏輯處理等批處理過(guò)程,提高海量數(shù)據(jù)處理的效率,同時(shí)采用分表存儲(chǔ)以及分頁(yè)輸出等優(yōu)化數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu),提高海量數(shù)據(jù)的檢索查詢效率。
圖1示出了本發(fā)明提供的數(shù)據(jù)處理方法的實(shí)現(xiàn)流程,詳述如下1.將源數(shù)據(jù)分塊放入源數(shù)據(jù)隊(duì)列在實(shí)際海量數(shù)據(jù)的應(yīng)用環(huán)境中,源數(shù)據(jù)總是一批一批、源源不斷地上報(bào),由于整個(gè)系統(tǒng)的硬件資源有限,難以做到到達(dá)一批數(shù)據(jù)就啟動(dòng)一個(gè)線程對(duì)數(shù)據(jù)進(jìn)行處理。同時(shí),為了避免丟失數(shù)據(jù)以及降低系統(tǒng)效率,需要對(duì)被阻塞的數(shù)據(jù)進(jìn)行管理。因此,在本發(fā)明中,請(qǐng)求處理的源數(shù)據(jù)到達(dá)后,并不立即進(jìn)行分析處理,而是提取源數(shù)據(jù)的原始信息,例如源數(shù)據(jù)數(shù)據(jù)包的時(shí)間、大小以及幀頭的一些附加信息等,根據(jù)這些原始信息將源數(shù)據(jù)分簇(塊),然后將源數(shù)據(jù)塊放到源數(shù)據(jù)隊(duì)列中,以提升后續(xù)應(yīng)用處理邏輯的效率。
通過(guò)將源數(shù)據(jù)放入源數(shù)據(jù)隊(duì)列緩存,一方面可以把請(qǐng)求的源數(shù)據(jù)組織成塊,每個(gè)線程以塊為單位來(lái)進(jìn)行邏輯處理,通過(guò)塊大小以及線程數(shù)的配置調(diào)節(jié),可以達(dá)到CPU以及內(nèi)存的最大利用率;另一方面,通過(guò)源數(shù)據(jù)隊(duì)列對(duì)請(qǐng)求數(shù)據(jù)的管理,包括阻塞控制、緩存控制等能有效的防止數(shù)據(jù)丟失,同時(shí)隊(duì)列本身良好的數(shù)據(jù)出隊(duì)入隊(duì)控制也能在很大程度上提升系統(tǒng)效率。尤其對(duì)于請(qǐng)求數(shù)據(jù)具有嚴(yán)格的時(shí)序處理要求的應(yīng)用,隊(duì)列是再合適不過(guò)的數(shù)據(jù)預(yù)存容器。
2.溢出數(shù)據(jù)的緩存和補(bǔ)充作為本發(fā)明的一個(gè)優(yōu)選實(shí)施例,當(dāng)請(qǐng)求處理的源數(shù)據(jù)到達(dá)后,如果源數(shù)據(jù)隊(duì)列已經(jīng)到達(dá)最大水位(隊(duì)列已滿),為了防止數(shù)據(jù)丟失,需要把溢出的數(shù)據(jù)緩存到磁盤(pán)、磁帶等外部存儲(chǔ)介質(zhì)中,當(dāng)源數(shù)據(jù)隊(duì)列有空閑時(shí),再將數(shù)據(jù)從外部存儲(chǔ)介質(zhì)載入源數(shù)據(jù)隊(duì)列處理。
在對(duì)外部介質(zhì)進(jìn)行溢出緩存的讀寫(xiě)時(shí),為了提升外部存儲(chǔ)介質(zhì)的使用效率,從源數(shù)據(jù)隊(duì)列溢出的數(shù)據(jù)并不直接寫(xiě)入到外部介質(zhì)中,而先寫(xiě)入到內(nèi)存中設(shè)置的一個(gè)緩沖器,緩沖器的大小可配置,例如為了達(dá)到最優(yōu)讀寫(xiě)效率,基本與源數(shù)據(jù)塊的大小一致,等到緩沖器滿后,再將源數(shù)據(jù)寫(xiě)入外部存儲(chǔ)介質(zhì)。相應(yīng)地,當(dāng)源數(shù)據(jù)隊(duì)列空閑時(shí),將外部存儲(chǔ)介質(zhì)中的源數(shù)據(jù)按塊為單位寫(xiě)入內(nèi)存。
3.對(duì)源數(shù)據(jù)隊(duì)列進(jìn)行多線程并行處理,將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)在本發(fā)明中,每一個(gè)線程都是一個(gè)獨(dú)立的數(shù)據(jù)處理應(yīng)用邏輯,每個(gè)線程以源數(shù)據(jù)塊為單位來(lái)進(jìn)行邏輯處理。每個(gè)線程實(shí)時(shí)輪詢?cè)磾?shù)據(jù)隊(duì)列,從源數(shù)據(jù)隊(duì)列中獲取一塊源數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)換成目標(biāo)數(shù)據(jù)。
線程數(shù)目可以與源數(shù)據(jù)隊(duì)列的大小以及整個(gè)系統(tǒng)的實(shí)際資源狀況相結(jié)合靈活、合理配置,以發(fā)揮整個(gè)系統(tǒng)的最大效率。一般來(lái)說(shuō),線程數(shù)目與源數(shù)據(jù)的數(shù)據(jù)塊大小成反比,數(shù)據(jù)塊越大,所需的線程數(shù)就越少,反之?dāng)?shù)據(jù)塊越小,所需的線程數(shù)就要相應(yīng)增加。同時(shí),線程數(shù)目與源數(shù)據(jù)的數(shù)據(jù)塊大小的配置關(guān)系取決于硬件環(huán)境,是空間和效率的取舍關(guān)系,如果硬件執(zhí)行效率比較高(CPU比較快),就可以多開(kāi)一些線程,節(jié)省內(nèi)存的存儲(chǔ)空間,如果CPU性能較低,就需要采取空間換效率的措施,少開(kāi)一些線程。
當(dāng)線程對(duì)源數(shù)據(jù)隊(duì)列進(jìn)行輪詢時(shí),如果當(dāng)前線程輪詢不到數(shù)據(jù),就不作處理;如果輪詢到的數(shù)據(jù)不滿一塊,線程在超時(shí)時(shí)間進(jìn)行等待,如果到達(dá)超時(shí)時(shí)間,仍然不能湊足一塊數(shù)據(jù),就按當(dāng)前獲得的數(shù)據(jù)進(jìn)行處理。
4.將目標(biāo)數(shù)據(jù)放入目標(biāo)數(shù)據(jù)隊(duì)列作為本發(fā)明的一個(gè)實(shí)施例,為了減少外設(shè)I/O(輸入/輸出)次數(shù)和系統(tǒng)開(kāi)銷,在將目標(biāo)數(shù)據(jù)存入數(shù)據(jù)庫(kù)前,先放入目標(biāo)數(shù)據(jù)隊(duì)列進(jìn)行緩存。
目標(biāo)數(shù)據(jù)隊(duì)列與源數(shù)據(jù)隊(duì)列并不具有一一對(duì)應(yīng)的關(guān)系。在本發(fā)明中,在源數(shù)據(jù)塊轉(zhuǎn)變?yōu)槟繕?biāo)數(shù)據(jù)的過(guò)程中,按照一定的比例將源數(shù)據(jù)進(jìn)行壓縮組裝,將若干個(gè)源數(shù)據(jù)進(jìn)行邏輯處理后封裝到一個(gè)目標(biāo)數(shù)據(jù)中,例如將源數(shù)據(jù)轉(zhuǎn)變成批插入SQL語(yǔ)句等,以減少目標(biāo)數(shù)據(jù)后續(xù)存儲(chǔ)的開(kāi)銷,同樣的一次磁盤(pán)訪問(wèn),可以存儲(chǔ)更多的數(shù)據(jù),也從一定程度上緩解了數(shù)據(jù)庫(kù)連接等訪問(wèn)資源的爭(zhēng)奪。
目標(biāo)數(shù)據(jù)隊(duì)列同樣也有最大、最小水位,它的最大水位一定程度上決定了整個(gè)系統(tǒng)瞬時(shí)的數(shù)據(jù)容納能力,但通過(guò)將源數(shù)據(jù)到目標(biāo)數(shù)據(jù)壓縮組裝以及合理地設(shè)置目標(biāo)數(shù)據(jù)列表的水位,可以解決整個(gè)系統(tǒng)瞬時(shí)的數(shù)據(jù)容納能力。
圖2示出了源數(shù)據(jù)和目標(biāo)數(shù)據(jù)壓縮封裝比例的示意,n的大小視實(shí)際情況而定,一般同源數(shù)據(jù)一塊的大小(也就是一個(gè)線程處理的源數(shù)據(jù)規(guī)模)相等是比較合適的,而目標(biāo)數(shù)據(jù)隊(duì)列的最大水位需根據(jù)實(shí)際的邏輯處理線程數(shù)確定,一般以實(shí)際線程數(shù)的3-5倍比較適宜,太高會(huì)造成內(nèi)存空間的浪費(fèi),太低容易引起系統(tǒng)內(nèi)部數(shù)據(jù)通路的堵塞。
5.將目標(biāo)數(shù)據(jù)存入數(shù)據(jù)庫(kù)作為本發(fā)明的一個(gè)實(shí)施例,目標(biāo)數(shù)據(jù)在數(shù)據(jù)庫(kù)的存儲(chǔ)采用分表存儲(chǔ)的方式。首先,要確定一張數(shù)據(jù)庫(kù)表的存儲(chǔ)上限,達(dá)到上限后需要新建表存儲(chǔ)。相應(yīng)的,由于通過(guò)多個(gè)數(shù)據(jù)表存儲(chǔ)數(shù)據(jù),為了能夠更快地找到對(duì)應(yīng)數(shù)據(jù)所在的數(shù)據(jù)表,建立索引表,對(duì)所有的數(shù)據(jù)表進(jìn)行索引。索引表可以根據(jù)多種參數(shù)建立,比如根據(jù)時(shí)間字段,可以建立一張數(shù)據(jù)表和時(shí)間的索引表,這種數(shù)據(jù)表設(shè)計(jì)方案,需要嚴(yán)格要求表數(shù)據(jù)的存放,如上所述的時(shí)間表索引,就要求每張數(shù)據(jù)表中數(shù)據(jù)的時(shí)間字段一定要落在索引表對(duì)應(yīng)記錄的起始終止時(shí)間之間,而不允許別的時(shí)間段的數(shù)據(jù)存放到本表中。通過(guò)索引表,對(duì)數(shù)據(jù)庫(kù)的查詢就可以將范圍縮小到一張或幾張數(shù)據(jù)表中,而不是整個(gè)數(shù)據(jù)表的集合,從而提高了數(shù)據(jù)的查詢速度。
同時(shí),對(duì)于數(shù)據(jù)表中的字段,按照查詢檢索的實(shí)際場(chǎng)景,對(duì)于一些常用查詢的關(guān)鍵字段可以建立各級(jí)數(shù)據(jù)庫(kù)索引,可以在一定范圍內(nèi)顯著地提高數(shù)據(jù)的查詢效率。
在實(shí)際海量數(shù)據(jù)的檢索過(guò)程中,一次查詢的數(shù)據(jù)量往往比較大,不適合一次性顯示給用戶。作為本發(fā)明的一個(gè)優(yōu)選實(shí)施例,首先配置用戶單頁(yè)顯示的數(shù)據(jù)記錄個(gè)數(shù),在數(shù)據(jù)庫(kù)接受到查詢請(qǐng)求以后,先在數(shù)據(jù)庫(kù)中計(jì)算本次查詢請(qǐng)求的規(guī)模(記錄總數(shù)),然后通過(guò)查詢到的數(shù)據(jù)規(guī)模以及已經(jīng)配置的單頁(yè)顯示記錄數(shù),可以計(jì)算出本次查詢一共要分多少頁(yè)顯示,然后一次只從數(shù)據(jù)庫(kù)查詢一頁(yè)的數(shù)據(jù)顯示給用戶,同時(shí)記住本次查詢的起始和終止位置,以供后續(xù)上/下翻頁(yè)查詢使用。采用這種分頁(yè)方法,減少了單次查詢的數(shù)據(jù)規(guī)模,降低了對(duì)系統(tǒng)的性能要求,而且查詢手段較為靈活,不需要系統(tǒng)為緩存查詢出來(lái)的數(shù)據(jù)提供額外的開(kāi)銷。
6.對(duì)數(shù)據(jù)庫(kù)進(jìn)行定時(shí)配置和維護(hù)。
由于數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)量龐大,為了提高數(shù)據(jù)庫(kù)的存儲(chǔ)效率,本發(fā)明對(duì)數(shù)據(jù)庫(kù)定時(shí)進(jìn)行維護(hù),例如定期對(duì)數(shù)據(jù)表進(jìn)行合并和刪除,對(duì)一些時(shí)間比較久的數(shù)據(jù)表可以將其合并,以減少數(shù)據(jù)查詢過(guò)程中數(shù)據(jù)表的調(diào)用開(kāi)銷,同時(shí)刪除一些已經(jīng)超出?;钇诘臄?shù)據(jù)表。另外,還可以定期清理數(shù)據(jù)庫(kù)的日志,釋放數(shù)據(jù)庫(kù)空間,以保持?jǐn)?shù)據(jù)庫(kù)的運(yùn)行活力。
綜上所述,本發(fā)明利用程序建模、數(shù)據(jù)建模以及數(shù)據(jù)庫(kù)使用上的一些優(yōu)化操作來(lái)構(gòu)成海量數(shù)據(jù)存儲(chǔ)檢索的解決方案,實(shí)現(xiàn)成本和復(fù)雜度比較低,可以作為其他高成本、高復(fù)雜度解決方案,例如數(shù)據(jù)倉(cāng)庫(kù)的一種替代方案,尤其適用于解決中小企業(yè)級(jí)應(yīng)用過(guò)程中海量數(shù)據(jù)的處理,并可以作為海量數(shù)據(jù)存儲(chǔ)檢索的設(shè)計(jì)參照模型。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種海量數(shù)據(jù)的處理方法,其特征在于,所述方法包括下述步驟A.接收請(qǐng)求處理的源數(shù)據(jù),將所述源數(shù)據(jù)分塊存入源數(shù)據(jù)隊(duì)列;B.對(duì)所述源數(shù)據(jù)隊(duì)列中的數(shù)據(jù)塊進(jìn)行處理,將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù);C.將所述目標(biāo)數(shù)據(jù)存入數(shù)據(jù)庫(kù)。
2.如權(quán)利要求1所述的海量數(shù)據(jù)的處理方法,其特征在于,所述步驟A進(jìn)一步包括提取所述源數(shù)據(jù)的原始信息,根據(jù)所述原始信息將所述源數(shù)據(jù)分塊處理,所述原始信息包括所述源數(shù)據(jù)數(shù)據(jù)包的大小、時(shí)間或幀頭附加信息。
3.如權(quán)利要求1所述的海量數(shù)據(jù)的處理方法,其特征在于,所述步驟A進(jìn)一步包括當(dāng)源數(shù)據(jù)隊(duì)列達(dá)到最大水位時(shí),緩存溢出的數(shù)據(jù),并在源數(shù)據(jù)隊(duì)列空閑時(shí),將緩存的數(shù)據(jù)補(bǔ)充進(jìn)源數(shù)據(jù)隊(duì)列。
4.如權(quán)利要求3所述的海量數(shù)據(jù)的處理方法,其特征在于,所述緩存溢出的數(shù)據(jù)的步驟進(jìn)一步包括將溢出的數(shù)據(jù)放入在內(nèi)存中設(shè)置的緩沖器,當(dāng)緩沖器滿后將數(shù)據(jù)寫(xiě)入外部存儲(chǔ)介質(zhì)進(jìn)行緩存。
5.如權(quán)利要求1所述的海量數(shù)據(jù)的處理方法,其特征在于,所述步驟B進(jìn)一步包括通過(guò)多個(gè)線程對(duì)所述源數(shù)據(jù)隊(duì)列進(jìn)行并行輪詢處理,每個(gè)線程以源數(shù)據(jù)塊為單位,將輪詢獲取的源數(shù)據(jù)塊轉(zhuǎn)換為目標(biāo)數(shù)據(jù)。
6.如權(quán)利要求1所述的海量數(shù)據(jù)的處理方法,其特征在于,所述步驟B進(jìn)一步包括在將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)的過(guò)程中,將多個(gè)源數(shù)據(jù)壓縮封裝為一個(gè)目標(biāo)數(shù)據(jù),并將所述目標(biāo)數(shù)據(jù)存入目標(biāo)數(shù)據(jù)隊(duì)列。
7.如權(quán)利要求1所述的海量數(shù)據(jù)的處理方法,其特征在于,所述步驟C進(jìn)一步包括設(shè)置存儲(chǔ)所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)表,以及對(duì)所述數(shù)據(jù)表進(jìn)行索引的索引表。
8.如權(quán)利要求7所述的海量數(shù)據(jù)的處理方法,其特征在于,所述方法進(jìn)一步包括D.對(duì)數(shù)據(jù)庫(kù)進(jìn)行定時(shí)配置和維護(hù)。
9.如權(quán)利要求8所述的海量數(shù)據(jù)的處理方法,其特征在于,所述步驟D進(jìn)一步包括根據(jù)數(shù)據(jù)表時(shí)間定期對(duì)數(shù)據(jù)表進(jìn)行合并和刪除,以及定期清理數(shù)據(jù)庫(kù)日志。
10.如權(quán)利要求1所述的海量數(shù)據(jù)的處理方法,其特征在于,所述步驟C進(jìn)一步包括設(shè)置單頁(yè)顯示記錄數(shù),在用戶查詢數(shù)據(jù)時(shí),根據(jù)設(shè)置的單頁(yè)顯示記錄數(shù)和用戶查詢的數(shù)據(jù)總記錄數(shù),向用戶分頁(yè)輸出查詢記錄。
全文摘要
本發(fā)明適用于數(shù)據(jù)處理領(lǐng)域,提供了一種海量數(shù)據(jù)的處理方法,所述方法包括下述步驟A.接收請(qǐng)求處理的源數(shù)據(jù),將所述源數(shù)據(jù)分塊存入源數(shù)據(jù)隊(duì)列;B.對(duì)所述源數(shù)據(jù)隊(duì)列中的數(shù)據(jù)塊進(jìn)行處理,將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù);C.將所述目標(biāo)數(shù)據(jù)存入數(shù)據(jù)庫(kù)。本發(fā)明在海量數(shù)據(jù)的處理過(guò)程中,通過(guò)對(duì)應(yīng)用處理邏輯以及數(shù)據(jù)庫(kù)存儲(chǔ)操作進(jìn)行優(yōu)化,提升了整個(gè)應(yīng)用系統(tǒng)對(duì)海量數(shù)據(jù)的吞吐能力,實(shí)現(xiàn)簡(jiǎn)單,成本低。
文檔編號(hào)G06F17/30GK1858735SQ20051012146
公開(kāi)日2006年11月8日 申請(qǐng)日期2005年12月30日 優(yōu)先權(quán)日2005年12月30日
發(fā)明者陳輝, 周翔, 王健 申請(qǐng)人:華為技術(shù)有限公司