資源有限的小公司可以進(jìn)行大數(shù)據(jù)分析,BEAS構(gòu)建在現(xiàn)有的商業(yè)DBMS之上,為小公司提供了查詢(xún)大數(shù)據(jù)的即時(shí)能力。
—中國(guó)科學(xué)院外籍院士、英國(guó)皇家學(xué)會(huì)院士、歐洲科學(xué)院院士,英國(guó)愛(ài)丁堡皇家學(xué)會(huì)院士、國(guó)際計(jì)算機(jī)學(xué)會(huì)會(huì)士樊文飛
數(shù)字經(jīng)濟(jì)離不開(kāi)大數(shù)據(jù)計(jì)算,下面我介紹一下關(guān)于大數(shù)據(jù)計(jì)算的挑戰(zhàn)和機(jī)遇。我從事的是計(jì)算機(jī)工作,具體來(lái)講是工業(yè)計(jì)算,給函數(shù)F、參數(shù)X做計(jì)算。在大數(shù)據(jù)環(huán)境下,用數(shù)據(jù)庫(kù)的術(shù)語(yǔ)來(lái)講,Q是查詢(xún),相當(dāng)于函數(shù)F,D是數(shù)據(jù),相當(dāng)于參數(shù)X。在傳統(tǒng)計(jì)算機(jī)數(shù)據(jù)庫(kù)領(lǐng)域,我們處理GB級(jí)數(shù)據(jù),量級(jí)達(dá)10的9次方。在大數(shù)據(jù)環(huán)境下,我們要處理PB級(jí)乃至EB級(jí)數(shù)據(jù),量級(jí)達(dá)10的15次方乃至18次方。那么有一個(gè)問(wèn)題,量的變化是不是能帶來(lái)質(zhì)的變化?
的確,大數(shù)據(jù)量的變化給技術(shù)理論及應(yīng)用技術(shù)都帶來(lái)了變化。以Facebook為例,假設(shè)我要去紐約,想找一個(gè)餐館并查詢(xún)餐館的收費(fèi)情況,而我的朋友今年5月份去過(guò)這個(gè)餐館?,F(xiàn)在有三條記錄:第一,Pid1是Pid2的朋友;第二是就餐記錄,某人于某年某月某日,在某個(gè)餐館就餐;第三是餐館記錄,包括餐館名稱(chēng)、平均價(jià)格等。這些是常見(jiàn)的數(shù)據(jù),我們可以在數(shù)據(jù)庫(kù)中進(jìn)行簡(jiǎn)單查詢(xún),叫作SPC(統(tǒng)計(jì)過(guò)程控制)。那么我們?nèi)绾芜M(jìn)行查詢(xún)?這是一個(gè)傳統(tǒng)的查詢(xún)計(jì)劃。第一步,先通過(guò)掃描朋友列表,找到我的朋友,把他放在表格里,這就是F;第二步,查找朋友的就餐記錄,找到他5月份就餐的餐館,這是嵌套循環(huán)。我用傳統(tǒng)計(jì)算機(jī)數(shù)據(jù)庫(kù)的技術(shù),通過(guò)組件可以實(shí)現(xiàn)上述的查詢(xún)功能。
現(xiàn)在的問(wèn)題是增加了數(shù)據(jù)量,查詢(xún)計(jì)劃能否行得通?Facebook訓(xùn)練了幾千億的外鍵,而且有十億多的用戶(hù)。兩年前Facebook的數(shù)據(jù)量高達(dá)300PB,每天以半PB級(jí)的量在增長(zhǎng),這會(huì)帶來(lái)怎樣的挑戰(zhàn)?我能找到最快的固態(tài)硬盤(pán)的最大容量是15TB,每秒鐘掃描容量達(dá)到12GB。假設(shè)我的數(shù)據(jù)量沒(méi)有300PB,只有15TB,某人只有100個(gè)朋友,那么我需要多長(zhǎng)時(shí)間查詢(xún)出結(jié)果?首先,做一個(gè)線(xiàn)性?huà)呙?,掃描一次需?0分鐘,其次,做嵌套循環(huán)需要2000分鐘,總共是33小時(shí),約1.4天。這個(gè)查詢(xún)很簡(jiǎn)單,何況要處理的是300PB的數(shù)據(jù),而不是15TB的數(shù)據(jù)。
我們?cè)倏纯磦鹘y(tǒng)計(jì)算機(jī)的計(jì)算復(fù)雜性存儲(chǔ)理論,也就是把計(jì)算問(wèn)題分類(lèi),易解問(wèn)題可以用多項(xiàng)式表示,如果不能用多項(xiàng)式表示,我們稱(chēng)之為NP-hard或者Intractable。這是個(gè)傳統(tǒng)理論,沿用了50多年。我們看看在大數(shù)據(jù)環(huán)境下是不是發(fā)生了變化。15TB的數(shù)據(jù)計(jì)算要用1.4天,復(fù)雜性是N的2次方,按傳統(tǒng)理論來(lái)說(shuō)是易解問(wèn)題。易解問(wèn)題是P,在大數(shù)據(jù)環(huán)境下,P的一部分是易解的,另一部分是不易解的。傳統(tǒng)的計(jì)算能力應(yīng)用了50多年,但在大數(shù)據(jù)環(huán)境下需要更新。
的確,大數(shù)據(jù)給傳統(tǒng)計(jì)算理論和計(jì)算基礎(chǔ)帶來(lái)了新的挑戰(zhàn)。工業(yè)界如何應(yīng)對(duì)挑戰(zhàn)呢?用大數(shù)據(jù)。我在Facebook工作的學(xué)生告訴我,在Facebook,計(jì)算查詢(xún)平均需要5萬(wàn)臺(tái)機(jī)器同時(shí)運(yùn)作,如果說(shuō)計(jì)算時(shí)間可以被多個(gè)處理器平均分擔(dān),那么剛才這個(gè)查詢(xún)的完成時(shí)間為2.4秒。但是這一類(lèi)計(jì)算只用于比較特殊的查詢(xún)。如果使用并行計(jì)算,假設(shè)處理器越多,計(jì)算得越快。但并行計(jì)算不是萬(wàn)能的,對(duì)于資源有限的小公司來(lái)說(shuō),這不能解決問(wèn)題。使用傳統(tǒng)的計(jì)算理論,只能跟在別人后面走,未必會(huì)拼得過(guò)別人幾十年的積累,所以我們需要新的理論和方法。
因此,我們提出了有機(jī)計(jì)算,可以理解為我們有大數(shù)據(jù),要計(jì)算查詢(xún),雖然數(shù)據(jù)集很大,但不必查詢(xún)所有的數(shù)據(jù)。在有些情況下可以有一個(gè)小數(shù)據(jù)集,小數(shù)據(jù)集的計(jì)算結(jié)果和大數(shù)據(jù)集是一樣的。這個(gè)小數(shù)據(jù)集的量與大數(shù)據(jù)集是無(wú)關(guān)的,如果能找到小的數(shù)據(jù)集,就可以把大數(shù)據(jù)變小,把大數(shù)據(jù)計(jì)算變成小數(shù)據(jù)查詢(xún),這就是有機(jī)計(jì)算。
難點(diǎn)在于如何找小數(shù)據(jù)集?我們提出了一個(gè)理念—Access schema。也就是說(shuō)無(wú)論數(shù)據(jù)集有多大,都可以在有限的資源下做大數(shù)據(jù)計(jì)算。以Facebook為例,它規(guī)定每個(gè)人的朋友數(shù)量不超過(guò)5000個(gè)。首先,可以給每個(gè)人建一個(gè)索引,朋友數(shù)量最多5000個(gè),然后設(shè)置每個(gè)人每個(gè)月最多用晚餐31次,這樣就可以根據(jù)ID找到其餐館價(jià)格,這就是所說(shuō)的把大數(shù)據(jù)變小,從而解決查詢(xún)問(wèn)題。
我們基于這個(gè)理論開(kāi)始做研究,并把它做成運(yùn)行系統(tǒng),我們發(fā)現(xiàn)77%的SPC Queries是有機(jī)系統(tǒng)。后來(lái)我們用單機(jī)來(lái)做,一般大數(shù)據(jù)的查詢(xún)能在9秒鐘之內(nèi)完成,然而傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)耗時(shí)14小時(shí)也不能完成。華為公司用了我們的系統(tǒng)以后,發(fā)現(xiàn)查詢(xún)效率提高了很多。學(xué)術(shù)界認(rèn)為我們改變的是有機(jī)計(jì)算。
我們還提了另一個(gè)理念—數(shù)據(jù)驅(qū)動(dòng)的近似算法。我們根據(jù)資源擬定一個(gè)資源比率,把小數(shù)據(jù)集的計(jì)算結(jié)果作為近似計(jì)算結(jié)果,并且保證所有計(jì)算過(guò)程中X不超過(guò)這個(gè)數(shù)據(jù),而且能夠保證精度。這里的精度和傳統(tǒng)定義不一樣,不再是概率,而是精確解,能夠保證每個(gè)近似解都存在一個(gè)精確解,并使他們保持在一定的范圍之內(nèi)。在大數(shù)據(jù)資源有限的情況下,這可以為我們提供實(shí)時(shí)分析。
現(xiàn)在我們的團(tuán)隊(duì)準(zhǔn)備把這套理論做成數(shù)據(jù)庫(kù)系統(tǒng),我們的團(tuán)隊(duì)是一支細(xì)分領(lǐng)域領(lǐng)軍人員全配置的研發(fā)團(tuán)隊(duì)。我們的數(shù)據(jù)庫(kù)系統(tǒng)預(yù)計(jì)明年推出,希望能給資源有限的小公司提供大數(shù)據(jù)處理能力,希望他能真正成為中國(guó)自研的數(shù)據(jù)庫(kù)系統(tǒng),歡迎大家使用,謝謝!
(根據(jù)演講內(nèi)容整理,未經(jīng)本人審核)