一、元數據概述
1、元數據定義
- 元數據:按傳統的定義,元數據就是關於數據的數據;
- 元數據的用途:
- 打通源數據、數據倉庫、數據應用,記錄數據從產生到消亡的全過程;
- 主要記錄:數據倉庫中模型的定義、各層級間的映射關系、監控數據倉庫中的數據狀態、監控 ETL 的任務的運行狀態;
- 在數據倉庫系統中,元數據可以幫助數據倉庫管理員和開發人員,非常方便的 找 到他們所關系的數據,用於指導其進行數據管理和開發,提供工作效率;
- 打通源數據、數據倉庫、數據應用,記錄數據從產生到消亡的全過程;
- 將元數據按用途的不同分為兩類:
- 技術元數據(Technical Metadata);
- 業務元數據(Business Metadata);
1/1)技術元數據
- 作用 / 用途:存儲關於數據倉庫系統技術細節的數據,用於開發和管理數據倉庫;
- 例:阿里常見的技術元數據:
- 分布式計算系統的存儲元數據
- 如,MaxCompute 表、列、分區等:
- 記錄了表的表名、分區信息、負責人信息、文件大小、表類型,生命周期;
- 列的字段名、字段類型、字段備注、是否是分區字段等;
- 如,MaxCompute 表、列、分區等:
- 分布式計算系統的運行元數據
- 如,MaxCompute 上所有作業運行等信息;
- 類似於 Hive 的 Job 日志,包括作業類型、實例名稱、輸入輸出、SQL、運行參數、執行時間、最細粒度的 Fuxi Instance(MaxCompute 中 MR執行的最小單元)執行信息等;
- 如,MaxCompute 上所有作業運行等信息;
- 數據開發平台中,數據同步、計算任務、任務調度等信息
- 數據同步信息:數據同步的輸入輸出表和字段、同步任務本身的節點信息;
- 任務調度信息:任務的依賴類型、依賴關系等,以及不同類型調度任務的運行日志等;
- 計算任務信息:輸入輸出、任務本身的節點信息;
- 與數據質量和運維相關的元數據
- 如任務監控、運維報警、數據質量、故障等信息,包括任務監控運行日志、告警配置及運行日志、故障信息等;
1/2)業務元數據
- 作業 / 用途:從業務角度描述了數據倉庫中的數據,提供了介於使用者和實際系統之間的語義層,使得不懂計算機技術的業務人員也能夠 “讀懂” 數據倉庫中的數據;
- 阿里常見的業務元數據:
- OneData 元數據
- 如,維度及屬性、業務過程、指標等的規范化定義,用於更好的管理和使用數據;
- 數據應用元數據
- 如,數據報表、數據產品等的配置和運行元數據;
- OneData 元數據
2、元數據的價值
- 元數據最重要的應用價值,是數據管理、數據內容、數據應用的基礎;
- 數據管理方面
- 為集團數據提供在計算、存儲、成本、質量、安全、模型等治理領域上的數據支持;
- 如,在計算上可以利用元數據查找超長運行節點,對這些節點進行專項治理,保障基線產出時間;
- 為集團數據提供在計算、存儲、成本、質量、安全、模型等治理領域上的數據支持;
- 數據內容方面
- 為集團數據進行數據域、數據主題、業務屬性等的提取和分析,提供數據材料;
- 如,可以利用元數據構建知識圖譜,給數據打標簽,清楚的知道現在有哪些數據;
- 為集團數據進行數據域、數據主題、業務屬性等的提取和分析,提供數據材料;
- 數據應用方面
- 打通了產品及應用鏈路,保障產品數據准確、及時產出;
- 如,打通 MaxCompute 和應用數據,明確數據資產等級,更有效的保障產品數據;
- 打通了產品及應用鏈路,保障產品數據准確、及時產出;
3、統一元數據體系建設
- 元數據建設的目標:
- 打通數據接入到加工,再到數據消費的整個鏈路,規范元數據體系與模型,提供統一的元數據服務出口,保障元數據產出的穩定性和質量;
-
元數據體系建設的思路:(以阿里元數據體系 OneMata 為例)
-
首先梳理清楚元數據底層數據
- 對元數據做分類,較少數據重復建設,保障數據的唯一性;
- 分類:計算元數據、存儲元數據、質量元數據、模型元數據、成本管理元數據等;
- 豐富表和字段使用說明,方便使用和理解;
- 對元數據做分類,較少數據重復建設,保障數據的唯一性;
-
根據元倉底層數據構建元倉中間層
- 依據 OneData 規范,建設元數據基礎寬表,也就是元數據中間層,打通從數據產生到消費的整個鏈路,不斷豐富中間層數據;
- 如,MaxCompute 元數據、調度元數據、同步元數據、產品訪問元數據、服務器元數據、應用注冊元數據等;
- 基於元數據中間層,對外提供標准統一的元數據服務出口,保障元數據產出的質量;
- 依據 OneData 規范,建設元數據基礎寬表,也就是元數據中間層,打通從數據產生到消費的整個鏈路,不斷豐富中間層數據;
-
應用
- 豐富的元數據中間層,能夠為集團數據提供在計算、存儲、成本、質量、安全、模型等治理領域上的數據支持,形成一套完整的 ROI 數據體系;
- 豐富的元數據中間層,還能為為集團數據進行數據內容、數據域、數據主題、業務屬性等的提取和分析提供了數據素材;
二、元數據應用
- 數據的真正價值在於,數據驅動決策,通過數據指導運營;
- 數據化運營:通過數據驅動的方法,判斷趨勢,從而展開有效行動,幫助發現問題,推動創新或解決方案的產生;
-
元數據應用示例:
- 對於數據使用者,可以通過元數據指導其快速找到所需要的數據;
- 對於 ETL 工程師,可以通過元數據指導其進行模型設計、任務優化、任務下線等各種日常 ETL 工作;
- 對於運維工程師,可以通過元數據指導其進行整個集群的存儲、計算、系統優化等運維工作;
1、Data Profile
- 核心思路:為紛繁復雜的數據,建立一個脈絡清晰的血緣圖譜;
- 主要功能:通過圖計算、標簽傳播算法等技術,系統化、自動化的對計算與存儲平台上的數據,進行打標、整理、歸檔;
- 形象的說,Data Profile 實際承擔的是為元數據 “畫像” 的任務;
-
Data Profile 共有四類標簽:
- 思路:數據之間的個性化,除了應用場景的不同之外,實際上在數據研發流程、保障登記、數據質量要求、安全等級、運維策略、警告設置上都會有差異;
- 作用:節約研發人員的時間成本,同時對阿里內部的非研發人員來說,也可以更直觀的理解數據、利用數據,從而提升數據的研發效率;
- 根據這種差異化,Data Profile 開發了四類標簽:
- 基礎標簽:針對數據的存儲情況、訪問情況、安全等級等進行打標;
- 數倉標簽:針對數據是增量還是全量、是否可再生、數據的生命周期來進行標簽化處理;
- 業務標簽:根據數據歸屬的主題域、產品線、業務類型,為數據打上不同的標簽;
- 潛在標簽:主要為了說明數據潛在的應用場景,如,社交、媒體、廣告、電商、金融等;
2、元數據門戶
- 主要功能:數據搜索和數據管理;
- 功能模塊:“前台”、“后台”;
-
“前台” 產品數據地圖
- 功能:定位消費市場,實現檢索數據、理解數據等 “找數據” 的需求;
- 數據地圖:
- 服務對象:圍繞數據搜索,服務於數據分析、數據開發、數據挖掘、算法工程師、數據運營等,數據表的使用者和擁有者;
- 服務內容:提供方便快捷的數據搜索服務,擁有功能強大的血緣信息及影響分析,利用表使用說明、評價反饋、表收藏級精品表機制,為用戶浮現高質量、高保障的目標數據;
- 如,在數據分析前,使用數據地圖進行關鍵詞搜索,幫助快速縮小范圍,找到對應的數據;
- 如,使用數據地圖根據表名直接查看表詳情,快速查閱明細信息,掌握使用規則;
- 如,通過數據地圖的血緣分析,可以查看每個數據表的來源、去向,並查看每個表及字段的加工邏輯;
-
“后台” 產品數據管理
- 功能:定位於一站式數據管理,實現成本管理、安全管理、質量管理等;
- 數據管理平台:
- 服務對象及內容:個人開發者、BU 管理者、系統管理員等用戶,提供個人和 BU 全局資產管理、成本管理、質量管理等;
- 針對個人開發者,主要包括計算費用和健康分管理、存儲費用和健康分管理,並提供優化建議和優化接口;
- 針對 BU 管理者和管理員,主要提供 BU、應用、集群等全局資產消耗概覽、分析和預測;
- 服務對象及內容:個人開發者、BU 管理者、系統管理員等用戶,提供個人和 BU 全局資產管理、成本管理、質量管理等;
3、應用鏈路分析
- 思路 / 功能:
- 配置數據間的 “血緣關系”,用戶可以通過元數據血緣,分析產品及應用的鏈路;通過血緣鏈路可以清楚的統計到某個產品所用到的數據在計算、存儲、質量上存在哪些問題;通過治理優化保障產品數據的穩定性;
- 實例:業務需求
- 對於某個數據計算任務或表,其重要程度如何?是否還有下游在使用?是否可以下線?
- 阿里的很多數據產品,都依賴哪些 MaxCompute 表?對這些 MaxCompute 表是否需要根據應用的重要程度進行資源、運維保障?
- 解決思路:
- 通過元數據血緣來分析產品及應用的鏈路,通過血緣鏈路可以清楚的統計到某個產品所用到的數據在計算、存儲、質量上存在哪些問題,通過治理優化保障產品數據的穩定性;
- 通過應用鏈路分析,產出 3 中血緣類型:表級血緣、字段血緣、表的應用血緣;
-
表級血緣主要有 2 中計算方式:
- 通過 MaxCompute 任務日志進行解析;
- 根據任務依賴進行解析;
-
表的應用血緣解析:
- 難點最大;
- 按照應用和物理表的配置關系,可以分為配置型和無配置型:
-
配置型:
- 如,對於數據報表、集市等應用,其數據源直接或間接使用 MaxCompute 數據,且有元數據配置依賴關系,通過配置元數據,可以獲取 MaxCompute 物理表、具體的報表、集市等應用的血緣關系;
- 問題案例:對於生意參謀等數據產品,其數據源通過數據同步方式同步到 MySQL、HBase 等數據庫,間接使用 MaxCompute 數據,且無配置產品和 MySQL、HBase 等物流數據源的依賴關系,導致無法通過配置源數據解析 MaxCompute 數據和數據產品的關系;
- 解決方案:主要通過統一的應用日志打點 SDK 來解決此類問題,可以做到配置化、應用無痕化;
-
無配置型:
- 常見的應用鏈路分析應用:主要有影響分析、重要性分析、下線分析、鏈路分析、尋根溯源、故障排查等;
-
4、數據建模
- 思路 / 業務場景:基於現有底層數據已經有下游使用的情況,可以通過下游使用的元數據指導數據參考模型;
- 通過元數據驅動的數據倉庫模型建設,提高了數據倉庫建模的數據化指導,提升建模效率;
- 下游使用情況:指查詢、關聯、聚合、過濾等操作;
- 記錄下游使用情況的數據,就是輔助建設模型的元數據;
- 操作:設置閾值,記錄下游對數據的使用情況,使用次數超過閾值的情況,將被用來參考建模;
-
數據倉庫建模所使用的元數據:
-
其中,查詢值 SQL 的 SELECT,關聯指 SQL 的 JOIN,聚合指 SQL 的 GROUP BY,過濾指 SQL 的 WHERE;
- 表的基礎元數據
- 包括下游情況、查詢次數、關聯次數、聚合次數、產出時間等;
- 表的關聯關系元數據
- 包括關聯表、關聯類型、關聯字段、關聯次數等;
- 表的字段的基礎元數據
- 包括字段名稱、字段注釋、查詢次數、關聯次數、聚合次數、過濾次數等;
-
-
在星形模型設計過程中,可能類似於如下使用元數據:
- 基於下游使用中關聯次數大於某個閾值的表,或查詢次數大於某個閾值的表等元數據信息,篩選用於數據模型建設的表;
- 基於表的字段元數據,如,字段中的時間字段、字段在下游使用中的過濾次數等,選擇業務過程標識字段;
- 基於主從表的關聯關系、關聯次數,確定和主表關聯的從表;
- 基於主從表的字段使用情況,如,字段的查詢次數、過濾次數、關聯次數、聚合次數等,確定哪些字段進入目標模型;
5、驅動 ETL 開發
- 思路:通過元數據,指導 ETL 工作,提高 ETL 的效率;
-
實例場景:
- 通過 Data Profile 得到數據的下游任務依賴情況、最近被讀寫次數、數據是否可再生、每天消耗的存儲計算等,通過這些信息判斷數據是否可以下線;
- 如果根據一些規則判斷數據可以下線,則會通過 OneClick 觸發一個數據下線的工作任務流,數據 Owner 可能只需要點擊提交按鈕,刪除數據、刪除元數據、下線調度任務、下線 DQC 監控等一些列的操作就會自動在后台執行完成;