大眾點評數據平臺架構變遷
以下從數據&架構&應用的角度對2012.07-2014.12期間大眾點評數據平臺的架構變遷做一個概括性的總結,希望對還處在數據平臺發展初期的同學有一些幫助,歡迎線下溝通。
1、1.0(2012.07)
1.1 數據:
1. 以支持用戶報表需求為主
2. 初步沉淀出了一些底層模型
3. 模型計算程序以python為主
1.2 架構:
1. 存儲和計算都在GreenPlum
2. GreenPlum采用雙集群熱備,一大一小,部分關鍵報表數據同時在兩個集群存儲、計算。
3.傳輸:公司的DBA同學將數據從Mysql、SQLServer拉出來,落地成文件。傳輸程序每天凌晨解析落地的文件,然后將數據load到greenplum
4.調度:使用Quartz框架,依賴關系存放到表中,將依賴檢查做成一個腳本,下游job 調用方法check上游任務是否完成
5.監控:用戶程序自主判斷異常,郵件、手機報警。
1.3 數據應用:
1.報表數據以郵件的形式發送給用戶
2.用戶可以使用自定義sql的web查詢工具主動查詢數據
2、2.0(2013.04)
2.1 數據:
1. 有了明確的模型分層:
a) ODS:存放從原系統采集來的原始數據
b) DW:保存經過清洗,轉換和重新組織的歷史數據,數據將保留較長時間,滿足系統最細粒度的查詢需要
c) DM: 數據集市。基于部門或某一特定分析主題需要
d) RPT:直接面向用戶的報表
2. 形成了流量、團購、信息三大基礎模型及構建于三大基礎模型之上的數據集市
3. 基于volocity開發了canaan計算框架。
4. 開發了一些自定義的UDF
2.2 架構:
1. 存儲和計算都基于HIVE
2. GREENPLUM作為HIVE的“cache”存在,供用戶做一些小數據的快查詢,報表存儲。
3. 調度:和canaan框架進行整合,支持用戶快速新增任務,并自動導入任務依賴。
4. 主數據:保存了數據倉庫元數據信息,供用戶查詢和系統內部各個模塊交互。
5. ACL:構建了數據倉庫數據訪問權限控制,包括用戶權限申請、審批者審批、數據賦權等。
6. 傳輸:
a)參考阿里DataX的設計,實現了點評的異構數據離線傳輸工具wormhole
b)可視化界面,用戶通過界面操作,方便的將數據導入導出數據
c)和調度、主數據等系統打通
7. 監控:由于任務數量增長較快(2000+),運維已經是個問題此外,因此,我們花了較大精力做了可視化的工作:
2.3 數據應用
1. 運營工具:用戶自定義SQL,存儲基于HIVE
2. 指標(KPI):用戶自定義SQL,計算基于HIVE,結果放到GREENPLUM中,用戶可以根據指標通過時間拼接成報表
3. HIVE WEB:非常便捷的HIVE WEB工具,可用性可以甩hive原生的web界面HWI幾條街了
3、3.0(2013.12)
3.1 數據:
1. 有了明確的上層數據集市,各層數據集市打通,例如團購數據和流量數據打通
2. 形成了用戶集市、商戶集市兩大主題
3. 和算法團隊合作建設推薦系統
4. 提供框架和工具支持,引入外部數據開發者
3.2 架構:
1. 引入mysql、hbase,支持線上服務
2. 數據訪問接口支持:API、Query Engine、RPC Service
3. 引入shark支持臨時查詢,出于穩定性考慮,犧牲性能,shark/spark集群和hadoop/hive集群物理隔離
4. 數據質量:用戶指定以條件,對計算結果做檢查
3.3 數據產品:
支持DashBoard
4、4.0(2014.12)
4.1 數據:
1. 持續擴充/完善數據模型
2. 數據規范化,主要包括:APP日志、渠道
3. 完善數據開發平臺,其他部門數據開發者100+
4.2 架構:
1. 建設Redis Cluster,支持實時推薦、用戶畫像等服務
- Hadoop升級到YARN
- 引入Storm支持實時計算
- 推出類Kafka的分布式消息系統,結合日志框架,支持日志數據的快速/低成本接入
- 建設元數據中心
</span></p>
4.3 數據產品:
推出專有數據產品,包括:運營效果評估、流量分析產品等。
Refer:
[1] 大眾點評數據平臺架構變遷
[2] 餓了么數據倉庫治理及數據使用
http://www.infoq.com/cn/presentations/data-warehouse-management-and-data-use-of-eleme