為了方便公司的數據分析平台的獨立運行和數據挖掘的探索,今年上半年在公司搭建了支持數據平台和數據挖掘的數據倉庫;現就數據倉庫的創建工作總結如下,供大家參考:
首先介紹下數據倉庫搭建的緣由:
公司創建兩年,用戶量不多,也有幾十萬吧,就我來的時候,公司功能性平台基本上都有,例如:用戶管理平台、訂單管理平台、財務管理平台、運營管理平台、客服管理平台、系統管理平台等相關功能平台算齊全,基本能滿足功能,但是數據平台還沒有,老板、運營、市場,及相關人員對相關數據指標的了解還是通過看每周發上來的數據報表,這樣就有很多重復性工作,效率及其低下,所以在來之后我(做數據的)就從原來的報表及各個部門的溝通,整理了常用的基本數據監控指標,做成了數據平台一期,基本滿足各部門的數據需求,但是數據平台的一些基本指標就相當體檢項目指標一樣,只能關注到我們產品的運營基本情況,沒有對數據進行深層次的挖掘,不僅對運營、市場的指導性不強,也對老板的決策沒有建設性的支持,所以我提出了用戶檔案的建立,以便我們數據分析人員做用戶畫像積累靜態數據,同一時間也提出來做APP的用戶埋點工作,積累用戶的行為數據,以便做關聯分析。
數據積累1個月的時間,我們就准備着手數據分析平台的二期工作,數據平台二期工作主要是用戶畫像和用戶行為分析(具體細節下次在整理),在這些需求下,數據平台的反應時間變慢性能也不行,也經常出問題,因為我們一直用的是線上數據庫,也沒有做中間表之類的,起初想做中間表進行優化,后來想想以后還要做更多的數據分析和數據挖掘方面的工作,所以綜合想想,我們干脆搞個數據倉庫,專門支持數據平台和數據分析、數據挖掘的工作的。
然后就是介紹下我們數據倉庫的設計:
如上,公司到目前為止,沒有做微服務的架構,所以線上就兩個數據庫,分別是線上app功能和埋點數據的相關表, 按照需求,我們會從數據源把數據抽取到數據倉庫底層,對數據進行訂正等處理,並形成更新的定時事務;導入數據庫底層的基礎表我們分為實時數據、日數據、月數據(表示更新時間間隔),通過基礎表,我們會處理為中間模塊表,區分功能,我們公司大體分為支持數據分析平台的中間表和數據挖掘探索應用的中間表,本來到這里就可以支持數據平台和數據挖掘工作,但是由於公司的數據量也不小,mysql計算的一些指標反應速度比較慢,也沒有對sql進行優化,簡單的優化肯定有,所以我們就數據平台的計算結果又做了一層結果表,這樣的話開發直接寫接口調用表里的數據即可,而且數據分析平台反應很快,同樣,我們對數據挖掘的變量需求數據也做成相關結果表,這樣也就形成了數據挖掘常用數據變量表。