網易嚴選如何打造數倉規範和評價體系?

數據爲王的時代,數據量從最初的幾十G,慢慢沉澱到幾十T,甚至幾十PB的量。數據工程師,也從最初的ETL工程師慢慢成長爲數據全棧工程師:採集、同步、模型、離線、實時、規範、平臺、工具、產品、交互、保障、數據體系等等。

數據倉庫,是我們數據工程師的無形產品,不同於可視化、交互型產品的評價體系:擁有比較明確的評價指標MAU、DAU、GMV等。數據倉庫一直沒有比較系統的評價體系,下面從概念-平臺-規範的鏈路來介紹一下嚴選數據倉庫,最後跟大家交流一下數據倉庫的評價體系。

數據倉庫基本架構

這裏概覽講一下嚴選數據倉庫的分層邏輯,下面是嚴選數倉的框架圖:

數據倉庫分層沒有絕對的規範,適合的就是最好的,特別是企業已經有一個初版的數倉的時候,需要做好改造成本和可理解性之間的平衡。

以業務數據的流向劃分,目前嚴選數據把模型分爲三層,ods,dw和dm層。其中ods是操作數據層,保留最原始的數據;dw包含dwd和dws層,這兩層共同組成中間層;dm是應用層,基於dw層做彙總加工,滿足各產品、分析師和業務方的需求。

  • ODS層(操作數據層):不對外開放,把業務系統數據同步到數倉。數據格式保留業務系統的數據格式;目前主要通過datahub解析binlog來實現的,目前嚴選的ods層數據同步主要以全量數據爲主。
  • DWD層(明細層):對外開放,主要作用是沉澱一些公共的邏輯,常用維度屬性的關聯等,下游經常在一起使用的模型會在這一層做寬表處理,減少事實表和維表的關聯,減少重複的關聯加工。
  • DWS層(彙總層):對外開放,主要沉澱嚴選數據的公共指標,dws層是整個嚴選數據對外開放和使用的核心,是嚴選最核心的數據資產。
  • DIM層(維表):對外開放,主要是一些常用維表,比如商品維表、sku維表、渠道維表。
  • DM層(應用層):對產品開放使用,支持數據產品、報表的使用,主要是不公用複雜指標的彙總和計算。

數據倉庫開發平臺

嚴選數據倉庫分離線和實時兩部分。

離線部分由網易易數提供支持。網易易數(EasyData)是網易數帆旗下的全鏈路數據生產力平臺,提供全鏈路數據產品和服務,覆蓋數據分析及可視化、數據研發、數據治理、數據服務化等,其前身爲網易猛獁——現已按模塊拆分,命名爲Easy系列產品,如離線開發EasyDev。

實時部分由Atom平臺提供支持,Atom是嚴選產技自研的一款實時數據管理和開發平臺。

嚴選數據倉庫規範

在其他工種開發的眼裏,數據倉庫的入門門檻非常低,低到技術鄙視鏈的最末端:“噢……,他們就是寫SQL的,他們整個團隊都是寫SQL的……”,頓時天空飄過一萬匹神獸。曾經和未來都有很多人會來挑戰數倉工程師存在的意義:“我也能幹!”,但是實際情況是:naive!具體可參見嚴選數據倉庫的架構圖,這其中的每一個icon背後都有一套工具、平臺,甚至於一個團隊來支撐運轉。

嚴選數據倉庫是一套方法論,從規範定義、模型設計到數據服務,再到數據可管理、可追溯、可複用。嚴選數據倉庫遵循維度建模理論,參考了阿里巴巴的Onedata建模理論,核心框架由三個規範組成:《嚴選-指標定義規範》 ,《嚴選-模型設計規範》和《嚴選-數據開發規範》,外層由輔助規範落地的若干工具、平臺組成:倉頡-指標管理系統、燧人-指標地圖系統、UDS-數據質量中心、EasyDesign-模型設計中心等。

1、指標定義規範

指標定義規範,目的是統一開發&產品對指標的定義。通過對原子指標的命名規則、派生指標的命名規則和派生詞的定義來完成。

指標定義體系,是數據建設體系的基礎和內核,爲了杜絕產品經理命名引起的歧義,以及後續帶來的使用和維護以及解釋成本。

2、模型設計規範

模型設計規範,目的是統一數據開發對模型的命名定義。通過域+更新方式,域+維度+更新週期的方式來完成。

3、數據開發規範

數據開發規範,目的是提高數據開發的SQL開發能力。通過限制各級子查詢的縮進形式,子查詢的規範等來完成。

數據倉庫評價體系

近期的一些思考跟大家做一個交流,一家之言,歡迎拍磚。

基本要求

數據安全和數據質量是數據倉庫的生命線!不可逾越、不可觸犯。

評價體系

下圖是近期整理的嚴選數據倉庫的6個評價角度

1.數據規範

數據規範,最終目的是提高開發的整體水平。遵循嚴選數據規範:《嚴選-指標定義規範》、《嚴選-模型設計規範》和《嚴選-數據開發規範》,同時由工具和平臺來保障規範的落地並監督評估規範落地的效果。

2.數據安全

數據安全,這個命題怎麼強調都不爲過,特別是近期數據安全問題頻發,51信用卡,大大小小的放貸公司。因此作爲數據從業者,遵循《網易商業行爲準則》,不對外泄露業務數據,時刻做到數據指間過,安全心中留。

3.數據質量

數據質量由數據本身的質量和數據建設質量兩部分組成:

  • 數據本身質量:數據開發對數據質量負責,保持對數據的敬畏心,結合《嚴選-線上故障定義規範》,通過故障等級和次數指標來量化考覈。

  • 數據建設質量:可以從兩方面來考量:易用性和豐富性;易用性是結合數據規範來考量的:所有的數據都遵循嚴選數據規範,目的是降低數據的使用成本;豐富性是考量核心數據資產的廣度:dw對外服務的應用數量,dw層管理的數據量,dw層本身跨層依賴的數量等。

4.數據穩定性

  • 數據穩定性:建立完善數據倉庫的值班制度,同時打通值班和故障平臺,定期review數據本身問題導致的起夜的數量和影響面,量化考覈具體開發。
  • 平臺穩定性:建立完善的數據倉庫和平臺值班制度,打通值班日誌和故障系統,定期review平臺問題導致的起夜數量和影響面,量化考覈平臺。

5.持續建設機制

  • 沉澱機制:嚴選數據倉庫已經建立了和分析師定期交流的機制,定期交流沉澱分析師的核心指標,不斷豐富嚴選數據核心資產。
  • 數據治理:有上有下,通過和網易易數合作打通逆向數據流,通過下線冷數據冷任務,推動開發治理不規範模型和數據,來達到規範模型和節約存儲的目的。

6.數據開發效率

較前5個角度對比,數據開發效率較難量化,可以從兩個方面來考量:開發規範的自動化程度和平臺使用體驗。

嚴選數倉評價實踐

依照前文提到的6個角度,嚴選分別有與之對應的工具來支持。

1.數據規範

所有的數據規範,最終目的都是用來提高開發者的水平、提高代碼的質量。在開發水平參差不齊的情況下,需要有平臺工具保障規範的落地。在過去的一年中,我們和網易杭州研究院一起規劃落地了網易易數EasyDesign模型設計平臺:輔助《嚴選-指標定義規範》和《嚴選-模型定義規範》的落地。

下圖是依託網易易數EasyDesign實現的模型設計線上化產品界面。

衡量數倉建設水平可以通過以下3個指標:總ods表被跨層依賴率,被跨層依賴的ods表數量,有下游ods表被跨層依賴率三個指標來完成。

2.數據安全

每年有很多因數據導致的資損問題產生,我們從數據的上線流程、測試工具、測試環境等三個方面入手,讓過程合規,結果合法。

3.數據穩定性

嚴選和網易易數共建的任務運維中心EasyTaskOps,實現智能基線預警,多基線精細化運維;目前我們4條基線完成率超過90%。

2020年上半年,嚴選和網易易數共建了數據運維中心,上線了以下內容:

  • 基線管理:通過任務歷史執行情況,自動判斷基線內任務逾期可能性,進行破線預警。
  • 失敗和逾期報警:對於失敗和逾期的任務,可以配置電話、短信or郵件報警。
  • 評價指標:基線完成率、出錯任務數、處理及時率等來評價任務的穩定性。

4.持續建設機制

迭代更新、持續建設,這是衡量一個數據倉庫活力的一個重要機制,我們通過指標一致性項目,梳理了數倉持續建設機制,數據緊跟業務成長,數據倉庫纔會保持活力。

通過和網易易數一起推動EasyCost升級,通過梳理存儲相關規則、規範相關規則、計算相關規則、質量相關規則,上半年一共下線3.4w張表,節約了1.2PB的存儲。

5.數據開發質量

通過網易易數EasyDesign平臺承接規範的落地,整個上半年數據開發通過平臺新建200+dw層表,強有力的保障了規範的落地;我們的最終目標是通過各種方法策略來提高數據開發的素質,使用工具目的是幫助大家養成遵循規範的習慣。

6.數據開發效率

持續建設機制、數據規範的落地,最直接的反應就是數據開發效率的提升。嚴選全渠道數據基建項目中,交易域+商品域的離線+實時數據校驗一次性通過,大大降低了數據開發的迭代修復成本。

作者簡介

乙峯:多年數據領域工作經驗,專注數據架構、模型設計和規範執行落地等。嚴選數倉交易域負責人,負責交易域模型設計落地和對外服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章