Hadoop讓大數(shù)據(jù)分析走向了大眾化,然而它的部署仍需耗費(fèi)大量的人力和物力。在直奔Hadoop之前,是否已經(jīng)將現(xiàn)有技術(shù)推向極限?這里總結(jié)了對(duì)Hadoop投資前可以嘗試的10個(gè)替代方案,省時(shí)、省錢、省力,何樂而不為?
讓業(yè)務(wù)搭乘大數(shù)據(jù)技術(shù)確實(shí)是件非常有吸引力的事情,而Apache Hadoop讓這個(gè)誘惑來的更加的猛烈。Hadoop是個(gè)大規(guī)模可擴(kuò)展數(shù)據(jù)存儲(chǔ)平臺(tái),構(gòu)成了大多數(shù)大數(shù)據(jù)項(xiàng)目基礎(chǔ)。Hadoop是強(qiáng)大的,然而卻需要公司投入大量的學(xué)習(xí)精力及其它的資源。
如果得到正確的應(yīng)用,Hadoop確實(shí)能從根本上提升你公司的業(yè)務(wù),然而這條Hadoop的應(yīng)用之路卻充滿了荊棘。另一個(gè)方面,許多企業(yè)(當(dāng)然不是Google、Facebook或者Twitter)也沒有做大數(shù)據(jù)分析所需要的巨型集群,他們純粹是被“大數(shù)據(jù)”這個(gè)熱門的詞語給吸引的。

就像Dabid Wheeler所說“計(jì)算機(jī)科學(xué)的所有問題都有另一個(gè)層次間接的解決方案”,而Hadoop正是類似間接解決方案;當(dāng)你的上司被一些流行詞匯所吸引時(shí),做正確的軟件架構(gòu)決策將變的非常艱難。
下文將給出一些對(duì)Hadoop進(jìn)行投資前需要嘗試的替代方案:
- 了解你的數(shù)據(jù)
- 數(shù)據(jù)的總體積
Hadoop是為大型數(shù)據(jù)集所建立的有效解決方案。
- GB級(jí)以上的文件系統(tǒng)HDFS。因此如果你的文件只是MB級(jí)的,你最好對(duì)數(shù)個(gè)文件進(jìn)行整合(zip或者tar),讓其達(dá)到數(shù)百兆或者是幾GB。
- HDFS會(huì)將文件分割,并以64MB、128M或者更大的塊進(jìn)行存儲(chǔ)。
- 如果你的數(shù)據(jù)集非常的小,那么使用這個(gè)巨型生態(tài)系統(tǒng)將不會(huì)很適合。這需要對(duì)自己的數(shù)據(jù)有足夠的了解,并且分析需要什么類型的查詢以及你的數(shù)據(jù)是否真的夠大。
另一方面,鑒于你的計(jì)算指令可能很大,只通過數(shù)據(jù)庫去測(cè)量數(shù)據(jù)的體積可能會(huì)存在誤差。有時(shí)候數(shù)學(xué)計(jì)算或者分析小型數(shù)據(jù)集的排列可能會(huì)讓得出的結(jié)果遠(yuǎn)大于實(shí)際數(shù)據(jù)體積,所以關(guān)鍵在于你對(duì)數(shù)據(jù)有切實(shí)的了解。
數(shù)據(jù)增長(zhǎng)的速度
你可能在數(shù)據(jù)倉庫或者其它的數(shù)據(jù)源中存有數(shù)TB數(shù)據(jù),然而在建立Hadoop集群前有一個(gè)必須考慮的因素就是數(shù)據(jù)的增長(zhǎng)速度。
對(duì)你的分析師提出幾個(gè)簡(jiǎn)單的問題,比如:
- 數(shù)據(jù)增速究竟有多快?這些數(shù)據(jù)是否以非??斓乃俣仍鲩L(zhǎng)?
- 幾月或者幾年后數(shù)據(jù)的體積究竟會(huì)有多大?
- 許多公司的數(shù)據(jù)增長(zhǎng)都是按年算的。這種情況下,你的數(shù)據(jù)增長(zhǎng)速度其實(shí)并不快;所以這里建議考慮歸檔和清除選項(xiàng),而不是直接的奔往Hadoop。
如何減少需處理的數(shù)據(jù)
如果你確實(shí)有非常大體積的數(shù)據(jù),你可以考慮通過以下的途徑將數(shù)據(jù)縮減到非常適合管理的體積,以下的幾個(gè)選項(xiàng)已經(jīng)過產(chǎn)業(yè)幾十年考驗(yàn)。
考慮歸檔
數(shù)據(jù)存檔是對(duì)過期的數(shù)據(jù)進(jìn)行分開存儲(chǔ),當(dāng)然存儲(chǔ)的時(shí)間根據(jù)實(shí)際需求制定。這需要對(duì)數(shù)據(jù)以及應(yīng)用程序?qū)?shù)據(jù)的使用情況,有非常充分的了解。比如電子商務(wù)公司的大數(shù)據(jù)處理只將3個(gè)月內(nèi)的數(shù)據(jù)存入活躍數(shù)據(jù)庫,而舊訂單則被存入單獨(dú)的存儲(chǔ)。
這個(gè)途徑同樣可以運(yùn)用于你的數(shù)據(jù)倉庫。當(dāng)然你可以存儲(chǔ)更多的近期數(shù)據(jù)用于報(bào)告和查詢,使用頻度少的數(shù)據(jù)可以被存入單獨(dú)的存儲(chǔ)設(shè)備。
考慮清除數(shù)據(jù)
有時(shí)候我們一直忙于收集數(shù)據(jù)而不清楚究竟需要保存多少數(shù)據(jù),如果你存儲(chǔ)了非常多用不到的數(shù)據(jù),那么這將毫無疑問的降低你有效數(shù)據(jù)的處理速度。弄清你的業(yè)務(wù)需求并且審查數(shù)據(jù)是否可以被刪除,從中分析出你需要儲(chǔ)存數(shù)據(jù)的類型,這不僅會(huì)節(jié)省你的存儲(chǔ)空間,同樣會(huì)提升有效數(shù)據(jù)的分析速度。
一個(gè)經(jīng)常用到的最佳實(shí)踐就是給數(shù)據(jù)倉庫建立附加列,比如created_date、created_by、update_date及updated_by。通過這些附加列可以對(duì)數(shù)據(jù)進(jìn)行階段性的訪問統(tǒng)計(jì),這樣就可以清楚數(shù)據(jù)的有效周期。這里需要著重對(duì)待的是數(shù)據(jù)清除的邏輯,切記先思考再實(shí)現(xiàn)。如果你使用了一個(gè)歸檔工具,那么數(shù)據(jù)的清除將會(huì)變得非常容易。
不是所有的數(shù)據(jù)都很重要
你可能受不了儲(chǔ)存所有業(yè)務(wù)相關(guān)數(shù)據(jù)的誘惑,你可能有很多的數(shù)據(jù)來源,比如:日志文件、營(yíng)銷活動(dòng)數(shù)據(jù)、ETL作業(yè)等。你需要明白不是所有數(shù)據(jù)都對(duì)業(yè)務(wù)起關(guān)鍵作用,而且在數(shù)據(jù)倉庫中保存所有的數(shù)據(jù)并不是有益的。在數(shù)據(jù)源過濾掉不需要的數(shù)據(jù),甚至是在儲(chǔ)存到數(shù)據(jù)倉庫之前。不要對(duì)所有的數(shù)據(jù)進(jìn)行存儲(chǔ),只分析你所需的數(shù)據(jù)。
更多詳細(xì)信息,請(qǐng)您微信關(guān)注“計(jì)算網(wǎng)”公眾號(hào):