指標管理提問:數倉分層后,原子指標如何指定來源事實表

0 評論 1039 瀏覽 6 收藏 6 分鐘

在做指標管理時,我們需要保證數據的一致性,后續思考相關問題時,我們也可以基于這一準則做出解答。這篇文章里,作者就針對“數倉分層后,原子指標如何指定來源事實表”這一問題做出解答,一起來看看吧。

開門見山,直接來個提問:

背景1:數倉已經分層,現有兩張表,一張是天粒度的表dwd.order_d(放在了DWD層),一張是周粒度的表dws.order_w(放在了DWS層),兩張表里面都有指標訂單金額。

背景2:你現在負責建設或管理指標管理系統,當中有個模塊叫原子指標管理。界面和功能類似下圖的華為產品(DataArts Studio_新建原子指標)

提問:新增「訂單金額」這個原子指標的時候,應該設置哪個表為原子指標的來源表?指標后續要統一從哪一層出呢?比如,要匯總月訂單指標的時候,應該從哪個表來匯總呢

來,思考3秒,3…2…1,給出你的答案。這個問題,很容易陷入當中給出的兩個選項:天粒度 or 周粒度?

我先提醒你牢記,做指標管理有一個核心關注點:保證數據的一致性。我的答案是:原子指標要基于最原始、粒度最細的數據來定義,當然,這是理想的做法。

對于訂單這個動作來說,什么是最原始、粒度最細的數據呢?

下訂單就增加一條記錄的那張表,不管下單是最終成功還是失敗,系統都會記錄,這張表就是最細粒度的表。這個最原始的銷售訂單事實表里面通常包含每一筆訂單的詳細信息,如交易時間、金額、客戶信息等。而且基于這張表進行多種聚合計算,如按天、周、月等不同時間粒度或者其他維度(如商品類別、地區等)來匯總數據。

而在實踐中,就如提問的背景說的那樣,你進入某新公司,數倉已經建好了,表也建好了,就等利用管理系統來科學管理指標了,這時候,可能會根據使用場景的不同選擇不同的表來作為指標計算的基礎。

場景:嚴格遵照定義管理

如果是為了保持最大的靈活性和精確度,你應當找到那張最細粒度的銷售訂單事實表去定義原子指標。這保證了指標的靈活性和準確性,因為原子指標應該代表最基礎的事實,允許在此基礎上構建更加復雜的計算和分析。

場景:從實際業務需求出發

如果業務需求明確主要關注天或周的銷售趨勢,分析場景里沒有比天更細的粒度,且這些聚合表是可靠的數據來源,可以直接使用這些聚合表作為指標的數據來源。

  • 天粒度的表:是對原始事實表中的數據按照天來進行預先聚合的結果。如果業務需求主要關注日常運營分析,以天作為標準時間單位,則天粒度表能夠快速提供所需數據。
  • 周粒度的表:則更進一步將數據聚合到周級別,適用于那些關注周趨勢的分析場景。

不管是哪種場景,我們的目標重點是保持清晰的指標定義和一致的取數口徑,即使在不同的聚合層級之間,銷售金額指標的計算規則也應該是一致的,比如都包括或排除退貨、折扣等因素。

寫在最后

無論是從事實表還是某個聚合表中取數,結果都應該是相互驗證且一致的。

之前寫了事實表里沒有原子指標,結果實際在系統里管理原子指標的時候,又要指定它的來源表,這是咋回事呢?

原子指標定義的是取數的邏輯和部分計算表達式(完全SQL取數里面的計算表達式部分),后續再來講講~

專欄作家

Lee,公眾號:數據產品小lee,人人都是產品經理專欄作家。關注直播、短視頻和文娛領域、擅長數據架構、CDP及數據治理相關工作。

本文原創發布于人人都是產品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!