墨跡使用ODPS的流程及日志分析
大?。?/span>0.11 MB 人氣: 2017-10-13 需要積分:1
標簽:odps(2519)
發(fā)帖量。墨跡天氣已經(jīng)集成了多語言版本,可根據(jù)手機系統(tǒng)語言自動適配,用戶覆蓋包括中國大陸、港澳臺,日韓及東南亞、歐美等全球各地用戶。運營團隊每天最關(guān)心的是這些用戶正在如何使用墨跡,在他們操作中透露了哪些個性化需求。這些數(shù)據(jù)全部存儲在墨跡的API 日志中,對這些數(shù)據(jù)分析,就變成了運營團隊每天的最重要的工作。墨跡天氣的API每天產(chǎn)生的日志量大約在400GB左右,分析工具采用了阿里云的大數(shù)據(jù)計算服務(wù)ODPS。
使用ODPS的邏輯流程如下:

圖2 墨跡日志分析流程
流程介紹:
1.在每個日志服務(wù)器上都安裝了Fluentd及ODPS數(shù)據(jù)導入插件。日志數(shù)據(jù)通過流通道DataHub實時導入到ODPS;
2.數(shù)據(jù)分析作業(yè)分小時級和天級任務(wù)。數(shù)據(jù)開發(fā)工程師通過ODPS Python SDK向ODPS提交SQL 分析腳本,將統(tǒng)計后的數(shù)據(jù)導入Mongo DB。報表系統(tǒng)直接對接Mongo DB;
3.運營人員通過報表系統(tǒng)來查看用戶統(tǒng)計結(jié)果;
整個數(shù)據(jù)分析過程也做了很多優(yōu)化。以下是幾點說明:
1.導入工具Fluentd。Fluentd是一款優(yōu)秀的日志導入軟件。代碼開源,支持Apache License 2.0。Fluentd支持300多個插件,基本上今天的大數(shù)據(jù)處理系統(tǒng),F(xiàn)luentd都能支持。Fluentd還支持自定義插件,允許通過代碼編寫其它數(shù)據(jù)源和目標。使用配置簡單、靈活,底層引擎關(guān)鍵部分通過使用C語言類庫編寫,所以性能比較好。墨跡選擇了使用Fluentd向ODPS導入數(shù)據(jù)。
2.時區(qū)數(shù)據(jù)的統(tǒng)一。 墨跡的服務(wù)器部署在不同時區(qū),日志數(shù)據(jù)按天和小時兩級分區(qū)流入到ODPS表中,但統(tǒng)計作業(yè)是發(fā)生在北京時間。例如,對于2015年12月1日的數(shù)據(jù)統(tǒng)計是在12月2日凌晨來做的。由于時區(qū)不同,統(tǒng)計作業(yè)運行完畢后,仍有部分時區(qū)在12月1日的數(shù)據(jù)會持續(xù)流入1日的分區(qū)表中,這就會導致這部分數(shù)據(jù)在統(tǒng)計時落掉。
解決這個問題,在實施時將所有的日志數(shù)據(jù)中的local時間按北京時間做了轉(zhuǎn)換,截止到北京時間12月1日結(jié)束時,所有數(shù)據(jù)流入1日的分區(qū)中。其它時區(qū)是1日的數(shù)據(jù)會流入2日的分區(qū),數(shù)據(jù)會在第二天完成統(tǒng)計。Fluentd中Filter 插件可以完成這個轉(zhuǎn)換操作,配置非常簡單,如下面部分代碼:
type record_transformer enable_ruby Bjdatetime ${(Time.strptime(LocalDatetime,‘%m/%d-%H:%M:%S,%L’).gmtime+8*3600).strftime(‘%Y-%m-%d %H:%M:%S’)}
3. 任務(wù)的調(diào)度。墨跡分析的作業(yè)每天和每小時都會執(zhí)行。分析后的數(shù)據(jù)導入本地Mongo DB,報表系統(tǒng)接入Mongo DB來做展現(xiàn)。墨跡分析工程師在本地使用定時調(diào)度Python腳本完成這些流程。SQL 分析腳本可以通過ODPS Python SDK直接提交到ODPS上執(zhí)行完,完成后將統(tǒng)計結(jié)果放到List 對象。通過Python Mongo Client 將List寫入Mongo DB。
墨跡天氣的這一流程之前是在國外某云計算平臺上完成的,需要分別使用云存儲、大數(shù)據(jù)分析等服務(wù),數(shù)據(jù)分析完成后再同步到本地Mongo DB中與報表系統(tǒng)對接。在遷移到ODPS后,流程上做了優(yōu)化,EMR的工作省掉了,日志數(shù)據(jù)導入到ODPS表后,通過SQL進行分析,完成后直接將結(jié)果寫入本地Mongo DB。
在存儲方面,ODPS中的表按列壓縮存儲,更節(jié)省存儲空間,整體上存儲和計算的費用比之前省了70%,性能和穩(wěn)定性也提高了很多。同時墨跡可以借助ODPS上的機器學習算法,對數(shù)據(jù)進行深度挖掘,為用戶提供個性化的天氣服務(wù)。
?
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%