軟件發(fā)展主要是兩件事:簡(jiǎn)單性和模塊化,簡(jiǎn)單是簡(jiǎn)化情況以解決問(wèn)題,模塊則是為了分工合作。大數(shù)據(jù)發(fā)展完美詮釋了這個(gè)過(guò)程。
大數(shù)據(jù),是在網(wǎng)頁(yè)檢索中發(fā)展起來(lái)的,其中關(guān)鍵是 Google,它奠定了大數(shù)據(jù)技術(shù)的基礎(chǔ)。
網(wǎng)頁(yè)檢索,海量數(shù)據(jù),面臨很多挑戰(zhàn)。
海量網(wǎng)頁(yè)存儲(chǔ),但現(xiàn)有存儲(chǔ)系統(tǒng),“貴”、“不易擴(kuò)展”、“數(shù)據(jù)存儲(chǔ)還不可靠”(注:Raid5重建,慢,且重建過(guò)程中壞盤,則就無(wú)法恢復(fù)了)。
Google據(jù)此,推出GFS分布式文件系統(tǒng),它有如下特點(diǎn):

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

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

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