http://www.techweb.com.cn/network/system/2016-02-22/2281763.shtml
1速客、埋點
所謂「埋點」,就是在正常的功能邏輯中添加統計邏輯溺职。拿統計微信右上角「+」的點擊次數為例,上報的數據可以采用KEY-VALUE形式浪耘,我們定義 KEY為「CLICK_ADD_BTN」乱灵,VALUE的值為點擊的次數
2阔蛉、上報
并不是每統計到一次事件或者狀態(tài)就會發(fā)起數據上報,客戶端統計到的數據會先暫時存儲在內存或者磁盤上癞埠,當用戶啟動、退出應用程序的時候聋呢,或者在其他更合適的時機,將當前周期統計到的事件批量上報到服務器通铲,這樣做的目的主要是考慮到與服務器多次建立連接的性能損耗(詳見《不得不知的TCP和UDP》) 和流量問題(相同大小的數據分多次發(fā)送比一次發(fā)送要消耗更多流量),另外客戶端在上報具體的統計事件之外器贩,還會將標識用戶的ID一并上報朋截,后續(xù)用于計算用戶相關的數據如日使用用戶和留存率等。
3.后臺記錄日志
數據上報到服務器后部服,服務器會將客戶端上報的原始數據存儲到服務器的磁盤中。一般來說廓八,非強實時性的數據上報到服務器后,并不會立即參與計算
4.計算&入庫
如果我們的產品達到微信這種日登陸數五六億剧蹂,那么每天上報的統計數據將是海量的,為了從這種海量的數據中計算出「+」的使用次數宠叼、使用用戶數等信息,就需要用到「數據倉庫工具」冒冬,比如當下流行的Hive處理工具,它基于Hadoop分布式系統基礎框架窄驹,利用計算機集群的能力進行分布式計算。
一般情況下证逻,原始數據經過數據倉庫工具處理后,對應的日志文件還會在服務器上保留一段時間(一般3~7天)囚企,以便追溯統計問題
5.展示
報表系統通過前端頁面用戶的輸入獲取查詢條件,然后通過后臺數據庫查詢獲得結果龙宏,在前端展示出來。