自主研發(fā) VS 開源系統(tǒng)
我的觀點始終保持不變的,當能用社區(qū)產(chǎn)品解決問題的,完全就可以用社區(qū)的產(chǎn)品,最近1年,spark、docker等技術(shù)發(fā)展迅速,完全沒有必要去自己寫一套。我認為有兩個情況下需要自己寫,第一,目前的產(chǎn)品無法滿足現(xiàn)在的需求,在阿里(就目前),比如:支付寶大規(guī)模圖數(shù)據(jù)庫,阿里媽媽、搜索場景下超高緯度特征機器學習。目前內(nèi)部用開源的產(chǎn)品做了很多嘗試,均沒有很好解決問題,最后還是自研一套平臺(當然實現(xiàn)也不是完全自己搞,部件能用開源的還是用開源)。第二,為了領(lǐng)先研究,有革命性的,比如:量子計算,GPU計算,也就是從理論開始,并沒有特別的業(yè)務場景,最后能跨越一個時代的,不過這個特別難,基本也只有公司營收沒有問題才可能成立研究院之類的部門。目前在大數(shù)據(jù)領(lǐng)域,華為、星壞,甚至國外的微軟、IBM之類的巨頭都基本是投資hadoop之類的軟件棧,可以說大數(shù)據(jù)系統(tǒng)是你中有我,我中有你的,小公司還是請直接用hadoop或者用大公司的產(chǎn)品,大公司還是用了hadoop,阿云當年投資做飛天的時候,hadoop還是嬰兒,只是如今發(fā)展實在太快。
sql vs sql+類似spark用scala等作為編程語言
微軟開發(fā)出了T-SQL或者類似的sql script,用戶可以用其實現(xiàn)自己的業(yè)務邏輯,優(yōu)化層可以優(yōu)化。如果是spark之類的,那么優(yōu)化層不能感知udf層面的邏輯,無法優(yōu)化,其二中間的會有串行執(zhí)行的部分,不能做到最優(yōu)。如果用戶都能用sql script實現(xiàn)業(yè)務邏輯,那么怎么講都能做到最優(yōu)。
不過目前社區(qū)的spark、hadoop、flink均不是sql script去實現(xiàn),只能說盡量能讓優(yōu)化層優(yōu)化。為什么呢?可能因為程序員喜歡用java、python之類的語言,還是因為開始業(yè)務系統(tǒng)使用java、python之類的,所以順理成章就這么去實現(xiàn)開發(fā)了。當然是否可以造一個大數(shù)據(jù)語言,讓大家用此語言,優(yōu)化層直接就是包含解釋器了。理論上肯定是可以的,不過難度確實也很不小,關(guān)鍵還是需要獲得市場的認可。有句話說,最流行的未必是最優(yōu)的。另外,最優(yōu)帶來的成本誰也說不清楚。
統(tǒng)一分析型引擎
spark、flink等產(chǎn)品作為統(tǒng)一引擎,能處理ETL、流、計算學習、圖計算等各種各樣的場景,這個是甚好的。很多業(yè)務為了解決問題往往需要投資很多技術(shù),產(chǎn)品。如:機器學習用mpi,你得去學習寫c/c++ , 流式計算得學習jstorm,一套新的api。這個還不是最大的問題,最大的問題往往是不同產(chǎn)品之間往往需要銜接,數(shù)據(jù)需要用戶感知的落地,從而系統(tǒng)做起來很復雜。不過對于一些場景,往往是一些特別的場景還是需要專有系統(tǒng)的,如:低延遲的流 高緯度計算 特別的性能的機器學習等。
統(tǒng)一OLTP與OLAP
目前星壞也是號稱可以在大數(shù)據(jù)引擎上支持傳統(tǒng)數(shù)據(jù)庫的語法的,甚至可以支持部分的事務。阿里內(nèi)部一些產(chǎn)品也在嘗試統(tǒng)一。目前OLTP與OLAP的界限也在慢慢模糊,OLTP也可以支持快上TB的數(shù)據(jù)查詢。一般有兩個做法,一套語法,兩個不同的實現(xiàn),也就是ifelse,對于用戶看起來可能是一個。另外就是完全一套代碼實現(xiàn),此我還沒有看到。對于第一種,可能的實現(xiàn)方案基本是底層用mysql等傳統(tǒng)數(shù)據(jù)庫作為存儲,上層有DAG等決策調(diào)度,做到能跨機join。不過目前明確是OLAP不僅僅就是SQL,也許這個事情能解決一部分的需求,但是不可能完全替代傳統(tǒng)的hadoop的。
自建hadoop、EMR、ODPS
目前阿里也是支持EMR的,在阿里云官網(wǎng)都有EMR、ODPS的產(chǎn)品介紹。一般來看,EMR、ODPS肯定比自建hadoop成本低的,因為從原理來講是彈性的,且自己都無需運維,除非公司太黑,收費過高。EMR就是hadoop生態(tài)的托管服務,用戶可以申請多少個虛擬機,啥時候多啥時候少來彈性計算的。ODPS是阿里巴巴自主研發(fā)的產(chǎn)品,ODPS是在物理機器上,用戶租用多少cpu,多少內(nèi)存為資源,在運行中也可以調(diào)整quota來實現(xiàn)彈性計算的。目前我是利益相關(guān)方,所以就不回答這個問題了。
數(shù)據(jù)分享
經(jīng)常跟一些同學聊,用戶會把數(shù)據(jù)分享出來嗎?在阿里內(nèi)部,不同部門之間是經(jīng)常共享數(shù)據(jù)的。但是社會呢?不知道,也許會,也許不會。也許2016年會火,也許再過10年吧。?大數(shù)據(jù)應用也不意味著一定需要交換,數(shù)據(jù)交換往往意味著會產(chǎn)生更大的價值。云計算,云是載體,計算發(fā)揮價值,阿里云的宣傳語是為了無法的計算的價值。一是,傳統(tǒng)企業(yè)的業(yè)務系統(tǒng)上云及新的企業(yè)的業(yè)務系統(tǒng)直接生長在云上,產(chǎn)生數(shù)據(jù),后到大數(shù)據(jù)系統(tǒng)中分析,一般給使用者決策,反哺業(yè)務系統(tǒng)。此點業(yè)務系統(tǒng)是核心,大數(shù)據(jù)分析系統(tǒng)是輔助的。二是,業(yè)務系統(tǒng)還在在線下,數(shù)據(jù)上云,分析。三是,物聯(lián)網(wǎng)產(chǎn)生的數(shù)據(jù)直接上云,分析。四是,大數(shù)據(jù)業(yè)務分析,也就是大數(shù)據(jù)分析系統(tǒng)就是其核心業(yè)務。前面三者基本都是分析自生的數(shù)據(jù),一般無需交換。最后一類,本身沒有數(shù)據(jù),基本都是別人的數(shù)據(jù),要么是公共的社會的數(shù)據(jù),要么是購買別家的數(shù)據(jù),數(shù)據(jù)交換的價值在此發(fā)生。