企業如何找到數據、了解數據以及使用數據?
這離不開數據目錄的能力。數據目錄有著類似于“字典”的作用,能夠幫助數據生產者和使用者快速定位數據、解釋數據、找到數據,并從中提取業務價值。
對以研發人員為代表的數據生產者來說,他們利用數據目錄來組織、梳理各類元數據。例如,數據生產者會將元數據以目錄等形式編排到一起,方便維護,并通過打業務標簽、添加應用場景描述、字段解釋等豐富業務相關屬性。
對于數據分析師、產品、運營等數據使用者來說,他們通過數據目錄來查找和理解數據,例如通過關鍵字檢索,或目錄瀏覽,來查找業務場景數據,并瀏覽詳情介紹、字段描述、產出關系等,進一步理解并利用數據決策。
在字節跳動,也有這么一套被內部廣泛使用的數據目錄系統。目前,該系統已通過火山引擎DataLeap數據地圖平臺對外輸出。外部用戶也可以在DataLeap數據地圖平臺,收集、組織、訪問和補充元數據信息,為自身數據建設和治理提供支持。
火山引擎DataLeap數據地圖平臺-數據目錄
要構建一套擴展性強、易維護且易用的數據目錄系統并非易事。在大數據領域,各類計算和存儲系統百花齊放,概念和原理又千差萬別,對于元數據的采集、組織、理解、信任等,都帶來了很大挑戰。
在調研各個開源軟件及技術體系基礎上,火山引擎DataLeap選擇基于Apache Atlas改造,而這套數據目錄系統主要依賴五大關鍵技術:
第一,數據模型統一。一方面,DataLeap通過充分復用各種元數據類型間的相似能力,獲得數據模型定制靈活性;另一方面,DataLeap將數據源關聯的能力進行收斂到一起,以降低后續的維護成本。
第二,數據接入標準化。當用戶接入新的元數據時,只需要重新編寫Source和Diff Operator,而其他組件可直接復用,以標準化的connector節省接入和運維成本。
第三,搜索優化。在數據目錄中,搜索是用戶最廣泛使用的功能,也是用戶找數主要的手段。搜索優化可分為離線部分和在線部分。離線部分負責匯集各類與搜索相關的數據,完成數據清洗或者模型訓練,再根據不同的用途,寫入不同的存儲,供給在線搜索模塊使用。在線部分則分為搜索理解、召回、精排三個主要階段,步驟和概念與通用搜索引擎對齊。
第四,血緣能力。完備的血緣能力,既可以幫助數據生產者梳理、組織元數據,也可以幫助數據消費者找數、理解數據上下文。火山引擎DataLeap在設計上充分考慮血緣鏈路的多樣性和復雜性,并在血緣質量上,通過定義有效的血緣準確率、覆蓋率和時效性,確保血緣信息準確、全面和實時性。
第五,存儲層優化。當業務中有越來越多的元數據接入數據目錄,圖存儲中的點和邊將分別到達百萬和千萬量級,造成讀寫性能出現問題。在讀優化和寫優化層面,火山引擎DataLeap分別通過開啟MutilPreFetch 能力、去除Guid全局唯一性檢查,最終實現小表性能小于100ms、中表性能2~5s、大表性能0.5~1min。
據介紹,火山引擎DataLeap能幫助企業快速完成數據集成、開發、運維、治理、資產、安全等全套數據中臺建設,其中數據目錄能力主要涵蓋在數據地圖平臺,該平臺通過提供數據檢索、元數據詳情查看、數據理解等功能,解決找數難、理解數據難的痛點,同時支持數據專題、血緣圖譜、數據發現、庫表管理等特色功能。
目前,火山引擎DataLeap的數據地圖平臺已接入全鏈路核心元數據,包括LAS、MySQL、ByteHouse CE、ByteHouse CDW、TOS、LasFS、EMR hive等,提供可視化的血緣關系展示能力,幫助用戶全面的探查了解數據,支持表、字段級別血緣可視化查詢,以及按層級、范圍篩選展示,為用戶提供靈活、易用的數據服務。(作者:于宇燦)