大數(shù)據(jù)的崗位可以分為三大類(lèi):大數(shù)據(jù)系統(tǒng)研發(fā)人員、大數(shù)據(jù)應(yīng)用開(kāi)發(fā)人才和大數(shù)據(jù)分析人才。英國(guó)領(lǐng)先的報(bào)告顯示,數(shù)據(jù)分析師的供應(yīng)指數(shù)低至0.05,這是非常稀缺的,而分析數(shù)據(jù)是跳槽速度同比其他最快,大數(shù)據(jù)分析師平均跳槽速度為19.8月。在中國(guó),隨著大數(shù)據(jù)應(yīng)用于各個(gè)行業(yè),對(duì)于大數(shù)據(jù)相關(guān)崗位的需求也更大,據(jù)統(tǒng)計(jì),中國(guó)未來(lái)的基礎(chǔ)數(shù)據(jù)分析差距將達(dá)到1400萬(wàn),在BAT企業(yè)招聘崗位中,有60%以上正在招聘大數(shù)據(jù)相關(guān)人才。
想成為一個(gè)出色的分析師需要N多技能,那些技能能讓你快速實(shí)現(xiàn)自己的目標(biāo),這才是我們學(xué)習(xí)數(shù)據(jù)分析應(yīng)該定位的,都要學(xué)習(xí)嗎?
有了場(chǎng)景,有了明確的目的,接下來(lái)才是分析師們常用的三大利器:
1、對(duì)比,任何分析都是對(duì)比,對(duì)比就要講究設(shè)計(jì)、平等、體系,才可比,換句話就是找“雙胞胎”,才值得比,并列關(guān)系;
2、拆解,業(yè)務(wù)其實(shí)和數(shù)據(jù)分析一樣,都是不斷的拆分,拆的程度就是回答你的假設(shè),許多指標(biāo)都是分渠道、區(qū)域、用戶類(lèi)型、品類(lèi)特征去拆,但拆要分主次,你拆和不拆對(duì)結(jié)果有什么影響要好好假設(shè)考慮,并列和主次;
3、構(gòu)成,許多事情你明白他的構(gòu)成你就更加清晰,好比你去飯店吃飯,有一盤(pán)菜,LP說(shuō)真好吃,那你就會(huì)去研究這菜有什么成分,什么菜品組成,加工順序如何,這就叫拋,彼此都是并列和流程關(guān)系。
即使大數(shù)據(jù)這名詞稍微退燒(或許是太多招搖撞騙的人吧), 但隨著軟體業(yè)近年來(lái)負(fù)載量愈來(lái)愈大,對(duì)后端處理資料的需求其實(shí)也是變得愈來(lái)愈高。 無(wú)奈資料工程這技能學(xué)校不會(huì)教,因?yàn)闆](méi)有學(xué)術(shù)價(jià)值。 在業(yè)界內(nèi)除非進(jìn)入資料團(tuán)隊(duì),不然也不會(huì)接觸到。 最糟的是,各家公司內(nèi)部的資料團(tuán)隊(duì)素質(zhì)也良莠不齊,要學(xué)到好的資料工程技術(shù)真的只能靠運(yùn)氣。 筆者的公司算得上是資料工程做得還不錯(cuò)的,以下為筆者認(rèn)定的大數(shù)據(jù)核心技能分析及設(shè)計(jì)高延展性 (highly scalable) 程式能寫(xiě)出常見(jiàn)的 data operation 如 join, de-duplicate, group-by能處理 data skew (資料過(guò)度集中在少數(shù)的 key)的問(wèn)題;知道如何選擇 map output key, 以及 secondary key sort 的排序設(shè)計(jì)能驗(yàn)證資料正確性設(shè)計(jì) regression test system. 每次資料系統(tǒng)更新都能檢驗(yàn)前后處理的差別可以撰寫(xiě)工具檢驗(yàn)大量的數(shù)據(jù)正確性。
從一開(kāi)始規(guī)劃系統(tǒng)就讓它具有高度的可驗(yàn)證性,以及嚴(yán)格的驗(yàn)證它將資料工程自動(dòng)化的能力,可以處理資料相依性問(wèn)題
自動(dòng)處理錯(cuò)誤的策略要能 revert & reprocess使用 control table 去控制及追蹤不同工做的 state系統(tǒng)維護(hù)透過(guò) log & stacktrace 來(lái) debug知道基本的系統(tǒng)平臺(tái)管理。JobTracker, HDFS 等指令要熟悉了解各種 Map Reduce 參數(shù),可以調(diào)校效能參數(shù)。
實(shí)事求是的精神
做資料工程或分析,最忌諱的就是騙自己。永遠(yuǎn)不要用猜的,要用資料來(lái)驗(yàn)證自己的想法是否正確。
各種資料系統(tǒng)設(shè)計(jì)都有隱藏的代價(jià),不要對(duì)這些代價(jià)視而不見(jiàn)。
挖掘問(wèn)題先于尋找解決方案。只有完全了解自己的需求后,才能在多種方案中選擇最適合自己的一個(gè)。
以上的技能集中在如何成為大數(shù)據(jù)工程師。資料科學(xué)的訓(xùn)練不記入其中,因?yàn)楣馐沁_(dá)到以上的技能就已經(jīng)很花時(shí)間啦。 當(dāng)這些技能都練得相當(dāng)不錯(cuò)時(shí),再跨足資料科學(xué),其實(shí)也不太難。 不過(guò)通常是分工合作更簡(jiǎn)單一些,因?yàn)閷W(xué)資料科學(xué)的人遠(yuǎn)比資料工程多很多。
大數(shù)據(jù)工程技能樹(shù)該如何點(diǎn)?
初級(jí)
學(xué)習(xí)目標(biāo):能獨(dú)立開(kāi)發(fā) highly scalable 的程式及演算法。更高階的資料系統(tǒng)設(shè)計(jì)不包含在內(nèi)。
學(xué)習(xí)架構(gòu)
建立開(kāi)發(fā)環(huán)境
寫(xiě)最簡(jiǎn)易的 SQL operation
寫(xiě)中階的 SQL operation
寫(xiě) SQL 難以辦到的功能
淺論資料工程架構(gòu) (dedup, join, aggregation)
開(kāi)始有能力分析資料演算法的復(fù)雜度,以及了解 data skew 的處理策略
能透過(guò) log & stack trace 找出自己程式哪里寫(xiě)錯(cuò)
高級(jí)
學(xué)習(xí)目標(biāo):學(xué)會(huì)許多更深入的技能,并且能規(guī)劃高階的資料系統(tǒng)設(shè)計(jì)。
serialization & data collection strategy
End to end trace data design
control table & automation design
lower level API (inputformat, outputformat, etc.)
advanced java tricks
analyze performance factor
MR network cost calculation, advanced MapReduce
初級(jí)的學(xué)習(xí)大概一兩個(gè)月內(nèi)可以精通。筆者當(dāng)年就是花差不多的時(shí)間無(wú)師自通的。高級(jí)目標(biāo)筆者則是經(jīng)由跟比較年長(zhǎng)的工程師學(xué)習(xí)而來(lái),比較難評(píng)估學(xué)習(xí)時(shí)間。