1. 程式人生 > >騰訊技術工程 |騰訊移動分析系統揭密

騰訊技術工程 |騰訊移動分析系統揭密

rgb 提升 -h 未來 強調 android平臺 技能 int 特點

作者簡介:foreach,2012年加入騰訊,一直專註於騰訊大數據產品建設,重點參與騰訊移動分析(MTA)、騰訊移動推送(信鴿)等核心產品研發,親身經歷兩款產品從0開始到數十萬開發者使用的過程。目前專註於系統改造優化,以及廣告與金融領域高價值服務建設。


騰訊移動分析(Mobile Tencent Analytics,簡稱MTA)是一款專業的第三方移動統計分析運營平臺,是騰訊大數據對外開放的核心產品之一。平臺不僅提供大數據的指標統計,滿足常規的移動App運營訴求;還提供個性化、精細化的運營工具,能夠有針對性去解決產品研發、運營中遇到具體領域問題;同時,還通過數據的開放生態,輸出騰訊在大數據領域積累的能力,幫助企業快速、低成本使用或構建數據平臺,提升企業競爭力。


目前,平臺每天接入的設備超過10億臺,每天新增日誌條數超過5000億條。十億的設備賬號和千億的數據如何做計算處理、關聯分析、多維交叉是一個不小的技術挑戰,下面會分享構建海量數據分析平臺的關鍵技術以及一系列思路與做法。

開始之前,先簡單介紹下MTA系統。MTA主要通過采集App、H5&小程序、Hybrid、智能終端等應用數據,通過數據關聯,計算處理,為開發者提供實時數據統計分析服務,監控版本質量、渠道狀況、用戶畫像屬性及用戶細分行為,通過數據可視化展現,協助產品運營決策。平臺已累計接入全球上百萬款應用,支撐數十萬開發者日常統計分析工作。

技術分享圖片

MTA平臺主要分為三個部分:終端數據采集、後臺數據存儲與處理、運營平臺,平臺主要特點有:

1. 全平臺覆蓋:包含原生的Android和iOS應用,智能硬件應用,Hybrid混合應用,H5&小程序,基本上覆蓋了主流的終端應用類型;

2. 多模式計算:覆蓋離線計算、實時計算、智能計算和數據挖掘;

3. 數據生態開放:支持業務指標前臺導出、REST API數據對接,可無縫對接業務自建的運營平臺,做數據二次開發。

技術分享圖片

要構建海量數據分析平臺,關鍵技術主要有3點:

1. 數據連接:數據連接是作為一個數據分析平臺的基礎,要保證不同的App,甚至不同類型的應用比如原生App與H5 App上報的數據是可關聯的,這主要涉及到設備標識、賬號關聯以及數據的沈澱如用戶畫像和機型庫;

2. 數據處理:離線計算、實時計算、多維實時分析、數據挖掘、機器學習、可視化等;

3. 數據生態:數據導出、平臺對接、數據價值、賦能企業大數據能力;

首先,我們先看看設備ID識別。在移動互聯網,設備ID的識別一直是個痛點也是個難點。比如Android平臺,由於權限等因素IMEI、MAC很可能采集不到真實數據,甚至存在大量的刷機刷量行為,導致采集到的設備ID基本上不可用。


MTA根據移動平臺的特點,專門設計了一套設備唯一標識(Mobile ID,簡稱MID)體系,特點有:

全匿名:MID的生成算法與終端硬件屬性沒有依賴關系,是後臺隨機生成,通過安全協議下發到終端SDK;

唯一性:後臺通過算法唯一生成,全局保證唯一性;

關聯性:可用於關聯設備屬性、IMEI、MAC、賬號等信息;

防偽造:MID字符串本身含有自檢驗信息,同時,後臺存儲MID與設備的關聯信息,可防止偽造;

可運營:支持在線運營,分配的MID是具有生命周期的,可在線重置或回收。同時,通過特征分析、數據挖掘,還可識別異常的MID,並做邏輯修正。

技術分享圖片

MID的核心在於其跨域關聯性,可以做到一度關聯、二度關聯,如此擴散,可從單個App擴散到App間,甚至是全網。

技術分享圖片

解決了數據的連接性難題,下面我們來看看如何構建海量數據處理系統,總的來說,可以按照商業復雜度和時效性2個關鍵因素,按照不同的數據指標,不同的場景,選用不同的技術。


離線分析平臺:全量的指標計算、嚴格的時序類計算、按天匯總的基礎數據報表等;

秒級實時分析:對時效性要求非常高的場景,比如監控告警、質量診斷指標等;

多維實時分析:對數據的歸類聚合,比如用戶分群、用戶標簽、設備屬性

在線預測分析:對未來的在線預測能力,比如潛流失用戶、潛付費用戶

技術分享圖片

參考開源的Strom流式計算解決方案,我們自研了一套純C++實現的秒級實時系統,主要用於新增、活躍等通用指標的實時計算,系統可以保證“終端日誌采集->上報後臺->後臺計算->存儲->前臺展示”全流程控制在3秒內,達到秒級刷新。

主要特點有:

1. 增量計算模型:ESP負責計算單位時間(通常為1秒)內的數據增量,然後發送到ESA節點匯總,定期寫入Redis,供前臺查詢;

2. 全整數運算:系統將所有非int類型通過ESA編碼模塊轉換成int,並將映射關系存儲在LevelDB,供查詢時翻譯;

3. 全內存處理:為減少磁盤IO耗時,所有的數據計算和處理都在內存中;

4. 智能容災策略:系統關鍵節點有主備異地部署,支持自動監控和切換。

技術分享圖片

在數據分析過程中,多維交叉分析是一個常見的應用場景,比如用戶分群,就是通過一系列的屬性條件(例如:活躍情況、用戶渠道、用戶畫像、用戶屬性和用戶行為等)篩選出一批符合相應條件的用戶集合,涉及到大量的高維組合操作,通常使用離線系統來處理。為了解決多維交叉的實時性問題,我們引入Roaring Bitmap位圖壓縮算法和改進後的Druid,將維度和設備ID映射到bitmap上,通過維度的預聚合的bitmap數據來完成實時用戶分群功能。一方面通過數據的預聚合,可以大大的壓縮原始的數據;另一方面,配合列式存儲、針對維度的inverted index,將字符串操作轉換成SET的與或非操作,可以準確定位到目標數據而不需要掃描整個數據集,從而將用戶發起查詢到返回結果的整個過程控制在3秒左右。

技術分享圖片

用戶分群同時支持基於規則和基於算法的分群,客戶可以容易通過MTA與廣告平臺的打通,直接對接廣點通和win,甚至可以通過數據開放網關,對接業務自建平臺。

技術分享圖片

甚至,還可以通過移動推送平臺(信鴿)導入功能,導入MTA分群好的用戶設備標識或號碼包,針對不同的用戶群推送不同的方案,有針對性的營銷推廣,達到精準觸達的目的。

技術分享圖片

作為一個公共平臺,客戶的接入門檻是否夠低也是一個事實上的衡量標準。MTA一直強調簡潔高效,只需要在終端簡單的一兩行代碼便可對接整個數據服務系統,同時,還支持埋點的可視化操作,運營人員可以不需要通過開發在項目中硬編碼埋點,而是將常用的自定義事件以可視化界面呈現,可見即可得,大大降低接入和使用門檻,助力客戶挖掘數據價值。

技術分享圖片

騰訊大數據產品總監洪桃李Torryhong再三強調:大數據能力是企業必備的技能,作為一個公共平臺,有義務低成本開放騰訊大數據沈澱的大數據處理能力,幫助企業洞察用戶、行業變遷及資本走向,支持公司戰略決策,精細化運營。未來,MTA將繼續提升平臺的能力,繼續優化並構建一套高效率、高可伸縮的統一計算平臺,並在廣告和金融等垂直領域深耕細作,通過整合大數據能力,給客戶帶來更多的價值。


專題介紹

ArchSummit全球架構師峰會是InfoQ中國團隊推出的面向高端技術管理者、架構師的技術大會,參會者數量1000+。其中,出品人及演講嘉賓中高級技術專家比例占79%,90%擁有10年以上開發經驗。本次“TEGer在全球架構師峰會”專題將帶來TEG人在會上的系列主題分享。


你認為,如何結合大數據、雲計算和人工智能技術賦能企業更多的大數據價值?


技術分享圖片

騰訊技術工程 |騰訊移動分析系統揭密