騰訊周東祥:騰訊游戲大數據應用技術架構
原創【51CTO.com原創稿件】2016年11月25-26日,由51CTO.com主辦的WOT 2016大數據技術峰會在北京粵財JW萬豪酒店隆重召開。自2012年以來,WOT品牌大會秉承“專注技術、服務技術人員”的理念已成功舉辦了十二屆,不僅積累了大量的專家資源,更獲得廣大IT從業者和技術愛好者的認可和好評,已成為業界重要的技術分享及人脈拓展平臺。
在本屆WOT2016大數據技術峰會的“系統架構”主題專場,來自騰訊的高級工程師周東祥做了“騰訊游戲大數據應用技術架構”的精彩主題演講。
【講師簡介】
周東祥,從2010年畢業進入騰訊互動娛樂部門工作,一直致力在騰訊游戲運營開發工作。先后負責業務受理系統,盜號自助系統,游戲大數據平臺系統以及近2年在騰訊游戲大數據運營開發中積累大量的大數據開發與應用經驗。先后在公司內分享騰訊游戲大數據開發和應用平臺多次。同時,負責公司IEG互動娛樂運營開發、Web前端開發、數據分析、基礎研究等通道晉級評審委員秘書。
會后,51CTO記者對周東祥老師進行了采訪,分享了他在騰訊游戲大數據應用技術架構方面的心得。
騰訊游戲大數據應用技術架構的設計思路
騰訊游戲大數據應用技術架構
平臺內游戲急速增長,游戲個數多;數據源異構化突出,數據量大;一游戲一世界,數據抽象模型困難。如何利用大數據技術幫助產品快速、有效的實現游戲數據精細化運營?這些都是擺在游戲大數據應用面前的問題。
據周東祥介紹,大數據的架構大同小異,基本上都包含采集、傳輸、存儲、計算、應用,還有相關數據挖掘。在游戲特定場景下有一些應用的服務痛點和想要突破的問題。在游戲大數據應用服務高頻營銷場景中,需要用戶行為的實時規則。
在王者榮耀等游戲中,都會看到游戲內實時任務獎勵體系,例如,玩幾局排位賽可以立刻領鉆石,同樣的累計登錄、連勝、殺人、推塔等任務完成也會給到相應的獎勵。在以前沒有大數據技術與游戲運營結合情況下,游戲后臺開發更多是以事務性DB來做核心方案實施。
這樣做主要有如下問題和痛點: 功能方面,支持玩家的歷史數據、時間多維度、千人千面差異化等功能會有比較高的開發和運營成本。運營層面,這種實時規則營銷場景運營調整頻率高、變化快。結合游戲版本開發重度耦合起來實施比較慢。騰訊現在提供的方案更多的是通過大數據技術能力,結合騰訊游戲的應用場景,幫助游戲快速有效的做相關的數據精細化運營服務。他認為,一個游戲就像一個人的虛擬人生,無論是規則模型還是挖掘模型,通用的很少。基于實時的針對于不同用戶的維度,時間維度或者空間維度,再結合營銷場景、渠道等等,跟游戲相關的場景做結合,提供給游戲更高速、更低成本方式的實現游戲數據精細化運營。
騰訊游戲大數據應用技術架構
對游戲大數據的處理一些方式和經驗
在游戲的后臺,數據源復雜多樣。這些異構化的數據源帶來了巨大的挑戰,把玩家有效的數據轉變成大數據實時存儲,騰訊為此做了大量的工作。經過幾年的實踐發現,開源的組件解決的都是某一點的問題,在實際產品過程中會碰到各種各樣的問題,所以往往要做一些實際的優化,使之更加適于公司運維、網絡環境,例如標準化和差異化服務結合:標準化傳輸和延遲性的數據傳輸相結合。
所有數據一定是要實時采集的,采集之后有兩個計算路徑,***路徑需要放在離線流程里,主要計算用戶畫像和標簽。對于用戶標簽來說,更多的是用戶來自于哪個地方,是來自于用戶行為,還是來自于客戶端,或者后臺的基于計算任務的監控數據。基于用戶行為還會打幾種標簽,例如:活躍標簽、付費標簽等。這個標簽可以分層處理的時候來快速適配,而不是像以前拿到一個原數據表,看到的就是一個表,而看不出來這個表是為了實現付費還是為了實現活躍。在整個游戲大數據運營環境中,這是最耗費精力和資源的事。第二路徑就是實時計算流程,也是目前應用最多的數據流程。實時計算流程,可以做實時用戶標簽計算、實時統計分析計算、實時用戶規則觸發等。每種處理方式都有核心應用場景。同時,處理方式和用的組件也會有差異。
對于產品來說,獲取的數據越多越好,數據被放棄的理由主要有兩種:一,游戲版本增加了生化對戰模式,只實行一個月,一個月之后這個模式沒有了,數據就會自動消失。二,數據量比較大,使用率比較低。從數據管理層面給產品進行反饋,說明這個數據意義不大,存儲浪費很多空間。
數據的重要性,更多的是指游戲用戶行為關鍵的數據,例如能影響到游戲運營的關鍵環節:活躍還是流失,或是付費等。這些數據關系到游戲內部的核心運營數據,就會要求游戲開發商必須上報,否則將無法提供標準化、模塊化數據經營分析的基礎服務。所以,每次跟游戲開發做對接的時候,會給一個標準化,必要的日志模板,剩下的日志可以選擇性上報,根據游戲的運營節奏適當的增加或減少。
規則模型應用案例
在此,周東祥例舉了三個場景。
一.在與游戲《王者榮耀》合作中,用戶在登錄時,如果是***次注冊,會有需求引導,這個新手引導的過程,對于高手玩家,或者職業玩家來說,可能會有干擾。一個新手引導大概需要二三十分鐘,有些用戶認為過于繁瑣,就會放棄游戲,這些用戶在這個階段流失了。而騰訊為此游戲提供了用戶畫像,這個用戶可能在其他游戲里表現的非常好,那么就沒必要給他推薦很低級的新手引導的過程,向這些用戶提供用戶畫像的接口,就相當于游戲一開始,他就是高玩,也可能會推薦一段簡短的引導視頻。如果是菜鳥級別,會推出原版新手引導的流程,這個場景可以總結為用戶畫像與游戲運營結合。
二.游戲核心的應用指標是要有營收和用戶。《王者榮耀》有時候會有打折,不同的用戶折扣不同,這就是千人千面的精準推薦非常經典的案例。這樣一來,給游戲帶來的收入非常可觀。也可以做一些非常靈活的調整,例如,有的用戶是核心用戶,可能給他的折扣就高,他留下來的意愿就更加強烈,這實際上是經過數據挖掘的模型精準的匹配。
三.所有的規則模型都是基于多年的運營經驗,例如在十一活動期間,可能會有大量的玩家有空閑時間,就會出很多規則活動。以前的方式是在游戲開發的后臺做很多規則,這個開發量若要保證準時上線,會有非常大的成本投入。實時規則出來之后,有了已經之前就實時計算和清洗出來的用戶行為指標,只需要做一次規則配置,這個過程就非常簡單了。統一的指標的規則平臺已經建好,就可以輕松地使用,也可以隨時在線上針對時間窗口、指標取值范圍等規則做調整,靈活、高效且低成本。
對實時計算體系的要求更高
在電商或者微信領域,場景比較單一,更多的經歷放在推薦場景上。而游戲里的場景多種多樣,變化很快,在游戲內產生的行為規則也非常多,數據的維度或擴散的度量也很多。如何通過實時運算來保證在清晰的實時規則指標下快速清洗完,反饋到游戲里來做實時干預,是至關重要的。目前,騰訊做到的是用戶行為在游戲內產生,到***觸達到游戲用戶可以控制在200~600毫秒左右。如果維度擴散很大,例如這個玩家在游戲內用英雄殺了多少人,每殺一個人就是一次計算,這個并發量還是比較大的。
還是以《王者榮耀》為例,十一活動的時候,一天***峰每秒鐘日志量超過一百萬,對于后端來說,既要把一百萬承接下來,又要做實時計算,還要把實時計算反饋到游戲里,這個過程需要做很多優化,包括采集端、存儲端、傳輸端,還有實時計算。
為了保證數據處理的完整性和一致性,在處理一次失敗之后,會寫到異步流程里,盡量保證計算不是為了容錯而導致擁塞,引起后面的堆積,一定要采用這樣一個同步加異步處理的過程。在傳輸和采集端必須是非阻塞,不能期望用戶長鏈接,不停地吐數據,這個吞吐量很大。如果后臺的網絡有問題,連接有問題,并發數有問題,相關的網絡狀態有問題,也會導致連接不上,此時,采用的是無連接的UDP的方式,并且做了大量的優化,基本保證百萬分之一左右的丟包率,所有的用戶行為都會實時監測到。
游戲大數據實時統計計算體系
對大數據新人的建議
周東祥認為,作為一個新人想要做游戲大數據,可以從兩個核心的階段去做。***階段,只提供基礎服務。觀察游戲的在線容量,用戶留存情況,這部分在游戲運營層面算是基礎的服務,還包括做在線的用戶分析。
第二階段,基于***階段的用戶分析的基本完成,就會發現一些問題:有些用戶不付費,有的用戶玩一天后就流失了,或者游戲關卡設置、游戲內容設置有問題等,可能針對這些情況提供一些相關建議。有的用戶參與度不夠,在某個營銷活動中觸達效果不好,需要基于之前的營銷方案不停地沉淀,結合自信心場景,才能給游戲產品和策劃提供優秀的、可靠的推薦模型、分析模型。
在增值服務的過程中,如何使用基于之前的分析和沉淀下來的模型?在這個階段要做的就是增值服務,怎樣和游戲內的產品結合,幫助游戲提高運營的質量,包括運營的效率,運營指標的提升,這是游戲產品開發最關心的。第二,如何通過實時的,更加精準的挖掘,來做精準推薦,做一些可能幫助游戲增長收入、增長活躍度的工作。
游戲大數據與微博電商大數據的區別
說到微博、電商與游戲的區別,周東祥表示,大數據架構在底層來說一定是一致的,也沒有太大區別,游戲中也有所謂的精準推薦,也有實時規則。包括現在比較火的如何把分析做的更快,一定是結合到自己產品的實際場景當中來做相關的區分,舉個例子,在電商平臺購物,用戶關注的物品,平臺就會為用戶做推薦,甚至跳過任何一個網站,都能看到之前瀏覽的產品。電商平臺會把用戶的行為推給第三方,在登錄第三方平臺的時候,如果用戶確實在之前買過這個產品,就會受到彈出的方式的不停干預。互聯網任何一個網頁里面都可以實時的干預用戶。實際上電商已經做好了模型,這個網站已經有這個模型做所謂的廣告推薦的方式。
同樣在微博產品中,一些內容咨詢的推薦,例如今日頭條,產品推薦、內容推薦是比較核心的,基于用戶和用戶看到的文章不停地做模型訓練,這樣就可以不停地加實時規則向用戶推薦。
對于游戲,實際上也是如此。游戲有很多渠道,不僅是游戲內,還有平臺渠道:微信手Q,官網等,將這些渠道分層,例如官網,游戲用戶在上面去點,就會把規則類嵌到平臺或者營銷渠道里,思路和方法都是一樣的,只是說如何利用大數據架構把這種推薦放在合適的游戲和營銷場景里來,幫助產品或平臺做更多的精細化運營。如果數據做不到實時與產品和游戲相結合,提供給產品更多的大數據的增值精細化服務價值,那么***大數據服務可能只是數據咨詢服務了。
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】