大數據之路_元數據篇

一.元數據概述
(1)元數據定義
按照傳統的定義,元數據( Metadata )是關於數據的數據。元數據打通了源數據、數據倉庫、數據應用,記錄了數據從產生到消費的全過程。
元數據主要記錄數據倉庫中模型的定義、各層級間的映射關係、監控數據倉庫的數據狀態及 ETL 的任務運行狀態。在數據倉庫系統中,元數據可以幫助數據倉庫管理員和開發人員非常方便地找到他們所關心的數據,用於指導其進行數據管理和開發工作,提高工作效率。
將元數據按用途的不同分為兩類:技術元數據( Technical Metadata)和業務元數據( Business Metadata )。
 
技術元數據是存儲關於數據倉庫系統技術細節的數據,是用於開發和管理數據倉庫使用的數據。阿里巴巴常見的技術元數據有:
分散式計算系統存儲元數據,如 MaxCo te 表、列、分區等資訊。記錄了表的表名。分區資訊、責任人資訊、文件大小、表類型,生命周期,以及列的欄位名、欄位類型、欄位備註、是否是分區 段等資訊。
 
分散式計算系統運行元數據,如 MaxCompute 上所有作業運行等資訊:類似於 Hive Job 日誌,包括作業類型、實例名稱、輸入輸出、 SQL 、運行參數、執行時間、最細粒度的 Instance(Max Compute MR 執行的最小單元)執行資訊等。
 
數據開發平台中數據同步、計算任務、任務調度等資訊,包括數據同步的輸入輸出表和欄位,以及同步任務本身的節點資訊:計算任務主要有輸入輸出、任務本身的節點資訊 任務調度主要有任務的依賴類型、依賴關係等,以及不同類型調度任務的運行日誌等。
 
數據品質和運維相關元數據,如任務監控、運維報警、數據品質、故障等資訊,包括任務監控運行日誌、告警配置及運行日誌、故障資訊等。
 
業務元數據從業務角度描述了數據倉庫中的數據,它提供了介於使用者和實際系統之間的語義層,使得不懂電腦技術的業務人員也能夠「讀
懂」數據倉庫中的數據。阿里巴巴常見的業務元數據有:
  •  OneData 元數據,如維度及屬性、業務過程、指標等的規範化定義,用於更好地管理和使用數據。
  • 數據應用元數據,如數據報表、數據產品等的配置和運行元數據。
 
(2)元數據價值
元數據有重要的應用價值,是數據管理、數據內容、數據應用的基礎,在數據管理方面為集團數據提供在計算、存儲、成本、品質、安全、模型等治理領域上的數據支援。例如在計算上可以利用元數據查找超長運行節點,對這些節點進行專項治理,保障基準線產出時間。在數據內容方面為集團數據進行數據域、數據主題、業務屬性等的提取和分析提供
數據素材。例如可以利用元數據構建知識圖譜,給數據打標籤,清楚地知道現在有哪些數據。在數據應用方面打通產品及應用鏈路,保障產品數據準確、及時產出。例如打通 Max Compute 和應用數據,明確數據資產等級,更有效地保障產品數據。
 
(3)統一元數據體系建設
元數據的品質直接影響到數據管理的準確性,如何把元數據建設好將起到至關重要的作用。元數據建設的目標是打通數據接入到加 ,再到數據消費整個鏈路,規範元數據體系與模型,提供統一 的元數據服務出口,保障元數據產出的穩定性和品質。
 
 
首先梳理清楚元倉底層數據,對元數據做分類,如計算元數據、存儲元數據、品質元數據等,減少數據重複建設,保障數據的唯一性。另外,要豐富表和欄位使用說明,方便使用和理解。根據元倉底層數據構
建元倉中間層,依據 OneData 規範,建設元數據基礎寬表,也就是元數據中間層,打通從數據產生到消費整個鏈路 ,不斷豐富中間層數據,如MaxCompute 元數據、調度元數據、同步元數據、產品訪問元數據、服
務元數據等。基於元數據中間層,對外提供標準統一的元數據服務出口,保障元數據產出的品質。豐富的元數據 中間層不僅能夠為集團數據提供在計算、存儲、成本、品質、安全、模型等治理領域上的數據支援,形
成一套完整的 ROI 數據體系,而且為集團數據進行數據內容、數據域、數據主題、業務屬性等的提取和分析提供了數據素材。
 
二.元數據應用
數據的真正價值在於數據驅動決策,通過數據指導運營。通過數據驅動的方法,我們能夠判斷趨勢 ,從而展開有效行動,幫助自己發現問題,推動創新或解決方案的產生。這就是數據化運營。同樣,對於元數
據,可以用於指導數據相關人員進行日常工作,實現數據化「運營」。比如對於數據使用者,可以通過元數據讓其快速找到所需要的數據;對ETL 工程師,可以通過元數據指導其進行模型設計、任務優化和任
務下線等各種日常 TL 工作;對於運維工程師,可以通過元數據指導其進行整個集群的存儲、計算和系統優化等運維工作。
 
(1)Data Profile
Data Profi le 的出現,很好地解決了在研發初期數據處理的繁雜困境,既節約了時間成本,同時也縮減了相當一部分人力資源。它的核心思路是為紛繁複雜的數據建立一個脈絡清晰的血緣圖譜。通過圖計算、標籤傳播演算法等技術 ,系統化、自動化地對計算與存儲平台上的數據進行打標、整理、歸檔。形象地說, Data Profile 實際承擔的是為數據「畫像」的任務。
數據之間的個性化,除了應用場景的不同之外,實際上在數據的研發流程、保障登記、數據品質要求、安全 級、運維策略、告警設置上都會有 差異。根據這種差異化, Data Profile 開發出了四類標籤,如圖12.2 示。
(2) 元數據門戶
阿里巴巴基於元數據產出的最重要的產品是元數據門戶。元數據門戶致力 打造一站式 的數據管理平台、高效的 體化數據市場。包括「前台」和 「後台」,「前台」產品為數據地圖,定位消費市場,實現檢索數理解數據等「找數據」需求 「後台」產品為數據管理,定位於站式數據管理,實現成本管理、安全管理、品質管理等。
 
(3)應用鏈路分析
對於某個數據計算任務或表,其重要程度如何,是否還有下游在使用,是否可以下線;阿里巴巴有這麼多數據產品,都依賴哪些MaxCompute 表,對這些 MaxCompute 表是否需要根據應用的重要程度進行資源 、運維保障……對於這些問題,我們都可以通過元數據血緣來分析產品及應用的鏈路,通過血緣鏈路可以清楚地統計到某個產品所用到的數據在計算、存儲、品質上存在哪些問題,通過治理優化保障產品數據的穩定性。
通過應用鏈路分析,產出表級血緣、欄位血緣和表的應用血緣。其中表級血緣主要有兩種計算方式:一種是通過 MaxCompute 任務日誌進行解析;一種是根據任務依賴進行解析。
 
其中難度最大的是表的應用血緣解析,其依賴不同的應用。按照應用和物理表的配置關係,可以分為配置型和無配置型。對於數據報表、集市等應用,其數據源直接或間接使用 MaxCompute 數據且有元數據配置依賴關係,通過配置元數據,可以獲取 MaxCompute 物理表和具體的報表、集市等應用的血緣關係。對於生意參謀等數據產品,其數據摞通過數據同步方式同步至 MySQL HBase 等資料庫,間接使用 MaxCompute數據且無配置產品和 MySQL HBase 等物理數據源的依賴關係,導致無
法通過配置元數據解析 MaxCompute 數據和數據產品的關係。主要通過統一的應用日誌打點 SDK 來解決此問題,可以做到配置化、應用無痕化。
 
常見的應用鏈路分析應用主要有影響分析、重要性分析、下線分析、鏈路分析、尋根溯源、故障排查等。
 
(4)數據建模
傳統的數據倉庫建模一般採用經驗建模的方式,效率較低且不準確。基於現有底層數據已經有下游使用的情況,我們可以通過下游所使用的元數據指導數據參考建模。通過元數據驅動的數據倉庫模型建設,可以在 定程度上解決此問題,提高數據倉庫建模的數據化指導,提升建模效率。
所使用的元數據主要有
  • 表的基礎元數據,包括下游情況、查詢次數、關聯次數、聚合次數、產出時間等。
  • 表的關聯關係元數據,包括關聯表、關聯類型、關聯欄位、關聯次數等。
  • 表的欄位的基礎元數據,包括欄位名稱、欄位注釋、查詢次數、關聯次數、聚合次數、過濾次數等。
其中查詢指 SQL SELECT 關聯指 SQL JOIN ,聚合指 SQL的GROUP BY 過濾指 SQL WHERE
 
(5)驅動 ETL 開發
通過元數據,指導 ETL 工作,提高 ETL 的效率。在「數據同步」中,我們提到了通過元數據驅動 鍵、批量高效數據同步的OneClick OneClick 覆蓋的另 個場景是存量數據日常維護,其主要功能如圖 12.3 中的「數據運維」部分所示。
 
我們可以通過 Data Profile 得到數據的下游任務依賴情況、最近被讀寫的次數、數據是否可再生、每天消耗的存儲計算等,這些資訊足以讓我們判斷數據是否可以下線;如果根據 些規則判斷可以下線,則
會通過 OneClick 個數據下線的工作任務流,數據 Owner 可能只要點擊提交按鈕,刪除數據、刪除元數據、下線調度任務、下線 DQC監控等 系列操作就會自動在後台執行完成。