天天看點

如何使用阿裡的OneData方法論

#本文參考:美團OneData建設探索之路

1

背景

由于前期缺少規劃,随着集團業務發展,暴露的問題越來越多,給資料治理工作帶來了很大的挑戰,在資料倉庫建設過程中,主要發現了以下幾個問題:

  • 缺乏統一的标準,如:開發規範、名額口徑等。
  • 缺乏統一資料品質監控,如:字段資料不完整和不準确,資料發散等。
  • 業務知識體系混亂,導緻資料開發人員開發成本增加。
  • 資料架構不合理,層級之間分工不明顯,資料流向混亂。
  • 缺失統一次元和名額管理。

2

目标

基于公司現有的資料平台,完善資料體系架構、資料規範、模型标準和開發模式,進而驅動業務快速發展

高人力成本、資料錯誤、浪費資源、雜亂無章、效率低下,這些經常出現的痛點,OneData都能輕松解決

如何使用阿裡的OneData方法論

1

核心思想

   從設計,開發和使用上保障規範和統一,實作資料資産全鍊路管理,提供标準的資料輸出,包含資料規範定義,資料模型設計規範,ETL規範

2

核心特點

如何使用阿裡的OneData方法論

3

政策

如何使用阿裡的OneData方法論

3

應用

1

統一規範

資料來源于業務并支撐着業務的發展。是以,數倉建設的基石就是對于業務的把控。基于網際網路行業的特點,基本上采用需求推動資料的建設,這也帶來了一些問題,包括:資料對業務存在一定的滞後性;業務知識沉澱在各個需求裡,導緻業務知識體系分散。針對這些問題,我們提出統一業務規範,建構全局知識庫,進而保障對業務認知的一緻性。

如何使用阿裡的OneData方法論

設計統一規範

為了解決資料倉庫建設過程中出現的各種痛點,我們從模型與規範兩個方面進行建設,并提出設計統一規範。

1.模型

規範化模型分層、資料流向和主題劃分,進而降低研發成本,增強名額複用性,并提高業務的支撐能力。

(1) 模型分層

優秀可靠的數倉體系,往往需要清晰的資料分層結構,即要保證資料層的穩定又要屏蔽對下遊的影響,并且要避免鍊路過長。結合這些原則及以往的工作經驗,在數倉層面,我們将分層進行統一定義為四層:

如何使用阿裡的OneData方法論

(2) 模型資料流向

如何使用阿裡的OneData方法論

       重構之後,業務按照标準的資料流向進行開發,即ODS->DWD->DW->DWS->ADS。在保障了資料鍊路的合理性之後,又在此基礎上确認了模型分層引用原則:

  • 正常流向:ODS->DWD->DW->DWS->ADS,當出現ODS->DWD->DWS->ADS這種關系時,說明主題域未覆寫全。應将DWD資料落到DW中,對于使用頻度非常低的表允許DWD->DWS。
  • 盡量避免出現DWS寬表中使用DWD又使用(該DWD所歸屬主題域)DW的表。
  • 同一主題域内對于DW生成DW的表,原則上要盡量避免,否則會影響ETL的效率。
  • DW、DWS和ADS中禁止直接使用ODS的表, ODS的表隻能被DWD引用。
  • 禁止出現反向依賴,例如DW的表依賴DWS的表。

2.主題劃分

  • 面向業務:按照業務進行聚焦,降低對業務了解的難度,并能解耦複雜的業務。我們将實體關系模型進行變種處理為實體與業務過程模型。實體定義為業務過程的參與體;業務過程定義是由多個實體作用的結果,實體與業務過程都帶有自己特有的屬性。根據業務的聚合性,我們把業務進行拆分,形成了幾個核心主題。
  • 面向分析:按照分析聚焦,提升資料易用性,提高資料的共享與一緻性。按照分析主體對象不同及分析特征,形成分析域主題在DWS 進行應用,例如使用者分析域、訂單分析域。

3.規範

模型是整個數倉建設基石,規範是數倉建設的保障。為了避免出現名額重複建設和資料品質差的情況,我們統一按照最詳細、可落地的方法進行規範建設。

(1) 詞根

詞根是次元和名額管理的基礎,也是表字段命名的參考

如何使用阿裡的OneData方法論

(2) 表命名規範

通用規範

  • 表名、字段名采用下劃線分隔詞根(consultorder->consult_order)
  • 每部分使用小寫英文單詞,屬于通用字段的必須滿足通用字段資訊的定義。
  • 表名、字段名需以字母為開頭。
  • 表名、字段名最長不超過64個英文字元。
  • 優先使用詞根中已有關鍵字(數倉标準配置中的詞根管理),定期Review新增命名的不合理性。
  • 在表名自定義部分禁止采用非标準的縮寫。

表命名規則

ods dwd層​

  • 建表表名一律小寫
  • 表名命名規則: [層次].[業務]_[表内容]_[周期+處理方式]

dw dws層​

  • 建表表名一律小寫
  • 表名命名規則: [層次].[主題]_[表内容]_[周期+處理方式]  主題在dw層以後,表内容 參考業務系統表名,做适當處理,分表規則可以沒有

    如:wedw_ods.test_order_info_df

    wedw_ods表示層次,test表示主題,order_info表示表内容,d表示周期(天),f表示處理方式(全量抽取)

  • 臨時表命名規則:[層次].tb_目标表名_程式開始執行時間_序号

(3) 名額命名規範

結合名額的特性以及詞根管理規範,将名額進行結構化處理。

A. 基礎名額詞根,即所有名額必須包含以下基礎詞根:

如何使用阿裡的OneData方法論

B.日期修飾詞,用于修飾業務發生的時間區間。

如何使用阿裡的OneData方法論

C.聚合修飾詞,對結果進行聚集操作。

如何使用阿裡的OneData方法論

D. 基礎名額,單一的業務修飾詞+基礎名額詞根建構基礎名額

E. 派生名額,多修飾詞+基礎名額詞根建構派生名額。派生名額繼承基礎名額的特性.

F.普通名額命名規範,與字段命名規範一緻,由詞彙轉換即可以。

G.日期類型名額命名規範,命名時要遵循:業務修飾詞+基礎名額詞根+日期修飾詞/聚合修飾詞。将日期字尾加到名稱後面,

H.聚合類型名額,命名時要遵循:業務修飾詞+基礎名額詞根+聚合類型+日期修飾詞。将累積标記加到名稱後面,

2

統一輸出

數倉建設不僅僅是為了資料内容而建設,同時也為了提高傳遞的資料品質與資料使用的便利性。是以我們傳遞出去的資料必須是符合标準的高品質的資料,必須做到準确性,完整性,關聯性等标準

資料品質滿足以下幾點是可以進行輸出的

如何使用阿裡的OneData方法論
如何使用阿裡的OneData方法論

1. 資料資産管理

針對如何解決資料品質中次元與名額一緻性以及如何提高資料易用性的問題,我們提出資料資産的概念,借助公司内部平台工具“大資料平台”實作了整個資料資産管理,它的功能如下圖所示:

如何使用阿裡的OneData方法論

借用大資料平台,我們實作了:

  • 統一名額管理,保證了名額定義、計算口徑、資料來源的一緻性。
  • 統一次元管理,保證了次元定義、次元值的一緻性。
  • 統一維表管理,保證了維表及維表主鍵編碼的唯一性。
  • 統一資料出口,實作了次元和名額中繼資料資訊的唯一出口,維值和名額資料的唯一出口。

3

成就

3.3.1優化開發流程

我們對開發過程進行梳理,服務于整個OneData體系。對需求分析、名額管理、模型設計、資料驗證進行了改善,并結合OneData模型政策,改善了數倉管理流程。

  1. 需求分析:明确口徑,評估排期,需求正規流程送出
  2. 名額管理:完善名額命名規範,名額同名同義,名額與業務強相關,明确名額構成要素
  3. 模型設計:完善開發流程規範,标準化業務調研,知識庫文檔集中管理,建立模型評審機制
  4. ETL開發:ODS->DWD->DW->DWS->ADS
  5. 資料驗證:制定資料測試标準
  6. 任務排程:規範化排程參數配置
  7. 上線管理

3.3.2資産管理清單

基于資料平台形成的資産管理體系,如下圖所示:

如何使用阿裡的OneData方法論

4

總結

結合阿裡的onedata方法論,我們建構了穩定成熟的基礎資料倉庫,并且從資料底層保證了資料品質,形成了我們自己的onedata理論體系

未來,我們還将在内部引入flink,clickhouse等技術,搭建實時數倉,滿足靈活多樣,低延遲的資料分析

在後續數倉維護過程中,不斷地發現問題、解決問題和總結問題,保障資料穩定性、一緻性和有效性,為核心業務建構價值鍊,最終形成企業級的資料資産。