腾讯移动分析系统揭密
作者簡介:foreach,2012年加入騰訊,一直專注于騰訊大數(shù)據(jù)產(chǎn)品建設(shè),重點(diǎn)參與騰訊移動(dòng)分析(MTA)、騰訊移動(dòng)推送(信鴿)等核心產(chǎn)品研發(fā),親身經(jīng)歷兩款產(chǎn)品從0開始到數(shù)十萬開發(fā)者使用的過程。目前專注于系統(tǒng)改造優(yōu)化,以及廣告與金融領(lǐng)域高價(jià)值服務(wù)建設(shè)。
騰訊移動(dòng)分析(Mobile Tencent Analytics,簡稱MTA)是一款專業(yè)的第三方移動(dòng)統(tǒng)計(jì)分析運(yùn)營平臺(tái),是騰訊大數(shù)據(jù)對(duì)外開放的核心產(chǎn)品之一。平臺(tái)不僅提供大數(shù)據(jù)的指標(biāo)統(tǒng)計(jì),滿足常規(guī)的移動(dòng)App運(yùn)營訴求;還提供個(gè)性化、精細(xì)化的運(yùn)營工具,能夠有針對(duì)性去解決產(chǎn)品研發(fā)、運(yùn)營中遇到具體領(lǐng)域問題;同時(shí),還通過數(shù)據(jù)的開放生態(tài),輸出騰訊在大數(shù)據(jù)領(lǐng)域積累的能力,幫助企業(yè)快速、低成本使用或構(gòu)建數(shù)據(jù)平臺(tái),提升企業(yè)競(jìng)爭(zhēng)力。
目前,平臺(tái)每天接入的設(shè)備超過10億臺(tái),每天新增日志條數(shù)超過5000億條。十億的設(shè)備賬號(hào)和千億的數(shù)據(jù)如何做計(jì)算處理、關(guān)聯(lián)分析、多維交叉是一個(gè)不小的技術(shù)挑戰(zhàn),下面會(huì)分享構(gòu)建海量數(shù)據(jù)分析平臺(tái)的關(guān)鍵技術(shù)以及一系列思路與做法。
?
開始之前,先簡單介紹下MTA系統(tǒng)。MTA主要通過采集App、H5&小程序、Hybrid、智能終端等應(yīng)用數(shù)據(jù),通過數(shù)據(jù)關(guān)聯(lián),計(jì)算處理,為開發(fā)者提供實(shí)時(shí)數(shù)據(jù)統(tǒng)計(jì)分析服務(wù),監(jiān)控版本質(zhì)量、渠道狀況、用戶畫像屬性及用戶細(xì)分行為,通過數(shù)據(jù)可視化展現(xiàn),協(xié)助產(chǎn)品運(yùn)營決策。平臺(tái)已累計(jì)接入全球上百萬款應(yīng)用,支撐數(shù)十萬開發(fā)者日常統(tǒng)計(jì)分析工作。
????????
MTA平臺(tái)主要分為三個(gè)部分:終端數(shù)據(jù)采集、后臺(tái)數(shù)據(jù)存儲(chǔ)與處理、運(yùn)營平臺(tái),平臺(tái)主要特點(diǎn)有:
1. 全平臺(tái)覆蓋:包含原生的Android和iOS應(yīng)用,智能硬件應(yīng)用,Hybrid混合應(yīng)用,H5&小程序,基本上覆蓋了主流的終端應(yīng)用類型;
2. 多模式計(jì)算:覆蓋離線計(jì)算、實(shí)時(shí)計(jì)算、智能計(jì)算和數(shù)據(jù)挖掘;
3. 數(shù)據(jù)生態(tài)開放:支持業(yè)務(wù)指標(biāo)前臺(tái)導(dǎo)出、REST API數(shù)據(jù)對(duì)接,可無縫對(duì)接業(yè)務(wù)自建的運(yùn)營平臺(tái),做數(shù)據(jù)二次開發(fā)。
?
要構(gòu)建海量數(shù)據(jù)分析平臺(tái),關(guān)鍵技術(shù)主要有3點(diǎn):
1. 數(shù)據(jù)連接:數(shù)據(jù)連接是作為一個(gè)數(shù)據(jù)分析平臺(tái)的基礎(chǔ),要保證不同的App,甚至不同類型的應(yīng)用比如原生App與H5 App上報(bào)的數(shù)據(jù)是可關(guān)聯(lián)的,這主要涉及到設(shè)備標(biāo)識(shí)、賬號(hào)關(guān)聯(lián)以及數(shù)據(jù)的沉淀如用戶畫像和機(jī)型庫;
2. 數(shù)據(jù)處理:離線計(jì)算、實(shí)時(shí)計(jì)算、多維實(shí)時(shí)分析、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、可視化等;
3. 數(shù)據(jù)生態(tài):數(shù)據(jù)導(dǎo)出、平臺(tái)對(duì)接、數(shù)據(jù)價(jià)值、賦能企業(yè)大數(shù)據(jù)能力;
?
首先,我們先看看設(shè)備ID識(shí)別。在移動(dòng)互聯(lián)網(wǎng),設(shè)備ID的識(shí)別一直是個(gè)痛點(diǎn)也是個(gè)難點(diǎn)。比如Android平臺(tái),由于權(quán)限等因素IMEI、MAC很可能采集不到真實(shí)數(shù)據(jù),甚至存在大量的刷機(jī)刷量行為,導(dǎo)致采集到的設(shè)備ID基本上不可用。
MTA根據(jù)移動(dòng)平臺(tái)的特點(diǎn),專門設(shè)計(jì)了一套設(shè)備唯一標(biāo)識(shí)(Mobile ID,簡稱MID)體系,特點(diǎn)有:
全匿名:MID的生成算法與終端硬件屬性沒有依賴關(guān)系,是后臺(tái)隨機(jī)生成,通過安全協(xié)議下發(fā)到終端SDK;
唯一性:后臺(tái)通過算法唯一生成,全局保證唯一性;
關(guān)聯(lián)性:可用于關(guān)聯(lián)設(shè)備屬性、IMEI、MAC、賬號(hào)等信息;
防偽造:MID字符串本身含有自檢驗(yàn)信息,同時(shí),后臺(tái)存儲(chǔ)MID與設(shè)備的關(guān)聯(lián)信息,可防止偽造;
可運(yùn)營:支持在線運(yùn)營,分配的MID是具有生命周期的,可在線重置或回收。同時(shí),通過特征分析、數(shù)據(jù)挖掘,還可識(shí)別異常的MID,并做邏輯修正。
?
MID的核心在于其跨域關(guān)聯(lián)性,可以做到一度關(guān)聯(lián)、二度關(guān)聯(lián),如此擴(kuò)散,可從單個(gè)App擴(kuò)散到App間,甚至是全網(wǎng)。
?
解決了數(shù)據(jù)的連接性難題,下面我們來看看如何構(gòu)建海量數(shù)據(jù)處理系統(tǒng),總的來說,可以按照商業(yè)復(fù)雜度和時(shí)效性2個(gè)關(guān)鍵因素,按照不同的數(shù)據(jù)指標(biāo),不同的場(chǎng)景,選用不同的技術(shù)。
離線分析平臺(tái):全量的指標(biāo)計(jì)算、嚴(yán)格的時(shí)序類計(jì)算、按天匯總的基礎(chǔ)數(shù)據(jù)報(bào)表等;
秒級(jí)實(shí)時(shí)分析:對(duì)時(shí)效性要求非常高的場(chǎng)景,比如監(jiān)控告警、質(zhì)量診斷指標(biāo)等;
多維實(shí)時(shí)分析:對(duì)數(shù)據(jù)的歸類聚合,比如用戶分群、用戶標(biāo)簽、設(shè)備屬性
在線預(yù)測(cè)分析:對(duì)未來的在線預(yù)測(cè)能力,比如潛流失用戶、潛付費(fèi)用戶
?
參考開源的Strom流式計(jì)算解決方案,我們自研了一套純C++實(shí)現(xiàn)的秒級(jí)實(shí)時(shí)系統(tǒng),主要用于新增、活躍等通用指標(biāo)的實(shí)時(shí)計(jì)算,系統(tǒng)可以保證“終端日志采集->上報(bào)后臺(tái)->后臺(tái)計(jì)算->存儲(chǔ)->前臺(tái)展示”全流程控制在3秒內(nèi),達(dá)到秒級(jí)刷新。
主要特點(diǎn)有:
1. 增量計(jì)算模型:ESP負(fù)責(zé)計(jì)算單位時(shí)間(通常為1秒)內(nèi)的數(shù)據(jù)增量,然后發(fā)送到ESA節(jié)點(diǎn)匯總,定期寫入Redis,供前臺(tái)查詢;
2. 全整數(shù)運(yùn)算:系統(tǒng)將所有非int類型通過ESA編碼模塊轉(zhuǎn)換成int,并將映射關(guān)系存儲(chǔ)在LevelDB,供查詢時(shí)翻譯;
3. 全內(nèi)存處理:為減少磁盤IO耗時(shí),所有的數(shù)據(jù)計(jì)算和處理都在內(nèi)存中;
4. 智能容災(zāi)策略:系統(tǒng)關(guān)鍵節(jié)點(diǎn)有主備異地部署,支持自動(dòng)監(jiān)控和切換。
?
在數(shù)據(jù)分析過程中,多維交叉分析是一個(gè)常見的應(yīng)用場(chǎng)景,比如用戶分群,就是通過一系列的屬性條件(例如:活躍情況、用戶渠道、用戶畫像、用戶屬性和用戶行為等)篩選出一批符合相應(yīng)條件的用戶集合,涉及到大量的高維組合操作,通常使用離線系統(tǒng)來處理。為了解決多維交叉的實(shí)時(shí)性問題,我們引入Roaring Bitmap位圖壓縮算法和改進(jìn)后的Druid,將維度和設(shè)備ID映射到bitmap上,通過維度的預(yù)聚合的bitmap數(shù)據(jù)來完成實(shí)時(shí)用戶分群功能。一方面通過數(shù)據(jù)的預(yù)聚合,可以大大的壓縮原始的數(shù)據(jù);另一方面,配合列式存儲(chǔ)、針對(duì)維度的inverted index,將字符串操作轉(zhuǎn)換成SET的與或非操作,可以準(zhǔn)確定位到目標(biāo)數(shù)據(jù)而不需要掃描整個(gè)數(shù)據(jù)集,從而將用戶發(fā)起查詢到返回結(jié)果的整個(gè)過程控制在3秒左右。
?
用戶分群同時(shí)支持基于規(guī)則和基于算法的分群,客戶可以容易通過MTA與廣告平臺(tái)的打通,直接對(duì)接廣點(diǎn)通和win,甚至可以通過數(shù)據(jù)開放網(wǎng)關(guān),對(duì)接業(yè)務(wù)自建平臺(tái)。
?
甚至,還可以通過移動(dòng)推送平臺(tái)(信鴿)導(dǎo)入功能,導(dǎo)入MTA分群好的用戶設(shè)備標(biāo)識(shí)或號(hào)碼包,針對(duì)不同的用戶群推送不同的方案,有針對(duì)性的營銷推廣,達(dá)到精準(zhǔn)觸達(dá)的目的。
?
作為一個(gè)公共平臺(tái),客戶的接入門檻是否夠低也是一個(gè)事實(shí)上的衡量標(biāo)準(zhǔn)。MTA一直強(qiáng)調(diào)簡潔高效,只需要在終端簡單的一兩行代碼便可對(duì)接整個(gè)數(shù)據(jù)服務(wù)系統(tǒng),同時(shí),還支持埋點(diǎn)的可視化操作,運(yùn)營人員可以不需要通過開發(fā)在項(xiàng)目中硬編碼埋點(diǎn),而是將常用的自定義事件以可視化界面呈現(xiàn),可見即可得,大大降低接入和使用門檻,助力客戶挖掘數(shù)據(jù)價(jià)值。
?
騰訊大數(shù)據(jù)產(chǎn)品總監(jiān)洪桃李Torryhong再三強(qiáng)調(diào):大數(shù)據(jù)能力是企業(yè)必備的技能,作為一個(gè)公共平臺(tái),有義務(wù)低成本開放騰訊大數(shù)據(jù)沉淀的大數(shù)據(jù)處理能力,幫助企業(yè)洞察用戶、行業(yè)變遷及資本走向,支持公司戰(zhàn)略決策,精細(xì)化運(yùn)營。未來,MTA將繼續(xù)提升平臺(tái)的能力,繼續(xù)優(yōu)化并構(gòu)建一套高效率、高可伸縮的統(tǒng)一計(jì)算平臺(tái),并在廣告和金融等垂直領(lǐng)域深耕細(xì)作,通過整合大數(shù)據(jù)能力,給客戶帶來更多的價(jià)值。
專題介紹
ArchSummit全球架構(gòu)師峰會(huì)是InfoQ中國團(tuán)隊(duì)推出的面向高端技術(shù)管理者、架構(gòu)師的技術(shù)大會(huì),參會(huì)者數(shù)量1000+。其中,出品人及演講嘉賓中高級(jí)技術(shù)專家比例占79%,90%擁有10年以上開發(fā)經(jīng)驗(yàn)。本次“TEGer在全球架構(gòu)師峰會(huì)”專題將帶來TEG人在會(huì)上的系列主題分享。
作者簡介:foreach,2012年加入騰訊,一直專注于騰訊大數(shù)據(jù)產(chǎn)品建設(shè),重點(diǎn)參與騰訊移動(dòng)分析(MTA)、騰訊移動(dòng)推送(信鴿)等核心產(chǎn)品研發(fā),親身經(jīng)歷兩款產(chǎn)品從0開始到數(shù)十萬開發(fā)者使用的過程。目前專注于系統(tǒng)改造優(yōu)化,以及廣告與金融領(lǐng)域高價(jià)值服務(wù)建設(shè)。
總結(jié)
以上是生活随笔為你收集整理的腾讯移动分析系统揭密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QQ相册后台存储架构重构与跨IDC容灾实
- 下一篇: 免费开放阅读 | 数据库管理系统的事务原