效果分析的關(guān)鍵是「指標能算出來」

0 評論 6500 瀏覽 24 收藏 41 分鐘

不要覺得標題奇怪哦,要知道企業(yè)在數(shù)據(jù)驅(qū)動發(fā)展進程中必然會遇到指標算不出來的情況,而且隨著企業(yè)規(guī)模的不斷擴大,這一問題會持續(xù)伴隨。本篇文章就從指標平臺的角度來聊聊怎么解決指標算不出來的問題,快來看看吧。

看到題目會不會有一些奇怪?這算什么關(guān)鍵……

經(jīng)歷過才知道,這是一個不起眼但卻極為重要的部分,企業(yè)在數(shù)據(jù)驅(qū)動發(fā)展進程中必然會遇到指標算不出來的情況,而且隨著企業(yè)規(guī)模的不斷擴大,這一問題會持續(xù)伴隨?!爸笜四芩愠鰜怼?涵蓋了兩個方面:有值、準確,這中間不僅包括數(shù)據(jù)治理的問題,還包括指標管理和平臺應(yīng)用等諸多問題,我們細數(shù)常見的問題如下:

  • 沒有看數(shù)據(jù)的地方
  • 能看到數(shù)據(jù),但數(shù)據(jù)不準
  • 驗證數(shù)據(jù)準確,但不知道數(shù)據(jù)對應(yīng)的口徑是什么
  • 同一指標不同平臺看到的數(shù)據(jù)不一致
  • 協(xié)調(diào)多個平臺好不容易數(shù)據(jù)準確一致,新起個項目,所有事情重新來一遍

從產(chǎn)品的角度看,這些問題最主要的原因是沒有一個統(tǒng)一且完整的指標平臺,今天我們從指標平臺的角度聊聊上面問題的解法。指標平臺不同于報表平臺,其關(guān)鍵在于與投放平臺耦合,自動呈現(xiàn)各策略數(shù)據(jù)。可以分為四個環(huán)節(jié):

效果分析的關(guān)鍵是指標能算出來(上)……

圖1

每個環(huán)節(jié)都極為重要,本文我們重點聚焦前兩個環(huán)節(jié)——“數(shù)據(jù)底座”部分,因為只有指標算出來,數(shù)據(jù)才有用武之地,數(shù)據(jù)驅(qū)動才有落地的可能。

一、簡單說說指標

無論指標平臺多么復(fù)雜,最終都會以指標的形態(tài)對外呈現(xiàn),因此我們先梳理一下指標的邏輯,看如下需求描述:“企業(yè)運營人員投放一些經(jīng)營策略,策略運行一段時間后需要分析效果,于是設(shè)計一些指標,并聯(lián)系數(shù)據(jù)人員給出數(shù)據(jù)需求……”。從這一描述可以看出,指標與各個業(yè)務(wù)場景緊密耦合,隨業(yè)務(wù)場景的變化指標形態(tài)也千變?nèi)f化,列幾個指標感受一下:

  • “頁面點擊UV”
  • “成單筆數(shù)”
  • “頁面瀏覽時長”
  • “成單金額”
  • “XX區(qū)域客戶總賬戶余額”
  • “XX活動達標率”
  • “理財客戶持倉金額年日均凈增”

這其中既有與動作相關(guān)的事件類指標,也有與結(jié)果屬性相關(guān)的狀態(tài)類指標,我們把指標做一下拆分:

效果分析的關(guān)鍵是指標能算出來(上)……

圖2

公式中四個元素的組合即為指標,通過這一公式我們重新描述一下上面的指標:

效果分析的關(guān)鍵是指標能算出來(上)……

表1

業(yè)務(wù)場景的梳理是為了讓我們能更完整體系的看清指標的本質(zhì),從而抽象出共性,形成指標的底層邏輯,共性抽象的越完整,功能模塊的適用性越強。在上面公式的基礎(chǔ)上我們進一步細化指標邏輯:

效果分析的關(guān)鍵是指標能算出來(上)……

圖3

上述過程協(xié)助我們充分理解指標邏輯、梳理指標應(yīng)用場景和算法。那么,這些指標具體該如何通過平臺落地呢?指標又如何定義和分類呢?我們再細細往下拆解……

二、指標平臺邏輯

平臺的構(gòu)建是指標有效加工和計算的基礎(chǔ),因此,在詳細介紹指標之前,我們先梳理一下指標平臺的整體框架:

效果分析的關(guān)鍵是指標能算出來(上)……

圖4

指標平臺整體的結(jié)構(gòu)可以分為如上五個模塊:指標庫、數(shù)據(jù)報告、計算引擎、底表模型、數(shù)據(jù)庫(更多細致組件在這個圖中暫不描述,可以依據(jù)各企業(yè)場景做調(diào)整)。這五個模塊與上面的四個環(huán)節(jié)相對應(yīng),本文我們從數(shù)據(jù)報告說起,聊一聊底表模型和指標庫的能力和特性:

1. 數(shù)據(jù)報告

數(shù)據(jù)報告是平臺與業(yè)務(wù)人員交流的聚焦點,各種應(yīng)用場景都體現(xiàn)在上面,結(jié)合不同業(yè)務(wù)場景,在數(shù)據(jù)報告中需要呈現(xiàn)的內(nèi)容如下:

  • 常用指標類型:事件類、當前值類狀態(tài)指標、動態(tài)期初期末凈增、固定期初期末凈增、匯總值類、累加類六種類型。
  • 常用數(shù)據(jù)表達方式:數(shù)據(jù)表格、趨勢圖(柱狀圖)、餅圖三類。
  • 數(shù)據(jù)分析四件套:客群選框、時間選框、指標選框、效果歸因。
  • 報告元數(shù)據(jù):策略投放數(shù)據(jù)、信息變更記錄、分析結(jié)論。

報告中指標數(shù)據(jù)主要分為趨勢數(shù)據(jù)和整體數(shù)據(jù),圖形樣式有如下兩種表達方式:

效果分析的關(guān)鍵是指標能算出來(上)……

圖5

不同角色的人在平臺上看數(shù)據(jù)的視角也不相同:

  • 企劃/財務(wù):聚焦不同時間段的投產(chǎn)比,因此會對固定期初期末凈增值、趨勢圖有較強依賴
  • 業(yè)務(wù)運營:聚焦上線策略的效果以及對自身經(jīng)營任務(wù)的達成情況,因此對數(shù)據(jù)分析模塊、動態(tài)期初期末凈增類指標需求較高
  • 平臺產(chǎn)品:聚焦不同頁面、渠道入口、廣告位整體效果,如果有問題,可以追溯到具體策略,這一角色對事件類指標、固定期初期末凈增、匯總值有較多需求
  • 高層領(lǐng)導(dǎo)及財報審計等:會更關(guān)注當前業(yè)績規(guī)模,因此會對當前值狀態(tài)類指標、固定期初期末凈增指標有較高關(guān)注

通過上面的描述,數(shù)據(jù)報告的支持模塊至少應(yīng)該涵蓋:指標定義庫、圖表編輯器、歸因功能模塊和報告編輯看板,將這四塊功能有效串聯(lián),實現(xiàn)數(shù)據(jù)的有效呈現(xiàn):

效果分析的關(guān)鍵是指標能算出來(上)……

圖6

2. 指標庫

指標是指標平臺的靈魂,指標庫將指標配置的邏輯結(jié)構(gòu)化,在指標平臺中起到承上啟下的作用,不僅能為上層平臺提供分析所需的各種指標,更能通過指標計算評估數(shù)據(jù)治理的效果。

指標庫的功能主要有:定義指標、組裝SQL、將SQL下壓到計算引擎、對外輸出口徑、對外輸出計算結(jié)果。指標庫中輸出的指標包含:指標名稱、指標ID、指標口徑和指標計算結(jié)果四個元素,指標能在不同平臺之間流轉(zhuǎn),確保各個平臺之間指標口徑一致且顯性。

另外,添加指標的屬性信息(例如:所屬業(yè)務(wù)線、標簽信息、所屬經(jīng)營任務(wù)等)則可以構(gòu)建出指標標簽體系,有效增加指標的擴展性且能協(xié)助業(yè)務(wù)線完成整體經(jīng)營體系設(shè)計。

指標配置的結(jié)構(gòu)化必然對底表數(shù)據(jù)結(jié)構(gòu)有要求,因此我們在指標庫中設(shè)計三個環(huán)節(jié)來規(guī)范底層數(shù)據(jù)結(jié)構(gòu),即:數(shù)據(jù)表管理、事件管理、指標設(shè)計,下文做一下詳細介紹:

(1)數(shù)據(jù)表管理

數(shù)據(jù)表管理起到兩個作用:一個是對能進入平臺的表進行約束,另一個是進行表模型維護。從數(shù)據(jù)整體角度講,這一功能是底層數(shù)倉的元數(shù)據(jù)管理模塊,通過這一模塊可以梳理出數(shù)倉中表的邏輯關(guān)系,數(shù)據(jù)表管理模塊中主要維護的表模型有:單表模型、星狀模型;

單表模型是最直觀的建指標方式,用戶只需要選擇表對應(yīng)事件,確定算子,選擇這一表中的字段作為過濾規(guī)則,以此來確定指標口徑,平臺會依據(jù)這一口徑拼裝SQL,直接下壓到計算引擎中計算,計算結(jié)果會返回到上層應(yīng)用平臺。

星狀模型是在單表的基礎(chǔ)上進行了一層擴展,在一個事實表的基礎(chǔ)上關(guān)聯(lián)多張維表,計算過程中能夠通過維表篩選出更復(fù)雜/更完整的規(guī)則。星狀模型如下:

效果分析的關(guān)鍵是指標能算出來(上)……

表2

在指標庫表管理模塊中需要將事實表與維表建立關(guān)聯(lián)關(guān)系(以某一主鍵建立left join、right join、inner join等多種連接方式),關(guān)聯(lián)關(guān)系建立后在指標設(shè)計的過濾規(guī)則中可以選到維表中的字段。

此處做一下備注:

  • 由于雪花模型自身復(fù)雜性,設(shè)計成本較高,且雪花模型可以拆解成星狀模型來應(yīng)用,因此平臺設(shè)計過程中暫時不考慮。
  • 星狀模型的引入會增加指標設(shè)計的復(fù)雜度,例如:維表中字段發(fā)生變化(千元戶從0變成1);事實表跨日計算時是否需要關(guān)聯(lián)最新維表;維表一般是全量表事實表多是增量表,兩者之間有何關(guān)聯(lián)規(guī)則等,由于本文是進行主流程梳理,細節(jié)不做過多描述)。

這一模塊的頁面形態(tài)如下:

效果分析的關(guān)鍵是指標能算出來(上)……

圖7

數(shù)據(jù)顯示邏輯有三種:

  1. 平臺獨立一個數(shù)據(jù)庫:用到的表可以直接導(dǎo)入到這一庫中,庫中存在的表直接呈現(xiàn)在表管理頁面中,這一方式在數(shù)據(jù)導(dǎo)入過程中需要在單表層面上做好清洗:確定主鍵、確定時間字段,數(shù)據(jù)導(dǎo)入庫中后,再通過頁面進行。
  2. 平臺直接構(gòu)建在統(tǒng)一數(shù)倉上:取數(shù)倉上的元數(shù)據(jù)信息統(tǒng)一呈現(xiàn)在這一頁面模塊,在頁面上進行表分層分級管理,然后確定主鍵和時間字段,并關(guān)聯(lián)其他維表,形成對應(yīng)數(shù)據(jù)模型。
  3. 平臺獨立數(shù)據(jù)庫,同時對接元數(shù)據(jù)平臺:在頁面上選擇表元數(shù)據(jù)后,后臺自動調(diào)起導(dǎo)數(shù)邏輯,表數(shù)據(jù)導(dǎo)入到平臺數(shù)據(jù)庫中,在平臺頁面上做分層分級管理,這一邏輯對頁面形態(tài)有些調(diào)整,頁面添加“表新增”功能,點擊后可以錄入表信息,如下:

效果分析的關(guān)鍵是指標能算出來(上)……

圖8

完成表分層分級維護后,需要對表中內(nèi)容進行規(guī)范和指定,例如:事件表可以指定事件,狀態(tài)表可以指定統(tǒng)計時間等。

點擊“狀態(tài)”中的“屬性”按鈕,可以對表中字段進行維護:

效果分析的關(guān)鍵是指標能算出來(上)……

圖9

點擊“數(shù)值類型”下拉按鈕可以選擇“int/list/float/datetime/string”等類型,不同的類型在指標計算過程中要求不同,list類型不能進行“字典”上傳,其他類型可以通過上傳csv文件來維護字段內(nèi)容。

(2)事件/時間管理

事件管理作為指標庫的必須字段不僅涵蓋事件類指標一種類型,狀態(tài)類指標/匯總類指標也需要在這里做時間指定,兩者指定的邏輯略有不同:

  1. 事件類指標模式:生產(chǎn)上直接流轉(zhuǎn)下來的事件數(shù)據(jù)往往是單事件模型,即一條記錄中只有一個動作、一個動作發(fā)生時間,但是在實際應(yīng)用過程中,出于使用方便會以客戶為主鍵,將多個事件整合到一張表中,形成多事件模型,在構(gòu)建事件時能基于場景需要靈活指定事件時間。
  2. 狀態(tài)/匯總時間類指標模式:多為用戶屬性信息,即一條記錄中只有dt時間字段,沒有用來表示用戶動作發(fā)生的時間字段,因此在構(gòu)建事件時將dt作為時間字段構(gòu)建偽事件。

指定的事件會存儲在事件管理模塊,其頁面樣式如下:

效果分析的關(guān)鍵是指標能算出來(上)……

圖10

在這里呈現(xiàn)的事件都能在指標設(shè)計過程中選得到。

(3)指標設(shè)計

經(jīng)過前兩個步驟的梳理,指標定義模塊可以正常使用,這一模塊的對應(yīng)界面如下:

效果分析的關(guān)鍵是指標能算出來(上)……

圖11

上面的指標設(shè)計頁面中,我們可以看到指標的完整結(jié)構(gòu):事件名+算子+過濾規(guī)則(思考與上面指標表達式的區(qū)別),這一結(jié)構(gòu)依賴于底層表模型,在頁面上通過選擇事件名、過濾規(guī)則來確定計算范圍,通過不同算子來確定計算方式。

通過如上邏輯,我們可以組裝出大部分指標樣式,包括點擊、成單、余額等。

三、指標分類和加工

介紹完指標庫的整體結(jié)構(gòu),我們有了指標加工流水線,接下來詳細介紹一下指標的分類和加工過程。

從流程角度我們梳理出指標對應(yīng)的關(guān)系鏈如下:

圖12

可以看到指標的基本形態(tài)有事件類指標和狀態(tài)類指標,結(jié)合計算場景形成了凈增類指標和累加類指標,共形成四種指標類型,我們逐一介紹:

1. 事件類型指標設(shè)計模型

事件類指標是指與客戶動作發(fā)生相關(guān)的指標,例如:點擊率、成單率,每個動作都會攜帶一個對應(yīng)的時間,其數(shù)據(jù)結(jié)構(gòu)主要為:

表3

這一類型的指標多為增量表(二次加工的多事件模型存在全量表),每天記錄當天發(fā)生的行為,統(tǒng)計過程中需要用到的算子有count()、sum()、count(distinct……)三種類型,跨日期統(tǒng)計頻次較高,每日趨勢圖、整體數(shù)據(jù)、不同時間段邏輯較容易梳理:

事件類增量表的表結(jié)構(gòu)基本如下:

表4

指標的設(shè)計樣式為:

圖13

在頁面上填充“事件名、算子、過濾規(guī)則”、完善指標計算所需要的口徑、同時在指標組合位置組裝出指標的計算邏輯,即可完成指標定義過程。

在事件類指標的邏輯中,我們可以看出,上面三個模塊的邏輯關(guān)系為:

圖14

指標定義好后,我們該如何計算呢?

從表結(jié)構(gòu)中可以明確有兩種計算方式:增量表計算、全量表計算。

這兩種計算的差異主要體現(xiàn)在統(tǒng)計范圍的選擇上:增量表計算需要跨多日匯總,而全量表計算只需要計算最新DT。

結(jié)合上面的邏輯關(guān)系我們可以得出如下兩個邏輯:

其一:指標計算引用的如果是增量表:則統(tǒng)計范圍以事件發(fā)生時間為標準,例如:統(tǒng)計10月3日~10月7日的點擊UV,只需要按照事件發(fā)生時間進行數(shù)據(jù)圈選,如果是離線數(shù)據(jù),則需要根據(jù)事件發(fā)生時間確定出對應(yīng)的dt范圍(事件日期==dt日期),然后在這一范圍內(nèi)進行相應(yīng)指標計算。

SQL中對應(yīng)的where條件描述如下:

  • 整體數(shù)據(jù)為:“dt=between 事件開始日期 and 事件結(jié)束日期”
  • 每日數(shù)據(jù)為:“dt=between 事件開始日期 and 事件結(jié)束日期 group by dt”

其二:指標計算引用的如果是全量表:則統(tǒng)計范圍首先會選出最新dt,然后在最新dt數(shù)據(jù)表中基于事件發(fā)生時間圈選數(shù)據(jù)范圍(事件日期包含在最新dt中),然后再計算對應(yīng)指標。

SQL中對應(yīng)的where條件描述如下:

  • 整體數(shù)據(jù)為:“dt=max(dt)以及事件時間=between 事件開始時間 and 事件結(jié)束時間”
  • 每日數(shù)據(jù)為:“dt=max(dt)以及事件時間=between 事件開始時間 and 事件結(jié)束時間 group by 事件日期”

結(jié)合指標設(shè)計過程中的過濾條件,我們就可以拼裝出完整的SQL邏輯,將邏輯下壓到計算引擎中即可得到對應(yīng)的數(shù)據(jù)。

2. 狀態(tài)類型指標設(shè)計模型

狀態(tài)類指標通常用來描述用戶最新的信息,分為余額類和屬性類。

這一類指標有如下幾個特點:

  • 數(shù)據(jù)多存儲在全量表中,每個dt記錄全量用戶的最新狀態(tài)
  • 表中通常沒有用來記錄動作的時間字段
  • 數(shù)據(jù)存儲以單表模型為主,表中信息定時刷新

例如:

表5

這一類指標的頁面配置邏輯為:

圖15

將狀態(tài)類明細表導(dǎo)入到平臺數(shù)據(jù)庫中,“表管理”頁面中看到這一表信息后,將dt作為事件時間定義事件名稱(事件日期==dt日期),這一事件對應(yīng)的時間用來計算趨勢圖。

SQL中對應(yīng)where條件描述如下:

  • 整體數(shù)據(jù)為:“dt=max(事件日期)”
  • 每日數(shù)據(jù)為:“dt=between 事件開始日期 and 事件結(jié)束日期 group by dt”

圖16

此處定義的事件是以dt為時間創(chuàng)建,因此事件與表之間的對應(yīng)關(guān)系為1:1。

定義好的事件可以直接用在指標定義環(huán)節(jié):

圖17

此時,指標的對應(yīng)關(guān)系變?yōu)椋?/p>

圖18

狀態(tài)類指標中有兩類小眾的數(shù)據(jù)結(jié)構(gòu):

其一:為增量表狀態(tài)指標,配置過程中與全量表狀態(tài)指標類似,計算過程中存在一定差異。

SQL中對應(yīng)where條件描述如下:

  • 整體數(shù)據(jù)為:“dt= between 事件開始日期 and 事件結(jié)束日期”
  • 每日數(shù)據(jù)為:“dt=between 事件開始日期 and 事件結(jié)束日期 group by dt”

其二:為月日均類指標,配置過程基于全量表完成,計算過程中跨多個dt,對應(yīng)算子優(yōu)化較為便捷。

SQL中對應(yīng)描述如下:

  • 整體數(shù)據(jù)為:“select sum(多dt對應(yīng)字段)/count(多dt數(shù)量) …… where dt= between 事件開始日期 and 事件結(jié)束日期”
  • 每日數(shù)據(jù)相對較為復(fù)雜,需要記錄兩個時間:其一是取均值時間段,其二是數(shù)據(jù)觀察時間段,具體邏輯在下文中有專門描述

3. 凈增類型指標設(shè)計模型

上面我們描述兩類最常見的指標:狀態(tài)類、事件類,這兩類指標是平臺應(yīng)用中最常見的兩類指標,邏輯處理相對簡單,我們再回過頭來看一下這個指標表達式:

圖19

凈增類指標在前兩類指標的基礎(chǔ)上深化了“時間”元素的應(yīng)用場景:出現(xiàn)了“期末-期初”的邏輯。

梳理凈增類指標的邏輯我們可以得出如下幾種類型:

表6

這四種類型在指標設(shè)計上不需要對頁面有太多調(diào)整,最直接的方式為優(yōu)化算子,我們逐一做一下拆解:
(1)事件類固定期初期末凈增

這一類指標有兩個特點:

  1. 固定期初期末是從整體的角度衡量團隊或部門的綜合效果
  2. 事件類指標是通過圈選某個時間段,計算期間總量

最常見的指標為:活躍類的同環(huán)比指標;

最常用的部門為:企劃/財務(wù)團隊,用來定期衡量運營/業(yè)務(wù)團隊的經(jīng)營效果,運營/業(yè)務(wù)團隊也會使用這一指標來衡量其整體經(jīng)營效果;

最常見的統(tǒng)計時間為:期初是去年同月、今年1月份、上個月,期末是當月。

在這一邏輯下,表管理及事件管理模塊沒有變動,依然保持事件類表模型,在指標設(shè)計模塊中最直接的調(diào)整方式為算子優(yōu)化:

圖20

選擇凈增類指標時,指標設(shè)計中默認呈現(xiàn)出A、B兩個指標。

“統(tǒng)計時間從……到……,按……求和”這一算子可以作為凈增類求和指標的計算邏輯,主要為了解決如下計算邏輯:

圖21

  • 點擊算子的1號位置:彈出簡化版的時間選框,選擇期初的開始-結(jié)束時間
  • 點擊算子的2號位置:彈出簡化版的時間選框,選擇期末的開始-結(jié)束時間
  • 點擊算子的3號位置:求和算子是對數(shù)值型字段進行求和計算,點擊彈出事件對應(yīng)表中數(shù)值型字段(數(shù)值型字段可以在表管理界面中維護和修改)
  • 凈增類指標即為上面的方式計算兩個值,然后計算差值,作為凈增量

同類型的算子有另外兩個:

  1. “統(tǒng)計時間從……到……,按……計數(shù)”
  2. “統(tǒng)計時間從……到……,按……去重計數(shù)”

指標設(shè)計中對應(yīng)的SQL樣式及指標組合公式為:

整體數(shù)據(jù)為:

  • A:Select sum(3號位字段) …… where dt>=1號位中開始時間 and dt<=1號位中結(jié)束時間
  • B:Select sum(3號位字段) …… where dt>=2號位中開始時間 and dt<=2號位中結(jié)束時間
  • 計算凈增:ins_data = B-A

每日數(shù)據(jù)是針對期初期末浮動的指標類型,日期增加一天,對應(yīng)數(shù)值刷新一次,如果是期初期末固定的指標,對應(yīng)的計算是一個值,對應(yīng)不呈現(xiàn)每日數(shù)據(jù),趨勢圖也不做數(shù)據(jù)呈現(xiàn)。

(2)事件類浮動期初期末凈增

這一指標類型包含兩種細分類型,對應(yīng)的圖形表達為:

圖22

對于細分類型1:

使用的算子可以做對應(yīng)調(diào)整為:

  • “統(tǒng)計時間從…<1>…向后統(tǒng)計…<2>…日,按…<3>…求和”
  • 在1號位選擇開始統(tǒng)計的日期,作為期初比較值
  • 在2號位選擇從開始日期向后統(tǒng)計N日,拼接出統(tǒng)計時間段t+N,后續(xù)隨時間向后滑動
  • 在3號位選擇時間段中需要統(tǒng)計的字段,該字段為int和float類型

細分類型1中的配套算子為:

  • “統(tǒng)計時間從…<1>…向后統(tǒng)計…<2>…日,按…<3>…計數(shù)”
  • “統(tǒng)計時間從…<1>…向后統(tǒng)計…<2>…日,按…<3>…去重計數(shù)”

指標設(shè)計中對應(yīng)的SQL樣式及指標組合公式為:

  • A最新值SQL為:select sum(3號位字段) …… where dt >= 期初1號位日期 and dt <= 期初1號位日期+2號位數(shù)值
  • B最新值SQL為:select sum(3號位字段) …… where dt >= 期末1號位日期 and dt <= 期末1號位日期+2號位數(shù)值
  • 最新值凈增為:B-A
  • A每日值SQL為:select sum(3號位字段) …… where dt >= 期初1號位日期 and dt <= 期初1號位日期+2號位數(shù)值 group by 1號位日期
  • B每日值SQL為:select sum(3號位字段) …… where dt >= 期末1號位日期 and dt <= 期末1號位日期+2號位數(shù)值 group by 1號位日期
  • 每日值凈增為:B-A

對于細分類型2:

使用場景有一些變動,例如:在某一策略中統(tǒng)計某個人點擊后7天的成單情況,由于策略中人數(shù)不固定,因此統(tǒng)計t+N的數(shù)量不固定,無法使用細分類型1中的算子計算,因此新增幾個算子如下:

“基于事件向后統(tǒng)計…<1>…日,按…<2>…事件…<3>…求和”。

這一算子的統(tǒng)計邏輯為:

  • 在事件類型指標設(shè)計過程中,首先會選擇一個事件,在這一事件的基礎(chǔ)上向后統(tǒng)計N日,按照2號位的字段求和
  • 2號位字段對應(yīng)也是一個事件,如果事件發(fā)生時間在1號位約束時間范圍內(nèi),則按照3號位字段計算,如果不在則不做計算

細分類型2中的配套算子為:

  • “基于事件向后統(tǒng)計…<1>…日,按…<2>…事件…<3>…計數(shù)”
  • “基于事件向后統(tǒng)計…<1>…日,按…<2>…事件…<3>…去重計數(shù)”

由于這一邏輯較為復(fù)雜,因此我們梳理事件對應(yīng)的表結(jié)構(gòu)為:

表7

指標設(shè)計中對應(yīng)的SQL樣式及指標組合公式為:

  • A最新值SQL為:select sum(case when 成單時間 >= click時間 and 成單時間 <= 統(tǒng)計結(jié)束時間 then 成單金額 else 0 end) …… where dt >= 期初1號位事件最新發(fā)生日期 and dt <= 期初1號位事件最新發(fā)生日期+2號位數(shù)值
  • B最新值SQL為:select sum(case when 成單時間 >= click時間 and 成單時間 <= 統(tǒng)計結(jié)束時間 then 成單金額 else 0 end) …… where dt >= 期末1號位事件最新發(fā)生日期 and dt <= 期末1號位事件最新發(fā)生日期+2號位數(shù)值
  • 最新值凈增為:B-A
  • A每日值SQL為:select sum(case when 成單時間 >= click時間 and 成單時間 <= 統(tǒng)計結(jié)束時間 then 成單金額 else 0 end) …… where dt >= 期初1號位事件發(fā)生日期 and dt <= 期初1號位事件發(fā)生日期+2號位數(shù)值 group by 1號位事件發(fā)生日期
  • B每日值SQL為:select sum(case when 成單時間 >= click時間 and 成單時間 <= 統(tǒng)計結(jié)束時間 then 成單金額 else 0 end) …… where dt >= 期末1號位事件發(fā)生日期 and dt <= 期末1號位事件發(fā)生日期+2號位數(shù)值 group by 1號位事件發(fā)生日期
  • 每日值凈增為:B-A

如上兩種場景是在事件類表的場景下進行計算,如果整個表中沒有事件發(fā)生時間,只有dt字段,則不適合用上面算子計算。

(3)狀態(tài)類固定期初期末凈增

這一類型的指標也包含兩種細分類型,對應(yīng)的圖形表達為:

圖23

細分類型1主要是獲取期初和期末兩個dt,其計算特點為:

  • 固定選擇兩個dt,作為計算的數(shù)據(jù)基礎(chǔ)
  • 兩個dt各自求和,然后做凈增計算

對應(yīng)的算子有:

  • “基于時間…<1>…,按…<2>…求和”
  • 在1號位置選擇需要計算的時間,后續(xù)所有的計算都是在這個dt的基礎(chǔ)上進行
  • 在2號位置選擇參與計算的字段,算子針對這一字段求和

指標設(shè)計中對應(yīng)的SQL樣式及指標組合公式為:

  • A期初值SQL為:select sum(2號位字段) …… where dt = 1號位時間
  • B期末最新值SQL為:select sum(2號位字段) …… where dt = 1號位時間
  • 對應(yīng)的凈增值為:B-A

在固定期初類指標中,每日凈增的計算只需要依照加掛策略的開始時間,然后每天計算凈增值,得到每日提升值。

配套算子有如下兩個:

  1. “基于時間…<1>…,按…<2>…計數(shù)”
  2. “基于時間…<1>…,按…<2>…去重計數(shù)”

細分類型2主要是在狀態(tài)類指標中跨dt計算,由于每個dt中都存儲了全量的數(shù)據(jù),因此跨dt計算能進行求均值、最值等。

時間段指標統(tǒng)計也存在兩個思路:滑動N日、按照自然月。

滑動N日:期初是個相對固定的值,期末數(shù)據(jù)每日向后滑動,每日計算過去30日均值;

日期滑動需要有一個相對變量,即當下日期的時間表示為{yyyyMMdd},滑動邏輯統(tǒng)一用這一字段做加減計算,例如:過去30日滑動為“{yyyyMMdd-30d}-{yyyyMMdd}”,對應(yīng)算子為:

  • “統(tǒng)計時間從…<1>…到…<2>…,按…<3>…單日求和取均值”
  • “統(tǒng)計時間從…<1>…到…<2>…,按…<3>…單日求和取最大值”
  • “統(tǒng)計時間從…<1>…到…<2>…,按…<3>…單日求和取最小值”
  • “統(tǒng)計時間從…<1>…到…<2>…,按…<3>…單日計數(shù)取均值”
  • “統(tǒng)計時間從…<1>…到…<2>…,按…<3>…單日計數(shù)取最大值”
  • “統(tǒng)計時間從…<1>…到…<2>…,按…<3>…單日計數(shù)取最小值”
  • “統(tǒng)計時間從…<1>…到…<2>…,按…<3>…單日去重計數(shù)取均值”
  • “統(tǒng)計時間從…<1>…到…<2>…,按…<3>…單日去重計數(shù)取最大值”
  • “統(tǒng)計時間從…<1>…到…<2>…,按…<3>…單日去重計數(shù)取最小值”

這一計算方式每天都有一次計算,對應(yīng)趨勢圖為每日數(shù)值。

按照自然月:則需要對上面算子中時間值進行特殊處理,能夠選到每月月初時間{yyyyMMdd -start M}。

(4)狀態(tài)類浮動期初期末凈增:

浮動期初期末對應(yīng)的指標類型與上文固定期初期末指標類型相似,不同點在于期初期末的時間是可以變動的,此時只需要在算子中靈活應(yīng)用“{yyyyMMdd -start M}”、“{yyyyMMdd -Nd}”、“向后N日”三個時間變量即可,上面三個場景完整覆蓋的情況下,這一場景也可以得到保障,此處不做贅述。

4. 累加類型指標設(shè)計模型

上文我們詳細描述了凈增類指標的各個場景,復(fù)雜度相對較高,不過也正因為這樣的復(fù)雜度才能幫助我們更有效的提升算子的適配能力。

在這一環(huán)節(jié)中,我們介紹最后一種類型的指標,即:累加型指標。

這一指標的特點是每天的數(shù)據(jù)都來自于昨天數(shù)據(jù)與今天新增數(shù)據(jù),逐日累加,在每個最新的dt中包含全量數(shù)據(jù)。

累加類指標的適用范圍較小,其最直接的價值在于減少性能壓力,每次計算都使用最新dt中的數(shù)據(jù),這一類型的計算主要有兩種處理方式:

  1. 在數(shù)據(jù)庫中直接處理成累全量表,然后在指標設(shè)計過程中采用狀態(tài)類指標方式計算。
  2. 在數(shù)據(jù)庫中存儲最原始的兩類表:增量表、全量表,然后在指標設(shè)計的算子中增加類全量類型的算子。

此處我們重點介紹一下第二種方式:

圖24

累加邏輯按照數(shù)值類型可以有如下幾種:訂單金額類(求和/求均值)、0-1與或類(與或計算)、客戶量類(計數(shù)/去重計數(shù))等。

按照一定的邏輯將數(shù)值匯總到最新dt中,后續(xù)的統(tǒng)計全按照最新dt計算,整體邏輯相對簡單,不過數(shù)據(jù)處理起來需要有一些前置工作,以“基于…<1>…按日累加求和”算子為例:

第一步:數(shù)據(jù)累加:

表8

第二步:按照最新dt計算指標:

  • 對應(yīng)的SQL為:select sum(1號位字段) …… where dt = 最新日期
  • 每日數(shù)據(jù)則為:select sum(1號位字段) …… where dt >= 策略生效日期 group by dt

除累加求和外,相關(guān)算子還有:

  • “基于…<1>…按日累加求均值”
  • “基于…<1>…按日累加求最大值”
  • “基于…<1>…按日累加求最小值”
  • “基于…<1>…按月累加求均值”
  • “基于…<1>…按月累加求最大值”
  • “基于…<1>…按日累加求最小值”

……

四、后記

文章寫到這里算是告一段落,在這篇文章中我們梳理了指標的加工流水線——指標庫,并在流水線的基礎(chǔ)上梳理指標的分類和加工過程。兩條鏈路相互協(xié)同下,指標計算結(jié)果可以快速輸出,同時輸出指標的口徑和屬主,數(shù)據(jù)使用人員能夠明明白白使用指標,隨著指標庫中指標的累積和使用規(guī)范的完善,企業(yè)中看數(shù)據(jù)的問題會逐漸減少,不過對于平臺性能的壓力需要做一些權(quán)衡。

構(gòu)建完整的數(shù)據(jù)底座是數(shù)據(jù)驅(qū)動的根基,根基穩(wěn)則驅(qū)動強,根基不穩(wěn)則寸步難行。下一篇文章我們繼續(xù)梳理后兩個環(huán)節(jié),在強有力的數(shù)據(jù)底座上,首先要做的就是要梳理出能讓業(yè)務(wù)看得懂的報告:《數(shù)據(jù)報告最重要的是讓業(yè)務(wù)看得懂……》,歡迎大家討論~

為我投票

我在參加人人都是產(chǎn)品經(jīng)理2022年度作者評選,希望喜歡我的文章的朋友都能來支持我一下~

點擊下方鏈接進入我的個人參選頁面,點擊紅心即可為我投票。

每人每天最多可投35票,投票即可獲得抽獎機會,抽取書籍、人人都是產(chǎn)品經(jīng)理紀念周邊和起點課堂會員等好禮哦!

投票傳送門:https://996.pm/7gB6m

專欄作家

野水晶體,微信公眾號:livandata,人人都是產(chǎn)品經(jīng)理專欄作家。金融行業(yè)的互聯(lián)網(wǎng)老兵,聚焦數(shù)據(jù)驅(qū)動,將算法、數(shù)據(jù)融入產(chǎn)品設(shè)計與運營策略,構(gòu)建金融增長方法論。

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

題圖來自Unsplash,基于CC0協(xié)議。

該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!