當我以數據分析lead的身份加入500px,對我而言是一個很快的決定。有機會從零開始爲一個創業企業構建一整套數據分析系統,而且是有遠大抱負的企業,幾乎是所有數據分析師羨慕得流口水的一件事情。在這裏,我可以真正實踐曾經憧憬的數據驅動的企業模式。
它是這樣的:
每個人都熟知公司的各項衡量指標,並且知道自己的工作如何在這個指標體系裏得到衡量;
我們將衡量決策的效果進行量化,並承認他們是成功的還是失敗的;團隊使用自助的工具來回答所有的問題;
我們可以通過深挖數據和探索核心指標來預測未來。
我知道這並不容易,要給這個數據上相對不成熟的公司帶來變化,我並不會得到太多的幫助。
更重要的是我必須“改變一個行駛中的汽車輪子”,前提是公司所有現有的基礎設施和流程仍然需要保持正常運轉。
但我一直爲挑戰而興奮,所以此刻,我在這兒。
如今我加入500px已接近一年。
這期間,我在重建基礎設施及報告流程的工作中取得了重大進展。我們現在的Redshift數據倉庫[注1]中有一箇中心的數據源。我們已經推出了自己的商業智能工具——Periscope[注2],在那裏決策者和分析師可以自助服務各種分析需求。現已有各種報告和儀表盤,會推到公司的每一個團隊做爲績效考覈。
當然我們還有其他的任務沒有做完。但是,當你走在辦公室裏面,看到所有的圖表和數據出現在人們的屏幕上或者Slack[注3]裏面,它清楚地表明,我們已經走了很長的路。
我將從兩個不同視角下的數據世界——技術視角和業務視角——進行描述。市面 上有很多關於建立數據基礎設施的內容,還有很多關於初創企業數據分析的文章,特別是關於哪些度量指標更重要的文章;但很少有人寫關於實施和管理數據分析體 系的相關內容,尤其是介紹把數據分析作爲一個業務職能部門的文章。
業務背景
500px是一個照片分享社區和攝影交易市場。我們的平臺主要是桌面和移動網站;同時在Android和iOS平臺上都有我們的應用程序,同時第三方應用程序裏也有我們的內容,比如Flipboard[注4]。 我們有世界級的投資者包括安德森霍洛維茨和FF的風險資本做爲後盾。
我們的兩條收入來源:
技術維度我們所有的應用程序和網站在API服務上運行。在服務器上,我們成爲一個整體的Rails[注5]應用程序以及微服務平臺。後臺由多個數據庫支持,最主要的一個是MySQL。
在MySQL中,我們存儲的是應用程序需要的狀態信息。其中最重要的兩個數據表是:照片表和用戶表。我們也有一個訂閱購買記錄和攝影作品交易記錄的交易表。
我們在後端記錄了接口調用和狀態更改。例如,一個照片的請求會被記錄下來,像註冊、上傳、投票、跟隨這樣的動作。
事實上你並不知道,因爲日誌只是文本文件。當我們記錄一個動作時,只需追加一行代碼,像這樣:
2015–02–10 10:24:31.32444 23432423 photo_like 423223 123.132.623.123 /get?…每一條記錄可以包含時間戳、照片ID、用戶ID、用戶IP,行爲及其他動作。
日誌數據提供了用戶的歷史行爲記錄,正好和我們MySQL數據庫中的狀態信息互補。這些日誌彙總並存檔在亞馬遜S3上,按小時區隔。我們的產品每天生成大約20GB的日誌文件。
這兩個數據源,MySQL和日誌記錄,是數據分析價值的基礎。MySQL可以獲取照片和用戶信息,以及照片和訂閱交易信息等;而日誌是理解用戶行爲隨時間變化的核心。
現在,你知道一點關於我們公司背景和技術的內容了吧,然後讓我們瞭解下分析的演變。
通往更好的數據分析之路
兩個數據源
第一步開始的時候,擺在我面前的有兩個數據來源:Splunk[注6]和MySQL。
MySQL可以提供類似某張照片被喜歡的總次數這樣的信息,但它不能告訴我最近一個小時內某張照片新增的喜歡數。
Splunk是基於日誌數據的一個搜索引擎。那麼,這意味着什麼?
日誌可以告訴你很多用戶行爲。當一個用戶喜歡一張照片,這一行爲被寫入日誌文件並提供時間戳記錄。因此,通過查看日誌,你可以得到一個近一小時某張照片獲得了多少次喜歡的答案,這個數據通過掃描全部日誌行中有喜歡指定照片事件的條數得到。
但是日誌文件只是文本文件。從文本中獲取價值是困難的,因爲他們需要被解析。這就是Splunk的價值。
Splunk是一個工具,允許你搜索和分析日誌數據。我可以問一些關於用戶行爲的問題:
上個月有多少安卓用戶使用了我們的平臺?
Splunk將通過快速檢索日誌、計數和指定事件匹配的日誌條數。
兩個困擾
貌似查詢這兩個來源足夠簡單。如果我想要狀態信息,我會查詢MYSQL;如果我想知道歷史用戶行爲,Splunk查詢就夠了。
當你需要問的問題,包括狀態信息和行爲信息的時候,比如上個月有多少用戶喜歡某張照片(Splunk),然後需要細分到用戶訂閱的類型(MySQL),那麼你需要一個離線的方法分別查詢兩個數據源然後整合結果。 比如用Python[注7]腳本來同時調用MySQL和Splunk。
以上只是一個小困擾。用個性化的代碼來實現數據獲取是沒有效率的。
此外還有更頭痛的事情。
這兩個工具對用戶不友好。Splunk需要特殊查詢語言,而且線上相關介紹資源很少。MySQL的schema[注8]文檔不齊全。結果獲取數據的重擔最後都壓到數據分析師身上了。
當一個公司有60多人需要訪問數據,但卻無法訪問,從而將這個任務留給唯一個分析師的話,那麼最糟糕的時代來臨了!
管理層(Exec)儀表板-逃之夭夭
在指標報告中的情況不太好。
我們使用Splunk來就算事件數(註冊、上傳等),可以按照日期和客戶端(Web、iPhone、Android等)進行細分。 這些Splunk搜索結果存儲在一個表格中,被稱爲Exec儀表板,它於夜間進行腳本運營:想象一下,當你面對密密麻麻的一千個數字,想了解每日活躍用戶的基本指標是如何走向的的時候。我們團隊中只有最有經驗的MBA可以跟得上。
很顯然,有些事情需要改變。
第一個問題,數據不可訪問。在頭四個月,我很難從氾濫成災的數據中獲得脫身,幾乎在做着和Data Monkey[注9]一樣的事情。作爲新人,我很難去責怪基礎設施。
其次,很難知道產品和公司的表現如何。很少有人能理解我們的指標。執行儀表板是一個災難。
我不得不採取行動。我需要重建基礎設施,並保持現有的報告流程。同時,我還需要管理來自公司周圍的數據流的要求,確保數據仍然是流動的,我有足夠的時間用於基礎設施工作。
基礎設施建成後,我需要重新完成報告流程,並在公司內部推廣新的系統。
公司在這個節骨點上,一個新的基礎設施項目,並沒有導致指標甚至是細微的變化,這是管理層最不想聽到的。但這是必要的,我打賭我能做到這一切,在他們失去耐心之前證明價值。
這就是爲什麼我愛初創企業,因爲你可以像這樣來做事。
在基礎設施方面,我需要兩點:
備 注[注1] Amazon Redshift 是一種快速、完全託管的 PB 級數據倉庫,可方便您使用現有的商業智能工具以一種經濟的方式輕鬆分析您的所有數據。[注2] Periscope直譯爲潛望鏡。[注3] Slack是一款集合聊天羣組+大規模工具集成+文件整合+統一搜索的企業聊天工具。[注4] Flipboard(飛麗博)是一款免費的第三方應用程序。[注5] Rails是一種web開發框架。[注6] Splunk是機器數據的引擎,可收集、索引和利用所有應用程序、服務器和設備(物理、虛擬和雲中)生成的快速移動型計算機數據。[注7] Python是一種面向對象、解釋型計算機程序設計語言。[注8] schema是數據庫對象的集合,一個用戶一般對應一個schema。[注9] Data monkey是一個強大的數據傳輸和轉換應用程序。諸葛io,是一款基於用戶洞察的精細化運營分析工具。由北京諸葛雲遊科技有限公司於2015年2月推出。諸葛io旨在以用戶跟蹤技術和簡單易用的集成開發方法,幫助移動應用的運營者們挖掘用戶的真實行爲與屬性、優化留存與活躍度、提升用戶價值。目前,諸葛io支持Android、iOS和HTML(JS)三個平臺。
http://zhugeio.com/news/?p=1446