什么是指標
數據團隊出具的一個統計報表字段即為指標。比如最近七天的訂單量,一個促銷活動的購買轉化率等等。
一個指標具體到計算實施,主要有以下幾部分組成
- 指標加工邏輯,比如count ,sum, avg
- 維度 比如按部門、地域進行指標統計,對應sql中的group by
- 業務限定/修飾詞 比如以不同的支付渠道來算對應的指標,微信支付的訂單退款率,支付寶支付的訂單退款率 。對應sql中的where
除此之外,指標本身還可以衍生、派生出更多的指標,基於這些特點,可以將指標進行分類
- 原子指標 基本業務事實,沒有業務限定、沒有維度。比如訂單表中的訂單量、訂單總金額都算原子指標
- 派生指標 比如過去5天的訂單總金額,就是加了業務時間限定
- 衍生指標 比如某一個促銷活動的轉化率,就需要
促銷投放人數指標同促銷訂單數指標進行計算得出
指標系統建設前的狀況
- 不知道口徑,數據平台出去的指標,用戶甚至數據研發自己都不知道具體的口徑,需要翻代碼
- 指標耦合,不方便下線和口徑調整,現有報表都是需求驅動,一個sql中可能對應了多個指標的計算,導致指標下線,邏輯調整都要相互影響
- 指標重復計算,不同報表用到同一個指標,需要重復的寫同樣的邏輯,加重集群的計算壓力,且指標口徑一調整,需要多處調整
- 指標血緣無法跟蹤,數據團隊交付的報表時間久了不知道誰提的,不知道用到了哪些表,不知道最終被用到了哪些團隊
- 只見樹木,不見森林。數據團隊花了大量時間在報表開發上,而忽略了底層模型的打磨
指標建設的宏觀步驟
基於業務目的梳理指標體系
基於公司不同的業務模塊,業務場景,不同的管理層級來梳理指標體系,敲定指標口徑。
- 總經辦關注的流水相關指標,對應高層管理
- 訂單小組關注的訂單履約相關的指標,對應業務模塊
- 廣告投放關注的轉化相關的指標,對應業務場景
基於系統支撐錄入和管理
通過系統建設,支撐上述梳理的指標體系,實現指標定義錄入,指標調用鏈查詢跟蹤,指標下線管理等功能
指標管理所在的數倉位置
指標的計算一般是在數倉星型模型之上

指標管理系統產品模塊設計
指標定義
分為產品配置部分和技術人員配置部分
產品配配置
- 選擇指標分類,屬於哪個業務模塊
- 指標需求描述,填寫指標發起的部門原由
- 指標文字定義,填寫指標口徑的文字描述
技術配置
將原子指標和派生指標都定義為基礎指標,因為他們通過單一數倉模型即可計算出
將衍生指標定義為復合指標,因為這類指標需要依據上述基礎指標做加工計算
基礎指標
- 需要選擇業務事實表,維度表,以及業務事實同維度的關聯關系,相當於選定from的表和對應的group by邏輯
- 編寫指標加工邏輯,比如count、sum、avg等
- 編寫限定條件,相當於寫where條件
復合指標
- 選擇基礎指標,比如選擇
促銷投放人群數、成單用戶數 - 編寫加工邏輯,
成單用戶數/促銷投放人數
指標查詢
基於指標中文名,搜索對應的指標定義和血緣
指標下線
基於血緣統計,發現未被使用的指標,將其下線
對外接口
提供給外部系統,比如BI,用於查詢指標定義,這指標的詳細數據
指標權限
控制不同用戶,不同應用能夠獲取到的不同指標范圍
報表配置化
基於指標系統中的指標池,以拖拽的方式,快速生產報表
指標管理系統技術實現
指標加工邏輯
基於指標定義中技術部分的定義,自動生成指標加工sql,並將其自動部署到調度系統中。自動生成的邏輯,無非是將指標定義中的字表加工邏輯、維度信息、業務限定等組裝起來
指標輸出設計
sql加工好的指標,有如下兩種存放方式
在dws中以大寬表的形式存放
比如以用戶維度,組織大寬表,其中存放用戶相關的所有指標,比如用戶最近5天購買的訂單數,用戶最近30天的訂單金額等
缺點是:
- 報表組合不夠靈活,某些報表需要的指標跨多個大寬表,還得從多個dws大寬表中取數據
- 新增指標不夠靈活,新增一個指標需要在大寬表中加字段
- 由於每個指標都是獨立的job,其計算完成的先后順序不一,需要做一些中間存儲,最后合並成大寬表
以統一的指標表存放所有的指標數據
對於T+1的指標,統一存放到一個指標表中,統一指標表的定義如下
| 指標id | 指標code | 指標value | 日期分區 |
|---|
所有的指標job計算完后,都以上述格式將指標數據插入到對應的表中,一個job一次插入,會造成該表的小文件問題。解決辦法是,可以在所有的指標計算完成后,統一對當天的指標分區做一次小文件合並,合並sql類似
insert overwrite table chenjun_test PARTITION(dt='20200821') SELECT t.foo,t.bar from chenjun_test t where t.dt = '20200821';
整體腦圖

參考資料
https://tech.meituan.com/2020/03/12/delivery-data-governance.html
https://www.infoq.cn/article/K29hNd0osXPjCNLpJ2Wv
https://tech.meituan.com/2018/12/27/onedata-origin.html
https://mp.weixin.qq.com/s/-pLpLD_HMiasyyRxo5oTRQ
https://tech.meituan.com/2018/12/27/onedata-origin.html
http://baijiahao.baidu.com/s?id=1635554170455593452
https://help.aliyun.com/document_detail/112668.html?spm=a2c4g.11186623.6.756.33371e79CY1B2s
https://www.shangyexinzhi.com/article/1584086.html
