var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://#/hm.js?bbed808a7e81aea9265f249f4cb59cdb"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();
軟件發(fā)展主要是兩件事:簡單性和模塊化,簡單是簡化情況以解決問題,模塊則是為了分工合作。大數(shù)據(jù)發(fā)展完美詮釋了這個過程。
大數(shù)據(jù),是在網(wǎng)頁檢索中發(fā)展起來的,其中關(guān)鍵是 Google,它奠定了大數(shù)據(jù)技術(shù)的基礎(chǔ)。
網(wǎng)頁檢索,海量數(shù)據(jù),面臨很多挑戰(zhàn)。
海量網(wǎng)頁存儲,但現(xiàn)有存儲系統(tǒng),“貴”、“不易擴(kuò)展”、“數(shù)據(jù)存儲還不可靠”(注:Raid5重建,慢,且重建過程中壞盤,則就無法恢復(fù)了)。
Google據(jù)此,推出GFS分布式文件系統(tǒng),它有如下特點:

■ 獨立元數(shù)據(jù)節(jié)點。
■ 不要Raid,多機存多份(使用廉價服務(wù)器群,并認(rèn)為故障是常態(tài))。
■ 不刪除,不修改,只添加和覆蓋(一次寫,多次讀)。
海量網(wǎng)頁需要建立索引,但現(xiàn)有數(shù)據(jù)庫寫入性能低,檢索起來慢。
分析,大數(shù)據(jù)下的讀寫模型和傳統(tǒng)數(shù)據(jù)庫有差異,傳統(tǒng)數(shù)據(jù)庫模型,大量時間在硬盤尋址上,所以Google推出BigTable非關(guān)系型數(shù)據(jù)庫,它有如下特點:
■不要多表 。
■不要回滾 。
■不要格式校驗 。
■不要觸發(fā)器 。
■批量讀數(shù)據(jù),減少磁頭尋址時間。
■數(shù)據(jù)容忍丟失,大量緩存,排好序一次寫。
■多費些硬盤,對關(guān)鍵值Hash,快速查找 。
網(wǎng)頁詞頻分析,需分布式計算,但編程復(fù)雜。

分析,計算過程中,大部分運算是矩陣運算,矩陣運算可分解為小矩陣乘積。據(jù)此,Google推出MapReduce計算框架,它簡化計算模型,只解決80%的場景問題,過程抽象如下:
■ Map過程:“數(shù)據(jù)分N份,每個數(shù)據(jù)獨立映射”,這部分可高度并發(fā)。
■ Reduce過程:數(shù)據(jù)集數(shù)據(jù)進(jìn)行合并運算。
■ 分布式調(diào)度框架:調(diào)度原則為“移動計算比移動數(shù)據(jù)更便宜”。

檢索中,用戶輸入和結(jié)果之間,是先知經(jīng)驗,有各種方法可定義經(jīng)驗,Google的方法是“知識圖譜”,觀點是“數(shù)據(jù)足夠,通過常用的統(tǒng)計,足可模擬出大部分人的先知經(jīng)驗”。
檢索中,多媒體理解的需求越來越多,Google提出的理念是:“數(shù)據(jù)比算法重要,如訓(xùn)練數(shù)據(jù)合理且充分,簡單的模型也可無限逼近現(xiàn)實”,近年來,語音和智能識別的突破方向,也說明了這種趨勢。
大數(shù)據(jù)的發(fā)展歷史,給我們很多啟示:“簡單拿來主義是不夠的,更重要的是,要以問題出發(fā),在行業(yè)理解的基礎(chǔ)上,模型充分簡單化,并在過程中,要有打破傳統(tǒng)思維的勇氣”。
