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

騰訊移動分析系統揭密



作者簡介: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人在會上的系列主題分享。

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