- 產品
- 產品解決方案
- 行業解決方案
- 案例
- 數據資產入表
- 賦能中心
- 伙伴
- 關于
時間:2022-03-11來源:時光倒流二十年瀏覽數:787次
? 元數據定義
??元數據分類
??元數據價值
??元數據應用
??項目制場景下的元數據管理
??規范化的元數據管理
元數據的文章,網上已經有很多了,元數據相關概念有限所以重復度很高。
本文將相關概念匯集,爭取給大家介紹的全面一點。
1. 元數據定義元數據(Meta-data)是描述數據的數據(The data about data),更準確點應該叫 The information abut data。如何理解這句話?就是描述信息、實體、系統的數據。
舉幾個例子
175,大家有概念嗎?如果我說這是一個男孩兒的身高大家是不是就懂了。如果我再加一個他才 14 歲信息量是不是更大了?因此:數據+元數據(描述數據的數據)=信息。
遙控器,上邊一堆按鍵如果沒有文字說明大概率是沒人會用的。我們只有通過按鍵上的標記+使用說明書這些遙控器的元數據,才能夠很快的了解其功能并學會使用。
數據庫,每個數據庫里都會有一堆的字典表,里邊存儲了數據庫、表、字段、索引、視圖、函數、存儲過程、存儲位置,也會有記錄許多日志比如每一次的查詢日志、數據庫各種運行日志等。這些數據字典和數據庫運行日志就是一個數據庫的元數據,我們通過查詢元數據就能了解到數據庫里存儲了哪些數據、數據庫的查詢性能、負載、健康狀況等全方位的數據庫信息。
數據不會自己管理自己,需要通過元數據去管理他們。
詳見:一文讀懂元數據的概念、分類及作用
2. 元數據分類行業內通常會把元數據分為四類,但我習慣把操作元數據歸為技術元數據,所以事實上是分為三類。接下來我們逐個講解下,力爭把數據倉庫涉及到的元數據全都涵蓋進去。
2.1 業務元數據廣義來講,所有用于描述業務各種邏輯的信息都可稱為 Business Metadata。
這包括但不僅僅限于如下信息:
商業術語:Business Glossary, 包括名詞和詳細定義。
術語分類:Taxonomies,對于上述的商業術語的邏輯歸類,可構成 Glossary Tree。
業務規則:Business Rule。
業務流程:Business Process,包括Activity, Input, Output, Supplier, Consumer, 等等。
業務元數據,在實際業務中,需要不斷的進行維護且與業務方進行溝通確認。但這類數據很難在元數據管理系統中體現。
2.2 技術元數據廣義來講,所有在計算機系統中的各類數據的描述均可稱為 Technology Metadata
這里我把操作類的比如各種日志也都歸為技術元數據了,大家按個人理解也可以單列出來。
數據倉庫中的技術元數據一般包含以下五類:
數據源元數據
存儲元數據
計算元數據
調度元數據
數據應用元數據
2.2.1 數據源元數據數據源的 IP、端口、數據庫類型。
數據獲取的方式,是抽取還是推送,是文件還是直連數據。
數據存儲的結構,關系表還是 Json,以及各列的定義。
2.2.2 存儲元數據包含物理模型和物理存儲:
表/列的詳細信息(名稱、備注、存儲位置等),這是最最重要的數據資產。
存儲資源總量、使用情況、增長情況、空閑等。
如果有視圖、索引、存儲過程、函數的也要算進來。
主題域劃分、總線矩陣、詞根庫等等。
表、視圖等的使用情況。
還有兩種數據,雖然不屬于元數據(規范點講應該算作主數據),但對于數倉至關重要:編碼映射數據、統一維度數據
2.2.3 計算元數據包含 ETL 配置和計算資源:
ETL 任務流定義,多少條任務流、用途是啥、所屬層級。
ETL 流程依賴,這個至關重要,后續的數據流轉和數據血緣都依賴于此。
計算資源總量、使用情況、空閑等。
代碼部署位置,比如服務器位置、文件目錄結構等。
運行日志,記錄了 ETL 運行的關鍵信息。
2.2.4 調度元數據調度時機、調度日志、以及可能會有的任務依賴。
調度系統本身部署和運行所需其它信息。
2.2.5 應用元數據應用列表、最晚出數時間、BI 模型和物理模型的映射關系等等。
指標/標簽定義(名稱、口徑),當然這個歸到業務元數據也能說的通。
各個應用的使用情況(誰什么時候使用了什么)。
2.4 管理元數據人員管理領域相關,包括管理流程、人員組織、角色職責、各種規范等。
數據管理活動相關,比如數據質量管理、數據資產管理、安全管理、成本治理等等過程中新產生的元數據。
3. 元數據價值數據倉庫的元數據,是對數據倉庫所有環節(數據源、集成同步、存儲、計算、數據管理、數據應用等等)沉淀下來的數據的描述性信息和過程日志信息,我們梳理數據資產、查找和使用數據、評估數據質量、了解數倉健康狀況、成本治理等等都會首先從數倉元數據入手。
幫助數據平臺了解自己本身的情況例如我有哪些數據、我存儲的數據有多大、如何找到我所需要的數據、我的數據何時產出等信息。完善的元數據是我們快速掌握數倉系統的關鍵。
自動化監控告警
我們根據對元數據的分析,可以自動化的獲取數倉運行狀況、評估模型和 ETL 代碼的規范度、識別源數據變更、監控存儲和計算資源的負載等等。
高效精準溝通
一方面,元數據中的管理元數據會記錄不同用戶、角色、部門的數據權限。如果有數據需要進行通知,則可以快速查詢系統進行群發郵件等方式進行溝通,從而避免了造成溝通環節的缺人和多人情況發生。
另一方面,在與產品溝通業務或是與研發溝通接口時,可以根據業務元數據,確認彼此溝通的指標、維度含義。從而在根源上避免交流的歧義。進而提高溝通效率。
快速分析變更影響
因元數據被集中維護并管理引用關系,當發生變更時,可以通過元數據管理系統以實時分析出其所影響的業務功能、應用系統、涉及人員、是否涉及監管等影響信息。
4. 元數據應用 4.1 影響分析在開發中,我們經常會遇到以下問題:
如果我要改動某個表或 ETL任務會造成怎樣的影響?如若我要調整某個任務流的調度時間又會造成怎樣的影響?
如果沒有元數據,那我們可能需要遍歷所有的腳本和數據才能得到想要的答案;而如果有成熟的元數據管理,那我們就可以直接得到答案節省大量時間。
4.2 血緣分析血緣分析是一種技術手段,用于對數據處理過程的全面追蹤,從而找到某個數據對象為起點的所有相關元數據對象以及這些元數據對象之間的關系。元數據對象之間的關系特指表示這些元數據對象的數據流輸入輸出關系。
在元數據管理系統成型后,我們便可以通過血緣分析來對數據倉庫中的數據健康、數據分布、集中度、數據熱度等進行分析。
4.3 數據地圖可以對數倉內的數據有一個宏觀整體的認識:總項目數、總表數、占用存儲量、存儲趨勢圖、項目占用存儲 Top、表占用存儲 Top、熱門表等等。
可以檢索查找我們需要的數據:查找表結構表描述、查找表血緣、查找表權限、查找表的使用情況。
詳見:什么是數據倉庫元數據?什么是數據地圖?
4.4 自動化監控告警我們可以通過對各種元數據的分析,比如數據源元數據、ETL 運行日志、數據質量稽核日志、模型設計代碼開發規范規范等,去自動識別問題,然后第一時間觸發告警,以便盡早的解決問題。
4.5 數據質量管理數據質量管理依托數倉元數據,同時也會產生新的元數據。
詳見:數據倉庫之數據質量建設方案
5. 項目制場景下的元數據管理元數據管理,我們不必拘泥于形式,結合生產實際夠用即可。
另外,上文中的元數據分類,個人感覺實際生產中并不會刻意參考,我們通常會根據數倉建設的流程去歸類,不同環節產生不同的元數據。
實際上做項目的場景,甲方關注最多的是最終的數據應用以及交付時候的文檔是否完備。甲方都不關心乙方更不會去專門梳理元數據了。所以元數據通常都是分散的,甚至很多都是文檔,元數據管理主要依靠數倉規范,依靠領導的監督,挺難的。
源數據分析階段,我們會產出數據源元數據,記錄數據源有哪幾個、數據如何訪問如何采集、采集的內容有哪些、同步加載策略和時機是什么等等。元數據存儲介質是文檔。
需求分析階段,我們會產生最終應用相關的元數據,比如多少張報表、每張報表有多少維度多少指標、報表的展現形式、篩選條件、排序規則、指標口徑等等。元數據存儲介質是文檔。

模型設計落地階段,我們產生物理模型元數據。元數據存儲介質是模型設計文檔,或者數據庫的元數據。

ETL 設計開發階段,我們產生 ETL 映射文檔、ETL 流程依賴、數據血緣元數據。元數據存儲介質是 ETL 設計文檔。


上線運行階段,我們還會產生任務調度、任務運行日志、存儲空間使用情況、數據質量校驗等元數據。元數據存儲介質是日志文件或者數據庫或者調度系統元數據。

時過境遷,隨著互聯網時代的普及,大多數看重數據的公司都會組建自己的數據,市面上做數據的公司也大多是 Saas 模式,就算還用私有化的方式部署也都會有成熟的數據采集、存儲、展現工具,附帶的也會有數據治理工具、數據資產管理工具等等。
既然有了這么多完善的工具了,那么元數據管理自然而然的也會規范很多,接下來我們逐個闡述。
6.1 元數據生產成熟的數倉應該會有完善的開發、檢查、調度、數據管理等工具,元數據的生產也應該是通過工具沉淀,而不能像項目制那種只能依靠管理手段強制落文檔了。
工具的好處,除了自動記錄元數據外,還有規則校驗的功能這在很大程度上降低了出錯的概率。
6.1.1 建模工具我們可以有一個系統,用來做模型設計,提交的時候會做校驗(表字段命名是否符合規范是否存在于詞根庫、是否有備注、表的一些屬性所屬主題域所屬分層等是否已指定)
如果沒有這個系統的話,那么就需要有個程序定期檢測數據存儲的元數據,發現問題及時上報解決,確保元數據生產環節的準確、完整、合規。
6.1.2 指標/標簽系統首先會有個相對穩定的分類體系,所有指標或標簽必須先在該系統注冊并且掛靠到已有的分類體系下。然后定義好必要的屬性,比如中英文名稱、計算口徑等等。

指標體系的屬性模板

標簽體系的屬性參考
6.1.3 數據開發工具數據開發工具,也可以是個 ETL 工具或者 shell 腳本+調度系統。
我們需要實現如下功能:數據計算、運行日志記錄、參數傳遞、代碼格式化和規范性校驗、任務依賴配置。
數據計算的代碼通常會是 SQL 語句,該工具記錄下來的信息,就是完整的 ETL 元數據,另外我們可以通過解析 SQL 自動生成數據血緣。
6.1.4 調度配置工具數據開發完成后,我們需要將任務流裝載到調度工具里,調度工具會記錄調度元數據,同時調度任務執行日志也可以當作 ETL 運行日志。
6.1.5 數據質量工具我們通過數據質量工具,配置稽核校驗規則,對關鍵數據進行卡點校驗,而這些校驗程序運行日志和運行結果都會成為數據質量元數據。
具體的數據質量工具設計思路,我會在下一篇做介紹。
6.2 元數據采集元數據采集,就是定期將 6.1 提到的元數據生產工具產生的各種元數據搜集匯總起來,為下一步的管理和應用做準備。
如果沒有元數據生產工具,就只能人肉錄入了,但數據質量很難保證。
6.3 元數據管理元數據管理的目的,一個是檢查元數據生產環節的數據質量發現遺漏或者錯誤及時糾正,另一個就是對元數據做進一步分析轉化,以便監控數據倉庫整體的運轉情況,同時為各種元數據應用提供數據支撐。