整天看用戶埋點數(shù)據(jù),知道數(shù)據(jù)是咋來的嗎?

4 評論 42323 瀏覽 498 收藏 7 分鐘
🔗 产品经理的不可取代的价值是能够准确发现和满足用户需求,把需求转化为产品,并协调资源推动产品落地,创造商业价值。

我們平時看到的報表復(fù)雜而多樣,能夠通過多種緯度的數(shù)據(jù)評估用戶的使用習慣和對應(yīng)功能的價值。然而這些報表是如何產(chǎn)生的呢?今天咱們就看看上報數(shù)據(jù)一步一步變成報表的大致流程。

所有上報的數(shù)據(jù)都是為了記錄一次事件的發(fā)生或者描述一個狀態(tài),具體的上報數(shù)據(jù)可以設(shè)計為KEY-VALUE的形式或者數(shù)據(jù)組合的形式。KEY-VALUE的形式主要用來統(tǒng)計簡單的計數(shù)類上報,如按鈕點擊的次數(shù),某個選項的值等,KEY用來區(qū)分不同的事件,VALUE代表事件發(fā)生的次數(shù)、狀態(tài)值等;數(shù)據(jù)組合的主要用來描述一個事件或者狀態(tài)需要多種屬性描述的場景,比如下載成功事件,描述這個事件的數(shù)據(jù)組合可能包括對應(yīng)的下載地址、下載渠道來源、下載耗時等信息。

當上報數(shù)據(jù)設(shè)計好后,后續(xù)的工作才能正常開展。下面一步一步說。

1、埋點

所謂「埋點」,就是在正常的功能邏輯中添加統(tǒng)計邏輯。拿統(tǒng)計微信右上角「+」的點擊次數(shù)為例,上報的數(shù)據(jù)可以采用KEY-VALUE形式,我們定義KEY為「CLICK_ADD_BTN」,VALUE的值為點擊的次數(shù)。當用戶點擊「+」時,展示菜單的代碼會通過按鈕的「回調(diào)」(詳見《聊聊同步、異步和回調(diào)》)來觸發(fā)執(zhí)行,程序猿在業(yè)務(wù)代碼執(zhí)行完后,又加上了統(tǒng)計代碼,把「CLICK_ADD_BTN」對應(yīng)的VALUE加1,「+」被統(tǒng)計到了一次使用。

2、上報

1

并不是每統(tǒng)計到一次事件或者狀態(tài)就會發(fā)起數(shù)據(jù)上報,客戶端統(tǒng)計到的數(shù)據(jù)會先暫時存儲在內(nèi)存或者磁盤上,當用戶啟動、退出應(yīng)用程序的時候,或者在其他更合適的時機,將當前周期統(tǒng)計到的事件批量上報到服務(wù)器,這樣做的目的主要是考慮到與服務(wù)器多次建立連接的性能損耗(詳見《不得不知的TCP和UDP》)和流量問題(相同大小的數(shù)據(jù)分多次發(fā)送比一次發(fā)送要消耗更多流量),另外客戶端在上報具體的統(tǒng)計事件之外,還會將標識用戶的ID一并上報,后續(xù)用于計算用戶相關(guān)的數(shù)據(jù)如日使用用戶和留存率等。

3、后臺記錄日志

數(shù)據(jù)上報到服務(wù)器后,服務(wù)器會將客戶端上報的原始數(shù)據(jù)存儲到服務(wù)器的磁盤中。一般來說,非強實時性的數(shù)據(jù)上報到服務(wù)器后,并不會立即參與計算,獲得最終的統(tǒng)計結(jié)果,比如一個功能的日使用次數(shù),日用戶數(shù),日留存等數(shù)據(jù),而是等到服務(wù)器負載較低的時間段利用預(yù)先配置的計劃任務(wù)進行離線處理。這樣處理的目的是為了節(jié)約服務(wù)器資源(錢),因為大家肯定不想因為計算統(tǒng)計數(shù)據(jù)而影響實時業(yè)務(wù)的處理效率。

4、計算&入庫

2

報表中展示的數(shù)據(jù),并不是客戶端上報的原始數(shù)據(jù),比如「+」的使用次數(shù)、使用用戶數(shù)、日留存率這三組數(shù)據(jù),都是通過對客戶端上報的「CLICK_ADD_BTN」對應(yīng)VALUE值的累加并結(jié)合上報用戶ID二次計算得出的。

如果我們的產(chǎn)品達到微信這種日登陸數(shù)五六億,那么每天上報的統(tǒng)計數(shù)據(jù)將是海量的,為了從這種海量的數(shù)據(jù)中計算出「+」的使用次數(shù)、使用用戶數(shù)等信息,就需要用到「數(shù)據(jù)倉庫工具」,比如當下流行的Hive處理工具,它基于Hadoop分布式系統(tǒng)基礎(chǔ)框架,利用計算機集群的能力進行分布式計算。當「數(shù)據(jù)倉庫工具」計算出最終的結(jié)果后,計劃任務(wù)會將結(jié)果(「+」的日使用次數(shù)、日使用用戶數(shù)等數(shù)據(jù))保存到數(shù)據(jù)庫中,也就是「入庫」過程?!溉霂臁购蟮臄?shù)據(jù)才能與前端對接,組成報表展示系統(tǒng)。

一般情況下,原始數(shù)據(jù)經(jīng)過數(shù)據(jù)倉庫工具處理后,對應(yīng)的日志文件還會在服務(wù)器上保留一段時間(一般3~7天),以便追溯統(tǒng)計問題,所以,如果發(fā)現(xiàn)統(tǒng)計數(shù)據(jù)有問題問題,一定要及時反饋給負責的程序猿,否則就會「死」無對證咯。

5、展示

3

當數(shù)據(jù)「入庫」后,報表的展示就水到渠成了。報表系統(tǒng)通過前端頁面用戶的輸入獲取查詢條件,然后通過后臺數(shù)據(jù)庫查詢獲得結(jié)果,在前端展示出來。

這里只是簡述了埋點數(shù)據(jù)上報、統(tǒng)計的大致流程,每個過程中還有很多細節(jié)要解決,如后臺日志亂碼問題、客戶端異常導(dǎo)致數(shù)據(jù)丟失等。一旦數(shù)據(jù)出現(xiàn)問題,經(jīng)常需要聯(lián)系各方人員定位原因。在此呼吁廣大的產(chǎn)品大蝦一定要關(guān)心、愛護為你做統(tǒng)計需求的程序猿,他們上輩子都是偷了蟠桃的孫悟空。

對咯,今天別忘了看報表哦。

#專欄作家#

給產(chǎn)品經(jīng)理講技術(shù),微信公眾號(pm_teacher),人人都是產(chǎn)品經(jīng)理專欄作家。資深程序猿,專注客戶端開發(fā)若干年,對前端、后臺技術(shù)略懂,熱衷于對新的科技領(lǐng)域的探索。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,不得轉(zhuǎn)載。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 同問,埋點的時機如何把握

    來自廣東 回復(fù)
  2. 初入行的產(chǎn)品怎么知道埋點的時機的??? ?

    來自四川 回復(fù)
  3. 如何做到無埋點統(tǒng)計來路呢?

    來自陜西 回復(fù)
  4. ?

    來自浙江 回復(fù)
专题
12196人已学习14篇文章
随着科技的发展,AI技术渗透进各个行业里边,AI图像生成和识别技术有了更大的突破性,本专题的文章分享了AI图像识别。
专题
35437人已学习18篇文章
内容运营的正确姿势,你都能在这里找到!
专题
16102人已学习13篇文章
在产品工作中,产品的可行性分析就太重要了,这是产品从想法到实施必须经历的。本专题的文章分享了如何做产品可行性分析。
专题
15647人已学习12篇文章
运费是电商的基础功能模块之一,承担着商品运费计算的作用。本专题的文章分享了如何设计运费规则。
专题
16915人已学习12篇文章
如何搞懂财务和业务之间的关系,并推进业务系统财务模块的建设呢?本专题的文章分享了财务系统的设计指南。