大數(shù)據(jù)處理關(guān)鍵技術(shù)一般包括:大數(shù)據(jù)采集、大數(shù)據(jù)預(yù)處理、大數(shù)據(jù)存儲(chǔ)及管理、大數(shù)據(jù)分析及挖掘、大數(shù)據(jù)展現(xiàn)和應(yīng)用(大數(shù)據(jù)檢索、大數(shù)據(jù)可視化、大數(shù)據(jù)應(yīng)用、大數(shù)據(jù)安全等)。而以上這些關(guān)鍵技術(shù)都離不開底層的應(yīng)用技術(shù),鍵值對(duì)map的性能。
對(duì)于c++程序來說?map的使用無處不在。影響程序性能的瓶頸也往往是map的性能。尤其在大數(shù)據(jù)情況下,以及業(yè)務(wù)關(guān)聯(lián)緊密而無法實(shí)現(xiàn)數(shù)據(jù)分發(fā)和并行處理的情況。map的性能就成了最關(guān)鍵的技術(shù)。
一、大數(shù)據(jù)采集技術(shù)
???在電信行業(yè)和信息安全行業(yè)的工作經(jīng)歷,我是和底層大數(shù)據(jù)采集打交道,尤其信息安全行業(yè)數(shù)據(jù)最復(fù)雜,都離不開map。
比如:ip表、mac表,電話號(hào)碼表、域名解析表、身份證號(hào)碼表的查詢、病毒木馬的特征碼的云查殺等等。
stl庫的map采用二分查找,性能最差。Google的哈希map性能和內(nèi)存目前是最優(yōu)的,但是有重復(fù)碰撞的機(jī)率。現(xiàn)在大數(shù)據(jù)?基本上不用有碰撞幾率的map。
當(dāng)然,這些情況可以使用并發(fā)的形式來解決,但是對(duì)于網(wǎng)絡(luò)數(shù)據(jù)包每秒高達(dá)2萬以上的情況,以及業(yè)務(wù)關(guān)聯(lián)緊密無法分發(fā)的情況,大數(shù)據(jù)就只能本地化處理。
比如電信信令的sccp層的組包流程,網(wǎng)絡(luò)協(xié)議的tcp和ip層的組包流程。這些必須靠map本地化來完成。
(大家可以加入愛好集結(jié),一同交流:342836117) 歡迎交流: (老師q:858288017)
二、大數(shù)據(jù)預(yù)處理技術(shù)
數(shù)據(jù)庫的關(guān)聯(lián)功能是性能超慢的,因此想要實(shí)現(xiàn)大數(shù)據(jù)分析的實(shí)時(shí)性,預(yù)處理是很關(guān)鍵的步驟,我在電信時(shí),處理的是將一個(gè)通話流程完整的關(guān)聯(lián)起來,實(shí)現(xiàn)電話通話過程的實(shí)時(shí)性關(guān)聯(lián),如果將上億條數(shù)據(jù)放到數(shù)據(jù)庫中做關(guān)聯(lián),客戶的體驗(yàn)效果可想而知。
要保證每秒幾萬個(gè)信令數(shù)據(jù)包能全部處理完成,就必須使用高效的map技術(shù),對(duì)相同業(yè)務(wù)id的信令數(shù)據(jù)進(jìn)行插入,查詢以及完成關(guān)聯(lián)后從map表中刪除。
三、大數(shù)據(jù)存儲(chǔ)及管理技術(shù)
??針對(duì)web2.0的頻繁應(yīng)用,key-value的數(shù)據(jù)庫具有非常高效的讀寫性能,尤其在大數(shù)據(jù)情況下。Map型的數(shù)據(jù)庫沒有關(guān)系型數(shù)據(jù)庫那么復(fù)雜的結(jié)構(gòu),性能優(yōu)越。
介紹:
pwwMap是一種全新算法概念的map技術(shù)。它包含三種map。
memmap,hashmap適合用于大數(shù)據(jù)采集和預(yù)處理分析,diskmap適合做nosql數(shù)據(jù)庫。
1、memmap??支持插入,修改,刪除,查詢等日常操作。適合任何場(chǎng)合下使用。采用獨(dú)特的索引技術(shù),性能和內(nèi)存比stl庫的map高百倍以上。性能和google的哈希map相差無幾,且無碰撞機(jī)率。
2、hashmap??僅僅支持查詢。適合高速查詢的場(chǎng)合。性能比目前的google哈希算法快100倍。而且無碰撞機(jī)率。
3、diskmap?支持插入,修改,刪除,查詢等日常操作,類似nosql數(shù)據(jù)庫的功能。其數(shù)據(jù)量高達(dá)百億,查詢性能依舊強(qiáng)勁。對(duì)比google的leveldb技術(shù),優(yōu)勢(shì)明顯。而且其采用模板形式支持各種數(shù)據(jù)類型,不僅僅是string類型的數(shù)據(jù)。
程序使用pwwMap?最直接的效益就是?原來需要十個(gè)服務(wù)器解決的方案?現(xiàn)在只需要一個(gè)服務(wù)器。