大數據那些事(12):Michael,Daniel和輪子
在大數據時代,最著名的故事莫過於造輪子,有些輪子很成功,早年的比如Hadoop,Hive,有些一般般,比如Pig,還有很多泯然眾人的消失在歷史長河裡。晚一點的有JStorm和Storm的故事,Spark和Flink的故事。
今天的故事比較偏門一些,我們來看看09年開始的造輪子的Michael,以及差不多同時代造輪子的Daniel. 在資料庫領域,我們通常會把從威斯康辛大學出來的以及和他們相關的一群人算成一個大的派系。與之對應的,在北美,可能只有Stanford了,儘管Stanford還是怎麼看怎麼稍微差那麼點底蘊。
Database的圈子裡有那麼幾個Michael,都算得上是這一大的派系,都各自赫赫有名。
最有名的當然是Michael Stonebraker,2015年圖靈獎獲得者。他的名字和Ingres,Postgres,Vertica,Informix等很多名字相關聯。是不是database領域裡面貢獻最深遠的人暫且不論,肯定是這個領域裡振臂一呼無數人崇拜,有著極其深遠影響力的人。
還有一個叫Michael Franklin的,伯克利和DataBricks的小朋友們都知道他,AMP lab的director。Spark上插了一腳做了Shark。傳聞隨著AMP Lab的取消這位大牛也將離開伯克利。早年從威斯康辛畢業,拿過無數獎。最著名的特點就是你做一個什麼東西,我就可以做得比你更快更好更強。和伯克利的另外一個大牛教授Joseph Hellerstein風格迥異。後者更擅長推陳出新做很多很新奇的東西,挖坑大牛,填坑最後靠後來者努力。
最後一個Michael是今天的主角Michael Carey。 Michael Carey,博士畢業於伯克利,早年在威斯康辛大學做教授,搞出了非常著名的Wisconsin Benchmark。後來去了IBM Almaden研究院工作了幾年,之後就開始了Industry的路程。做到了BEA的senior engineering director。BEA被Oracle買了以後不久就宣布重回學術界,在UC Irvine做了一名著名的professor。
2008年的時候,我通過industry的關係聽說這位決定干一票大的,要造個BigData的大輪子。從美國NSF搞了一大票的錢,然後又從各大公司那邊拐了不少。因為在database的圈子裡面,有那麼強的academia背景又有那麼強的公司經驗的人終究是少數。這一票大的是要從storage開始一路往上搭execution,搭language,搭object model,做一個一統天下的BigData platform。
大家都知道2008年算得上是多事之秋,美國經濟正迎接它奔潰前最後的高潮。Google因為MapReduce而燒了腦。另外一個Michael和他的小夥伴David Dewitt以 MapReduce:A Step Backward開始大鳴大放。這位也不甘落後的宣布,那麼天將降大任於斯人也,就降給我吧降給我吧,我要做一票大的,拉上一群學生做個大系統,涵蓋BigData的方方面面。
必須說,我對實幹家的尊重遠遠的多餘了嘴炮家。也必須說無論是過去還是現在,也可能是將來,我對Michael Carey一直都有很高的敬意。當然很多時候天將降大任於斯人也,都得看命。也許是耳灣這地方水土不太好,沒有出像伯克利那樣一個頂一萬個用的大牛,也就沒有出現一人獨寫Spark那樣牛氣轟天的事。經過5年多奮鬥,這個名字叫做AsterixDB的系統終於出來了。其實我一直有關注他們在做這個東西,包括早期的storage系統,execution層,algebra 層,後期的object model,programming language等等。他們在2014年的VLDB上發了一篇詳細介紹這個系統方方面面的論文。此外還有其他的論文介紹每個component的。論文挺有意思,值得一讀。
我在這裡就不詳細介紹整個系統了。簡單一點來說,底層stroage存的是object,用的也是大行其道的LSM-Tree。往上走搭了一層execution,比MapReduce通用,又沒Dryad那麼底層。然後實現了一些database常見的operator,比如說repartition-join啊, broadcast join啊之類的。上面是一層algebra,然後有若干個language可以編譯到這個algebra。最著名最重要的是AsterixDatabase Query Language, 簡稱AQL. 該系統用了semi-structure的結構支持類似於JSON object的類型。系統的語言更像XQuery而不是SQL。有各種adapter可以連其他的東西。按照論文的說法,他們把系統拿去給若干個公司實驗做小白鼠,這些實驗讓他們積累了豐富的經驗。
所謂時過境遷,這個系統在這個時候才拿出來,到底有多少影響力我想大家可見一斑。然而不管怎麼樣,Michael和他的團隊是實實在在的從下到上的搭了一個系統,我對於此非常的欽佩。我同樣也敬佩那些在做Spark或者Flink的人。很多時候學校里的研究創新只有踏踏實實的做了才實實在在的讓大家受益。
回頭我們看看Daniel。Daniel是Daniel Abadi,MIT畢業進了耶魯,算起來也是這一派系的人,和Michael Stonebraker關係應該不錯。我見到Daniel的次數和見到Michael的差不多,只是開會的時候多遠觀幾番。面對他的長輩們說的MapReduce這個爛東西是a step backward,聰明的Daniel也造了一個輪子,論文也發出來了,雖然我不知道那些評委怎麼審稿的。
Daniel做的那個東西叫做HadoopDB,非常高大上的名字。聰明的Daniel覺得既然MapReduce不靠譜,我們不還是有Postgress嗎?我可以把兩者雜交一下,讓Hadoop的每個Mapper或者Reducer上跑個Postgress的instance不就好了么。
於是這個HadoopDB就這樣的出爐了,論文發出來了,startup開起來了,頓時好不熱鬧。對Daniel的最深刻的印象是有次他訪問微軟研究院,給一個talk,底下坐了幾個老頭子,比如Paul Larson, Phil Berstein。Phil Berstein就問了一個問題,我不太記得這問題是什麼了,但是和transaction 有關。Phil算是這個領域的老祖宗了。但是問題大致就是「那個,你這個東西靠譜么?」
我想以聰明的Daniel能迅速的雜交Hadoop和Postgress的智商,這東西靠譜不靠譜大家心裡應該有數。而且大家都是Engineer,到底要花多少時間去寫這樣一個系統,肯定大家心裡也有桿尺。
當然最有意思的事情莫過於這個startup居然被人買了。我當時特別好奇是哪個傻子買了,一查,是Teradata。我頓時恍然大悟。以這幾年Teradata在大數據市場的表現,Teradata早就不是當年用一輛18輪大卡車去運送全球第一台能存儲1TB數據的機器的Teradata了。這場交易真是騙子把東西賣給傻子的最好例子。Teradata還買過一個叫Aster Data System的公司。這個公司做的產品怎麼樣我不記得,但是這個公司干過一件巨噁心的事情,對我和我的一些朋友。就是假裝電話面試,然後把對方自己不知道怎麼辦的database底層的一些問題當做面試題出過來,然後回答完,竊取了我們的腦力勞動之後再開始不搭理我們。既然Teradata能買了HadoopDB,買下Aster Data也不奇怪。想想就是這樣,好公司發現壞掉的時候其實早有跡象。
推薦閱讀:
※Spark 2017 歐洲技術峰會摘要(人工智慧)
※穩定和性能如何兼顧?58大數據平台的技術演進與實踐
※大數據那些事(26):你還愛我嗎之Stinger的努力