聊聊我們在業(yè)務(wù)鏈路升級中做的數(shù)據(jù)洞察
一 概述
關(guān)于數(shù)據(jù)相關(guān)的詞條很多,雖然有不同的定義,但是本質(zhì)上是相輔相成,通常結(jié)合使用才能拿到結(jié)果。
類比詞條諸如 數(shù)據(jù)分析,數(shù)據(jù)挖掘, 數(shù)據(jù)洞察。
以下為wiki上的定義
- 數(shù)據(jù)分析:是一種統(tǒng)計學(xué)常用方法,其主要特點是多維性和描述性。有些幾何方法有助于揭示不同的數(shù)據(jù)之間存在的關(guān)系,并繪制出統(tǒng)計信息圖,以更簡潔的解釋這些數(shù)據(jù)中包含的主要信息;
- 數(shù)據(jù)挖掘:是一個跨學(xué)科的計算機科學(xué)分支。它是用人工智能、機器學(xué)習(xí)、統(tǒng)計學(xué)和數(shù)據(jù)庫的交叉方法在相對較大型的數(shù)據(jù)集中發(fā)現(xiàn)模式的計算過程;
- 數(shù)據(jù)洞察:這一項目前沒有wiki詞條,基于普遍認(rèn)知,是基于數(shù)據(jù)分析和數(shù)據(jù)挖掘,結(jié)合業(yè)務(wù)場景后,圍繞業(yè)務(wù)鏈路定義統(tǒng)一口徑,進而更好的分析問題,并且能夠進一步做策略改進。
三者分析手段本質(zhì)上都是對數(shù)據(jù)進行加工獲取信息,但是目標(biāo)不盡相同,以下是我個人的理解。
- 數(shù)據(jù)分析更側(cè)重,基于人的理解動線,結(jié)合人對業(yè)務(wù)和數(shù)據(jù)的理解,產(chǎn)出分析結(jié)果。這里更加強調(diào)人的分析;
- 數(shù)據(jù)挖掘同理數(shù)據(jù)分析,只不過角色從人變?yōu)榱藱C器;
- 數(shù)據(jù)洞察是在數(shù)據(jù)分析和挖掘的基礎(chǔ)上,引入了業(yè)務(wù)場景的概念,梳理出圍繞業(yè)務(wù)場景結(jié)果的影響因素和鏈路,目標(biāo)是對抽象問題進行歸因、拆分以及更好更快的形成改進方向。這個也是我們業(yè)務(wù)開發(fā)同學(xué)最有優(yōu)勢的地方。
二 核心要素
我們發(fā)現(xiàn),數(shù)據(jù)洞察的理解,實際上是可以分為幾個核心要素。
這里我們逐一來簡要說明。
1 數(shù)據(jù)
干凈有效的數(shù)據(jù)才是我們要的數(shù)據(jù),否則會誤導(dǎo)后續(xù)的結(jié)論。e.g. 登錄鏈路因為是業(yè)務(wù)安全水位保證的第一環(huán)節(jié),經(jīng)常有來刷的流量,如何避免因為灰黑產(chǎn)的流量,影響后續(xù)的判斷,這個也是重中之重;
2 業(yè)務(wù)場景
業(yè)務(wù)場景是區(qū)分?jǐn)?shù)據(jù)洞察和其他數(shù)據(jù)分析方式的核心區(qū)別,也可能是業(yè)務(wù)同學(xué)區(qū)分bi分析的最大的價值點。任何分析策略都脫離不開對業(yè)務(wù)場景的理解,而不是單純的理解數(shù)據(jù)。
定義“一次完整業(yè)務(wù)鏈路行為”是核心,圍繞著一次行為鏈路,才能就鏈路分析有用的策略。
3 口徑
口徑是什么?我理解口徑是在合理的數(shù)據(jù)維度和好的目標(biāo)的基礎(chǔ)上對業(yè)務(wù)場景的理解,口徑上也會結(jié)合對業(yè)務(wù)場景的理解和對業(yè)務(wù)目標(biāo)的理解。數(shù)據(jù)維度可能是多種多種的。
還是以登錄舉例,正常的理解,一個用戶在一個設(shè)備上登錄是正常情況,但是手淘會出現(xiàn)多賬號登錄同設(shè)備,這個也是常態(tài)數(shù)據(jù)特征,那究竟在定義登錄成功率的時候,是使用設(shè)備維度(認(rèn)為同一個設(shè)備只要有一個用戶登錄成功即算設(shè)備成功)還是使用用戶維度(只看用戶維度數(shù)據(jù),不結(jié)合設(shè)備定義指標(biāo)),也是需要考量的。
三 數(shù)據(jù)建設(shè)
1 數(shù)據(jù)的清洗是保證數(shù)據(jù)有效的手段
我們獲得的各種打點框架和不同的數(shù)據(jù)源,可能維度和信息量都是不統(tǒng)一的,比如有的數(shù)據(jù)源有設(shè)備信息但是沒有用戶信息,有的數(shù)據(jù)源有用戶信息,但是設(shè)備信息不完整;甚至同一個時間字段,格式也是不統(tǒng)一的。
這個時候就需要先對數(shù)據(jù)進行加工了,剔除臟數(shù)據(jù),補充遺漏點位,加工出干凈的單維度信息,并且保證各數(shù)據(jù)源數(shù)據(jù)加工出的數(shù)據(jù)維度和格式統(tǒng)一,比如標(biāo)準(zhǔn)的設(shè)備id或者用戶id及時間等。
2 數(shù)據(jù)建設(shè)是補充也是演進
數(shù)據(jù)質(zhì)量問題,不止要從數(shù)據(jù)的清晰看,也數(shù)據(jù)產(chǎn)生的點來看。如果數(shù)據(jù)有缺失或者不統(tǒng)一,數(shù)據(jù)清洗又搞不定,就需要進行開發(fā)了,比如數(shù)據(jù)庫增加字段,打點框架增加打點邏輯。
數(shù)據(jù)建設(shè)是一個長期的過程,不止是為了補充現(xiàn)在要分析的內(nèi)容,也是要形成一套標(biāo)準(zhǔn)的交付產(chǎn)物。更進一步,日常做需求和項目的時候,打點數(shù)據(jù)質(zhì)量也是要考慮的,畢竟做需求上線不是結(jié)果,拿到業(yè)務(wù)目標(biāo)才是結(jié)果。
四 業(yè)務(wù)場景
1 業(yè)務(wù)場景的定義
業(yè)務(wù)場景是在整個業(yè)務(wù)洞察中最特殊的一個環(huán)節(jié)。這個環(huán)節(jié)定義的好壞,直接影響了問題拆分結(jié)果的有效性。
不同的業(yè)務(wù)場景具備各自的特殊性,需要結(jié)合業(yè)務(wù)特性來分析。
按照目前我的經(jīng)驗來看,業(yè)務(wù)場景的定義也是有一些核心方法的。
- 業(yè)務(wù)場景中,最終產(chǎn)物是誰?
還是以登錄舉例,登錄的最終目標(biāo)肯定是為了下發(fā)登錄態(tài),否則也沒有人回來“玩一玩”登錄,那圍繞下發(fā)登錄態(tài)的鏈路,就是我們想要的業(yè)務(wù)鏈路;
其他的業(yè)務(wù)也同理,比如訂單的話,是圍繞庫存來跑;
- 業(yè)務(wù)場景中,你需要分析的維度是多深;
這個也比較好理解,以上述例子繼續(xù)說,要看登錄的業(yè)務(wù)鏈路的話,需要拆分多種登錄方式不同的鏈路來看?還是說看一個總的登錄鏈路就夠了。
這個維度就只能看分析問題的層次了,一般在洞察初期,當(dāng)然是維度越細(xì)越好,但是越分析往后,維度會逐漸上升,因為隨著對業(yè)務(wù)的洞察,會發(fā)現(xiàn)有些維度雖然深了更完整,但是是分析不出問題的,也就是“過度分析”了。
- 業(yè)務(wù)場景中,你要定義“一次完整業(yè)務(wù)行為”。
數(shù)據(jù)洞察區(qū)分于其他分析方式,最大的優(yōu)勢是在于結(jié)合了業(yè)務(wù)來分析業(yè)務(wù)本身,那直擊業(yè)務(wù)結(jié)果的,一定是完整的業(yè)務(wù)鏈路。
這個點不舉例不太好說明,舉個例子,登錄過程。
大家有想過打點會是什么樣么,和一次完整業(yè)務(wù)行為會有啥差異么。
正常打點是下面這種樣子的。
表1
這兩條離散的打點就是一次完整登錄行為,但是是基于rpc請求維度的表達(dá)。
2 結(jié)合業(yè)務(wù)場景定義的數(shù)據(jù)結(jié)構(gòu)演進
打點數(shù)據(jù)描述了一個階段性的結(jié)果。上面例子描述的,就是用戶在2021-12-1 11:20:54發(fā)起了一次賬密登錄請求,但是因為環(huán)境不安全,安全挑戰(zhàn)要求核實身份(比如發(fā)短信核實),用戶操作了核身操作,在2021-12-1 11:21:20發(fā)起了免登,下發(fā)了登錄態(tài)。
這個就是一次登錄行為。業(yè)務(wù)洞察的核心也是圍繞這個點進行。
假如我們的分析維度,是總的登錄維度或者分登錄方式的登錄維度分析,這個兩條數(shù)據(jù)的打點其實就不適合我們,我們僅需要登錄方式,最終結(jié)果,時間以及設(shè)備id就夠了。
表2
或核身沒有通過
表3
但是我們也會發(fā)現(xiàn),這個數(shù)據(jù)描述的行為并不完整,比如表2并不能描述登錄過程經(jīng)過了核身這個特性。
這個時候,我們就需要數(shù)據(jù)結(jié)構(gòu)進行下一個階段的演進。
我們引入了statustag來描述路徑。
statustag格式:0^0^12|0^1^abcde.
前后經(jīng)過|分割為兩種格式,第一個格式為bitmap,表示0版本;第二個格式為字符串,表示1版本格式,字符串為經(jīng)過的未加到bitmap的節(jié)點(埋點畢竟不是強要求,總有需求上線后,沒有加bitmap)。
這個tag描述經(jīng)過的路徑為,經(jīng)過bx1100結(jié)果,經(jīng)過了一版本的4和8的節(jié)點,和二版本的abcde節(jié)點。
有了這個tag,就可以描述更多的信息。
3 業(yè)務(wù)場景數(shù)據(jù)的可視化表達(dá)
單純的數(shù)據(jù)并不容易洞察,也不是長期運營治理的合理方式。這個時候我們就需要可視化來搞事情。
可視化的內(nèi)容包含我們想要表達(dá)的內(nèi)容,比如漏斗,比如曲線。
目前可視化表達(dá)常見的是漏斗和報表。
- 漏斗舉例
圖1
做漏斗很麻煩,需要一個點一個點手動定義。但是漏斗對初期理解鏈路,分析問題益處非常大。
這個時候我們需要的,是可以通過結(jié)構(gòu)化的數(shù)據(jù)源,來快速生成可視化漏斗。
我們可以通過生成數(shù)據(jù)的時候就指定約定來快速生成結(jié)構(gòu)化數(shù)據(jù)。
- 基于狀態(tài)機+約定打點
1. 引入狀態(tài)機變化記錄打點日志;
2. 結(jié)合結(jié)構(gòu)化的畫圖能力,定向輸出約定日志,動態(tài)畫圖
- 狀態(tài)機的核心要素
1.statusTag記錄路徑信息;
2.status和old_status記錄節(jié)點上下游信息;
3.depth記錄節(jié)點深度;
最終產(chǎn)出的一次登錄行為登錄數(shù)據(jù)
五 口徑
口徑是基于數(shù)據(jù)和業(yè)務(wù)場景的產(chǎn)出結(jié)果??趶揭彩亲钪匾狞c,口徑代表了我們基于數(shù)據(jù)和業(yè)務(wù)場景對業(yè)務(wù)結(jié)果的理解,比如登錄的口徑,在財年初定義,登錄成功率從9x%提升到9y%,這個提升空間,也是根據(jù)數(shù)據(jù)來計算的。
1 口徑不要經(jīng)常變動
口徑一旦定義下來,就不要經(jīng)常變動。因為一般定義口徑是最難也是最耗時的,定義口徑的時候,一般我們已經(jīng)完成了對目標(biāo)的拆解,機會的洞察和最終的測算。
2 口徑并不一定是單一口徑
除了上述特性外,口徑也會有單口徑和多口徑,一般都會同時存在,比如登錄過程,在一個總的口徑基礎(chǔ)上,哪怕是一次登錄行為,我們也會拆分多個業(yè)務(wù)階段。
還是以登錄舉例,我們把用戶從進入頁面開始,到發(fā)起登錄行為,定義為意愿口徑,從登錄行為開始到登錄結(jié)果,定義為成功率口徑。這兩塊要解決的問題是不同的,揉到一起,會導(dǎo)致問題變得復(fù)雜,不利于分析。
多口徑也有一個好處,我們可以做階段性的工作,在不同的階段,處理多口徑中其中一部分的鏈路升級。
3 口徑維度定義
口徑維度定義需要結(jié)合場和業(yè)務(wù)的特性,哪怕是同一個業(yè)務(wù)鏈路,可能在不同場中,不同人群定義,也是不同的。
這塊不好說明,舉個例子。
我們C端口徑定義上,是設(shè)備維度,因為C端用戶,天然存在薅羊毛行為,我們會認(rèn)為一個設(shè)備的登錄成功,對于C端就是有益處的。
但是同樣是登錄鏈路,B端定義上,就是用戶維度的,因為B端商家的個體價值都很大,而且不太存在類似C端薅羊毛的行為,用戶維度能讓我們更好的看到用戶行為,以便做體驗上的優(yōu)化。
六 小結(jié)
在數(shù)據(jù)洞察方面,我們也還在學(xué)習(xí)和實踐的路上,并在這條路上已經(jīng)取到了一定的結(jié)果,但是未來空間還是很大。這條路對于業(yè)務(wù)開發(fā)是一個有優(yōu)勢的路,而且業(yè)務(wù)平臺作為業(yè)務(wù)場景的豐富度上,也是獨具優(yōu)勢,我們可以在數(shù)據(jù)洞察做的事情上,更加自由。歡迎大家來一起討論,也歡迎大家來一起探索。
數(shù)據(jù)洞察是業(yè)務(wù)中臺賦能業(yè)務(wù)的有力工具,對業(yè)務(wù)產(chǎn)出數(shù)據(jù)洞察能力,也是我們一個非常大的命題。
商業(yè)跑得快,業(yè)務(wù)中臺可信賴。
彈性計算基礎(chǔ)知識
彈性計算是把計算力變成普惠的公共資源,讓不同體量的用戶任何時候都能用親民的價格享受到高可用、高性能、高效率的基礎(chǔ)IT計算服務(wù),所以可以說彈性是云計算的核心能力。本課程對彈性的重要性、彈性的定義、阿里云如何做彈性等。點擊閱讀原文查看詳情。