1. 程式人生 > >創業公司做資料分析(一)開篇

創業公司做資料分析(一)開篇

      瞭解“認知心理學”的朋友應該知道:人類對事物的認知,總是由淺入深。然而,每個人思考的深度千差萬別,關鍵在於思考的方式。通過提問三部曲:WHAT->HOW->WHY,可以幫助我們一步步地從事物的表象深入到事物的本質。比如學習一個新的技術框架,需要逐步搞清楚她是什麼、如何使用、為什麼這樣設計,由淺入深。

    “WHY+HOW+WHAT”,是筆者最鍾愛的一種思維模式。其使用方法不僅限於上述認知過程中的思考方式,通過不同的順序組合,可以使用在不同的場景。比如,在籌劃一個專案時,採用“WHY->WHAT->HOW”的思考方式,先搞清楚為什麼要做這個專案,然後是需要做哪些工作來完成這個專案,最後考慮怎麼做、技術選型。這個思考方式也將被廣泛使用在本系列的各個文章中。

       在過去的一年裡,筆者加入了一家移動網際網路創業公司,工作之一便是負責資料業務的建設,陸陸續續完成了一些資料系統的實現,來滿足公司的資料需求。在創業公司中做資料相關的事情,而且是從零做起,肯定不像很多大公司那樣分工明細,所有的工作都要保證在有限的資源下來滿足需求。回想起來也蠻有意思,因此想做些總結分享,結合我們的系統來談一談如何做資料分析。如果有寫的不好的地方,還請網友指正。

       作為系列文章的開篇,本文將按照“WHY->WHAT->HOW”的思考方式來闡述下面三個問題:

1. 創業公司為什麼需要做資料分析?

2. 創業公司做資料分析,需要做哪些事情?

3. 如何實現這些資料上的需求?

        隨著移動網際網路的發展和大資料思維的普及,越來越多的創業者、投資人開始重視資料的作用,而不再是隨便拍腦袋。“資料驅動決策”、“精準化運營”、“產品快速迭代”這些概念被越來越多的人提出和使用,其背後都離不開精準的資料分析。對於大多數網際網路創業公司來說,其背後沒有強大的資源與財主支撐,如何在有限的人力、物力下快速摸索、少走彎路是至關重要的,而基於“資料驅動”來做決策、運營與產品將起到一個關鍵的作用。讓我們來看兩個例子。

【例一】

        微信公眾號早已成為各家運營的主戰場之一,利用微信的關係鏈來轉發H5海報頁面是眾多線上活動和拉新的一個重要方式。然而,不管是做某個線上推廣活動,還是通過線下某個渠道引導使用者分享、註冊,我們都需要指標來衡量活動效果,從而摸清運營的方向。資料,便是關鍵!該活動帶來的瀏覽量、分享量、新註冊使用者數、使用者留存率都是重要的指標,而這一切都離不開有效的資料追蹤與分析。如果同時有100個這樣的渠道活動,如何統籌各個資料分析也將是一件無法忽視的事情。(下圖呈現的是某次活動的傳播網路的一部分)

【例二】

       每逢節假日,國內各個旅遊景點都是人山人海,儘管大家都知道外出遊玩會遭遇這種情況,但是還是抱著一絲僥倖心理出行,畢竟好不容易有了假期嘛。在今年十一時,筆者就曾利用百度景區熱力分佈圖來提前觀察,從而避開了一些高峰期和人滿為患的景區,大家不妨也試一試。

       回到正題,對於很多創業公司,特別基於LBS提供服務的企業來說,都期望搞清楚“使用者在哪裡”、“哪裡是使用者感興趣的地方”,從而摸清早期的投入方向,畢竟全面開花、四處征戰的方式是不適於創業公司的。通過位置資料,來分析使用者集中在哪些區域,主要分佈在商業區還是高校,是否受到交通因素影響等等,當然,具體需要結合業務來做了。另一方面,還可以聚合出使用者的常駐位置,可以對使用者位置與商戶位置的距離進行分析等等,從而形成推薦方案,優化產品與服務。

       對於大多數網際網路創業公司,在做資料分析時,一定要結合自己的業務,把握一個度,在投入可控的範圍內達到效果即可。資料深度挖掘、機器學習、推薦演算法等等,這些技術名詞背後都需要投入一定的人力、物力來支撐,即使是大廠來玩,產出也相對有限,而且很多時候實際工程效果不盡人意。舉個列子,很多高階的“推薦演算法”在投入使用後,其效果遠不如“看了又看”來的簡單有效。當然,如果你的公司就是做資料這方面的業務,那是另一回事了。

       要搞清楚需要做什麼,不妨先結合自身業務思考一下,現階段自己需要什麼資料來驅動決策、運營與產品。具體業務方面的資料需求,各家都不一樣。從筆者接觸的情況來看,早期大部分的資料需求集中在兩塊:運營資料的統計分析、產品使用情況的統計分析。後期隨著產品線的發展,一般會延伸出一些與產品相關的資料業務,比如線上推薦。

      從流程上看,需要做的事情集中在三部分:資料採集、資料處理和資料視覺化,伴隨著資料的變遷:原始資料->分析結果->圖表呈現。首先,基礎資料來源的建設是做好資料分析的關鍵,因為如果資料來源本身出了問題,那麼後面做的所有工作都是沒有意義的,而且如果沒有提前做好資料採集,後期想做分析時也沒有資料可做。其次,資料分析的最終結果是需要呈現給別人看的,可能是公司高層,也可能是市場業務人員,直接將一堆資料丟給他們顯然是不現實的,通常都需要轉換為圖表的形式,這便是資料視覺化的工作。而從原始資料來源到分析結果的過程,便歸納為資料處理,其涵蓋了資料提取、資料建模、資料分析等多個步驟。

        現如今國內的網際網路環境發展的越來越好,第三方服務提供商越來越多。所以很多情況下我們都有兩個選擇:接入第三方、自己做。

      資料分析這塊,便有很多第三方服務,筆者將其劃分為傳統資料統計服務與新興的資料公司。前者以百度統計、google analysis為代表,通過嵌入其SDK在前端採集資料,在後臺便可以檢視相應的統計資料。這種方式的好處是簡單、免費,使用非常普及,是很多初創企業的首選。缺點也很明顯,一是這樣的統計只能分析一些基本的訪問量、點選率、活躍使用者量,滿足基本需求,無法結合業務資料來做深度分析;二是需要在前端很多地方埋點上報,耦合性較強;三是資料儲存在第三方的伺服器中,無法直接獲取到資料來源。後者以神策、GrowingIO、諸葛IO為代表,這些公司也正是看到了傳統資料統計服務的缺點,從而提出相應的解決方案,各有特色。但是,需要不菲的接入費用,私有部署的費用更多,而這筆費用對於一個初創企業來說,還是蠻多的。另一方面他們更加側重於電商領域的資料分析,因為這個領域的分析模式已經基本成型,適合做成模板來使用。

      選擇自己做的話,可以結合自身的業務,做的更靈活,同時也可以儘早摸索資料業務,逐步建立相應的資料系統。當然,自己做並不代表是造輪子,而是要充分利用開源框架來實現相應的功能。

      鑑於各家的業務都不同,而拋開業務談架構都是耍流氓,所以在接下來的文章中,筆者將結合自己接觸的業務來探討一些資料系統的實現。下圖所示便是現階段我們的資料系統架構,主要分為資料採集、資料處理與資料應用三層。從下往上,資料採集層負責從前端App、H5頁面、伺服器日誌採集資料,通過Kafka接入後存入Elasticsearch與neo4j中,同時業務資料庫也是很重要的資料來源;資料處理層負責資料的抽取、清洗、建模,然後存入MongoDB與MySQL中,整個過程由Airflow任務排程管理系統來進行管理與監控;產出的資料最終提供給應用層使用。也許有人要說,連Hadoop都沒用到,怎麼號稱自己在做資料分析呢。筆者曾經也做過考慮和嘗試,最終暫時擱置了Hadoop,主要是資料增長相對緩慢並且沒有很明顯的需求,目前這個架構可以在較長一段時間內應對資料需求了。

Bruce,2016/11/30