Hadoop本質(zhì)來說僅僅是個(gè)存儲模型,這個(gè)存儲模型附帶有一種計(jì)算模型(map reduce),國人一上來可能比較生疏,但是hadoop僅僅是個(gè)基礎(chǔ)模型。
數(shù)據(jù)庫技術(shù)興起的時(shí)候,那個(gè)時(shí)候連foxbase都很搶手,歷史證明了真正帶給人們價(jià)值的不是數(shù)據(jù)庫,而是ERP。IBM整個(gè)軟件體系不怎么搞應(yīng)用,搞得 都是基礎(chǔ),db2,websphere,rational,tivoli,lotus,結(jié)果一敗涂地,這可是很近的歷史事實(shí)了。我做個(gè)比較:
db2-mysql
websphere-nginx
rational-那個(gè)UML其實(shí)沒什么大的作用,并且各種替代品
tivoli-各種存儲,廉價(jià)硬盤就能把tivoli替代了
lotus-openoffice,并且支持智能手機(jī)
當(dāng)年IBM對這一套底氣很足的,我記得一篇報(bào)道說,人家IBM承諾不做應(yīng)用,意思是不和自己的合作伙伴競爭搞應(yīng)用軟件。
接著說大數(shù)據(jù),我曾經(jīng)去過一家公司面試,我當(dāng)時(shí)是搞數(shù)據(jù)庫的,感覺那個(gè)職位自己應(yīng)該是勝任的,結(jié)果面試官一上來就問,你知道哪些數(shù)據(jù)倉庫的模型?我一聽就傻了。搞得好像hadoop一出,數(shù)據(jù)庫就被秒殺了一樣。
hadoop本質(zhì)來說僅僅是個(gè)存儲模型,這個(gè)存儲模型附帶有一種計(jì)算模型(map/reduce),國人一上來可能比較生疏,但是hadoop僅僅是個(gè)基礎(chǔ)模型。
hadoop的存儲模型本質(zhì)來說其難度沒有超過數(shù)據(jù)庫的難度,加上計(jì)算模型也一樣。
歷史告訴我們的結(jié)論是,hadoop作為基礎(chǔ)結(jié)構(gòu)沒有價(jià)值。
那什么是有價(jià)值的?只有說當(dāng)你的業(yè)務(wù)存在時(shí)間維度上的價(jià)值的時(shí)候,hadoop這個(gè)模型才有價(jià)值。有時(shí)間維度的業(yè)務(wù)不多,真的。對于一家互聯(lián)網(wǎng)公司來說, 半衰期大約=5年,甚至更短。也就是說,5年后,市面上的新興的這些互聯(lián)網(wǎng)/移動互聯(lián)網(wǎng)公司要去掉一半。這其實(shí)是個(gè)很保守的數(shù)字了。5年根本談不上你的數(shù) 據(jù)還要有什么時(shí)間維度上的操作。再看看電子商務(wù),網(wǎng)上是一些比較新潮的商品,5年之后早就更新?lián)Q代好幾批了,也就是說相對于公司的半衰期,商品的半衰期更 短。
其實(shí)真正具有時(shí)間維度上的要求的數(shù)據(jù)是金融數(shù)據(jù),然后就是搜索引擎,再次是電子商務(wù),進(jìn)入移動時(shí)代,數(shù)據(jù)是移動的,數(shù)據(jù)瞬間消失的就跟那個(gè)玻色子一樣。數(shù) 據(jù)就是在K-V里面的,支付也是如此,數(shù)據(jù)過了有效期,那只能重新連接重來了,數(shù)據(jù)失效了,支付失敗了,記錄這個(gè)失敗沒有意義,及時(shí)處理支付失敗才有意 義,數(shù)據(jù)在時(shí)間維上不是越來越大,而是越來越小。
那大家為什么hadoop一哄而上?這個(gè)背后肯定是有推手的,目的就是讓大家跟著倒霉,唯我獨(dú)大。為什么這么說呢,因?yàn)檫@個(gè)hadoop技術(shù)是有陷阱的,這個(gè)陷阱就是java,歷史告訴人們什么呢?
我這一代人,整個(gè)70后80后,黃金一代,毀在java手里。原因是什么,我也不知道。事實(shí)是什么,這個(gè)我經(jīng)歷了,就知道了。
現(xiàn)在說這個(gè)可不是什么經(jīng)驗(yàn)之談,這是常識之談。打著數(shù)據(jù)挖掘/機(jī)器學(xué)習(xí)的招牌搞大數(shù)據(jù),十有八九也會被大數(shù)據(jù)胡弄了。因?yàn)樗母拙捅容^淺。hadoop的根底淺,java技術(shù)毀人不倦,不滿足業(yè)務(wù)上的半衰期。
然后再來說機(jī)器學(xué)習(xí),很奇怪,hadoop根底淺,機(jī)器學(xué)習(xí)也跟著上不了什么很高的檔次。我也去過一家公司面試,還是個(gè)上市公司,一進(jìn)去直覺告訴我,這家公司已經(jīng)不怎么地了。但是整個(gè)數(shù)據(jù)挖掘機(jī)器學(xué)習(xí)的面試,感覺很不爽。我大體上說一下,模式差不多。
統(tǒng)計(jì)基礎(chǔ)+矩陣運(yùn)算+SVM機(jī)器學(xué)習(xí)流派+信號識別(所謂深度學(xué)習(xí))
公司已經(jīng)快不怎么樣了,這些機(jī)器學(xué)習(xí)的大師們拿著這一套好像就跟陽春白雪一樣,自我剪裁一番配上大數(shù)據(jù)hadoop就無敵了。
就這些,核心還是貝葉斯模型,翻來覆去的貝葉斯模型。問題就是,貝葉斯模型真的比傳統(tǒng)數(shù)據(jù)庫的關(guān)系模型強(qiáng)嗎?不是說一定是否定的,只要不是絕對肯定的,你的業(yè)務(wù)就跟著over了。問題是,人們需要哪家公司用自己的業(yè)務(wù)去檢驗(yàn)貝葉斯模型?
我只談數(shù)據(jù)倉庫,因?yàn)檫@是我覺得最容易入門、最有用、最難用好的技術(shù)之一。
出現(xiàn)數(shù)據(jù)倉庫這概念的時(shí)候,貌似還沒有hadoop呢。
數(shù)據(jù)倉庫存儲的是原始數(shù)據(jù)經(jīng)過一定的業(yè)務(wù)、維度聚合獲得的中間數(shù)據(jù)。模型價(jià)值很大,過去大數(shù)據(jù)處理都是先建立數(shù)據(jù)倉庫模型。
若是做數(shù)據(jù)庫不知道數(shù)據(jù)倉庫、ETL技術(shù),無論你用什么數(shù)據(jù)庫,大數(shù)據(jù)量時(shí)都是有局限性的。
舉個(gè)例子最簡單的例子,你有用戶的交易流水,每天24億條新記錄。你需要做個(gè)系統(tǒng)查詢,統(tǒng)計(jì)一定天數(shù)的交易總金額。
那么,一個(gè)簡單的數(shù)據(jù)倉庫就是,每天計(jì)算一次前一天交易總額值后存在一張以天為單位的表里,這樣每天計(jì)算一次,表每天增加一條記錄。查詢天交易總額是我只需要查詢這張以天為單位的表就行了。通過這張?zhí)鞛閱挝坏谋恚芸斓挠?jì)算周,月,年的數(shù)據(jù)統(tǒng)計(jì)。
這張表就是一個(gè)最簡單的數(shù)據(jù)倉庫,每天從原始數(shù)據(jù)計(jì)算這張表的過程就是ETL。
使用數(shù)據(jù)庫的人一定使用或接觸過數(shù)據(jù)倉庫,只不過自己沒意識到而已。
也許你會問如果我要查3天前~到現(xiàn)在9點(diǎn)20的總金額怎么辦?這時(shí)我們只需要當(dāng)天的原始數(shù)據(jù)(實(shí)時(shí)數(shù)據(jù)),在加上之前設(shè)計(jì)的中間表里3天的匯總數(shù)據(jù)即可。
一個(gè)良好的,持久穩(wěn)定的,針對大量數(shù)據(jù)產(chǎn)品,必須有良好的數(shù)據(jù)倉庫支持。
PS:現(xiàn)在大家都跟風(fēng)追hadoop,領(lǐng)導(dǎo)覺得好非讓你用,你也沒辦法。
畢竟現(xiàn)很多時(shí)候談客戶,別人都吹hadoop技術(shù),你說你不用hadoop,絕對是你悲劇。