- Author:杜七 duqi@kongge.com
- Date: 2014.12.27
時光易老。
請把節省的有限時間,投入到無限的美好生活中去。
0,前言
- 數據分析工作中需要用到的“工具”,是我以前很迷茫的一個東西。
- 現在,把分析師常用和接觸到的“工具”,整理一下分享給大家。期望對大家有用。尤其是新人。
- 畢竟,我們沒有那么多的時間和精力去學習各種工具,只能從實用考慮,選擇合適工具來提高自己。
1,數據提取篇
數據提取,其實是看場景的。
當然,我們這里的場景,都是基于作為一個阿里媽媽數據分析師來考慮的。
其實,不管是數據提取,數據分析,建模,都是要看場景的。
分析師的需求,就是提取產品數據,做一些分析,反饋給需求方。 這個是我們的主要工作場景。
在阿里,這個場景的范圍要在縮小一點。
-
1)ODPS SQL
- 在阿里的同學,應該對這個東西不陌生。 如果陌生,請咨詢對口產品的BI,讓他們提供一些資料來了解一下。
- SQL是結構化查詢語言的縮寫,云梯2通過SQL可以更輕松的查詢和提取數據,方便廣大非開發的PD,運營和BI同學。
- 所以,作為數據分析師,這個工具一定要掌握。它相當于一個士兵的槍。
- 槍法好不好是其次,如果沒有槍,你說你能在阿里這個戰場上混的下去么?
-
2)Shell
- ODPS SQL,提取數據有一些限制,比如:
- 只能結構化查詢和結構化提取,不能有更復雜的判斷條件,或者滿足不同的提取場景
- 數據的處理按照行和列,不能進行其他維度的分析
- 如果做其他的系統化的數據開發,僅僅SQL是不夠的
- 等等
- 這個時候,可能你需要Shell(或者Perl等)的幫助:
- 作為一個分析師,基本的ODPS SQL也滿足需求。但是,如果除了必要的槍以外,還能掌握更多的工具和知識,在戰場上存活的概率會更高。
- 但是。我不建議每個人一下子撲上來都去學Shell。工作和學習不一樣。用到的時候再去學,更合適。
- 永遠記得:** 技多不壓身。 **
- ODPS SQL,提取數據有一些限制,比如:
-
3)其他
- 一般的數據分析師,ODPS SQL 就足夠了,頂多再加一個Shell
- 但是,如果你要做系統的數據開發,可能需要更多的技能。這部分,暫時不寫了。因為我不會。
2,數據分析篇
基于數據分析師的場景來說數據分析工具。
-
1)Excel
- Excel屬于普通話的級別,即每個人不管說的好不好,都會說普通話。
- Excel也是這樣一個狀態。 每個人都會Excel,只不過有些人用的多,有些人用的少而已。
- 作為一個基本的數據分析師,前期的工作,用一個Excel可能就滿足需求了。 就是對SUMMAY的數據畫圖,對比,產出一個結論。
- 當然,Excel可以畫很漂亮和(看上去)專業的圖。這個大家有興趣,可以參考@劉萬祥的一些博客,請自行google.
- 它屬于輕量級分析工具
-
2)R語言
- 如果處理的數據比較復雜,而且可能需要一些函數來統一處理,就需要一個統計軟件了。 這個時候,R語言,SAS,SPSS,MATLAB都出現了;
- 作為用過MATLAB,SAS的過來人,個人推薦R語言。因為它的packages實在是太豐富了。
- R可以干嘛?
- Excel可以做的,它都可以做
- Excel不能做的,比如數據處理和分析,畫圖(這個很牛),建模,它也可以做。
- 當然,它有一個缺點,如果數據量太大(超過500M),它就很難用。除非要寫并行的一些代碼
- 但是,基于我們現在用到的數據量,和要做的數據分析,我還是建議大家除Excel,可以了解一下R語言。通過它,你可以了解另外的一個世界。
- 它屬于次重量級分析工具
-
3)Python等
- 當然,有些時候,R語言還是解決不了問題,腫么辦?那就選擇其他語言
- 如果想做Deep Learning,可能需要Java,或者C++,這個,我幫不了你了,我不會
- 如果想發揮黑客的潛質,可以了解一下Julia,它集合了R、Python、Ruby等特點,很贊。
- 如果想用更通用的工具,那就是PYthon了。
- 因為目前阿里有一個XLab的數據挖掘的工具,代碼就是python,用這個XLab做數據挖掘,我覺得作為分析師來說,足夠用了。
- 當然,Python的用處,不僅僅是為了XLab,還可以更好的處理數據,做更多的數據挖掘等。
- 它屬于重量級分析工具
3,數據建模篇
數據建模,越來越簡單化。
就像吃飯,不用自己做,點個外賣就可以了。
-
1)R語言
- R語言的強大,就是一個瑞士工具刀,小,但是功能多。
- 如果從業務角度出發,想快速迭代和僅僅做一個嘗試,R語言建模不失為一個好工具
- 比如,我們可以選一些樣本,通過R語言的內置的pacakge,可以很快的做建模,然后對結果進行分析
- R語言是一個統計軟件,可想而知它的建模功能有多強大
- 用R做數據建模,不考慮剔除數據處理和清洗的話,建模的語句不超過5行!靈巧就是這么任性!
-
唯一一個不爽的地方:
- 現在很多同學都不是console狀態下提取數據,所以用R語言建模,需要download數據,然后倒入到R里面去,然后建模
- 現在數據安全控制比較嚴格,可能需要在七星陣里面用R語言來建模
- 當然,如果有console的環境,可以安裝RODPS。如果你們有興趣,參考這里
-
2)XLab
- 目前阿里數據挖掘同學用這個比較多。它是一個基于ODPS的數據挖掘工具,里面內置了很多數據模型和函數,比如,我要做一個聚類,這樣用Kmeans的函數,然后輸入相關參數就可以了。簡單吧?看著很簡單
- 它的所有的代碼,需要python來實現,當然,里面內嵌了ODPS SQL
- 為什么說它很方便:
- 它基于ODPS的數據表,你個人所有的ODPS數據表,都可以直接當一個數據源,不用另外存儲和處理
- 它可以畫圖,里面有常用的統計分析,畫圖的功能
- 當然,它最強大的就是可以做建模和挖掘,也是基于你ODPS的數據表
-
想象一個應用場景:
- 你在ODPS上create table 一張數據表t_dq_test
- 然后,你在XLAB里面基于這種表,寫一個Python的腳本,里面有聚類函數
- 運行這個腳本,可以對t_dq_test表中的數據進行聚類
- 針對聚類結果,你可以分析是否適合業務和產品需求?等等其他。
- 如果你們想做數據挖掘,我建議可以了解XLab,參考這里
4,最后的建議
- 很多新同學來了,很多老同學也在努力。工具太多,干擾太多。這篇東西,期望先給大家一個總結,讓大家知道我們現在有什么,可以用什么,哪些實用,哪些不實用。聚焦自己想學的,不要分散時間和精力。
- 大部分的阿里數據分析師工作,用ODPS SQL + Excel就可以搞定;如果在復雜一點,加一個R語言就夠了;如果在復雜一點,加一個XLab就夠了
- 還是那句話,工作場景不一樣,需求不一樣,用的工具也不一樣。這個很關鍵。工作和學習不一樣,我們需要用合適的工具,高效率的做完我們的工作。不要都學,都會。
- 如果你想學一門語言,我建議學Python語言
- 如果你還想學一門語言,我建議學R語言
- 如果你還想學點東西,除了產品必要的內容外,我建議多看看營銷,廣告的書。做分析師,工具都是浮云,關鍵是解決和推動事情的能力。
- 最后一句:** R語言除了數據處理,畫圖,現在還可以寫Slide,ppt,還可以做自動化產出,可以寫報告,可以做任何事情…… **
5,One More Thing (最重要的)
- 分析工具都是浮云
- 功夫都是在詩外