元數據
數據字典
數據字典描述的是數據的結構信息
數據血緣
數據血緣是指一個表是直接通過哪些表加工而來
數據特征
而數據特征主要是指數據的屬性信息,比如儲存空間,訪問熱度,主題域
業界元數據中心產品
開源的有Netflix的Metacat、Apache Atlas;
商業化的產品有Cloudera Navigator。
Metacat
多數據源集成型架構設計
從上面Metacat的架構圖中,你可以看到,Metacat的設計非常巧妙,它並沒有單獨再保存一份元數據,而是采取直連數據源拉的方式,一方面它不存在保存兩份元數據一致性的問題,另一方面,這種架構設計很輕量化,每個數據源只要實現一個連接實現類即可,擴展成本很低。
Apache Atlas 實時數據血緣采集
血緣采集,一般可以通過三種方式:
- 通過靜態解析SQL,獲得輸入表和輸出表;
- 通過實時抓取正在執行的SQL,解析執行計划,獲取輸入表和輸出表;
- 通過任務日志解析的方式,獲取執行后的SQL 輸入表和輸出表。
第一種方式,面臨准確性的問題,因為任務沒有執行,這個SQL對不對都是一個問題。第三種方式,血緣雖然是執行后產生的,可以確保是准確的,但是時效性比較差,通常要分析大量的任務日志數據。所以第二種方式,我認為是比較理想的實現方式,而Atlas 就是這種實現。對於Hive 計算引擎,Atlas 通過Hook方式,實時地捕捉任務執行計划,獲取輸入表和輸出表,推送給Kafka,由一個Ingest 模塊負責將血緣寫入JanusGraph圖數據庫中。然后通過API的方式,基於圖查詢引擎,獲取血緣關系。對於Spark,Atlas 提供了Listener的實現方式,此外Sqoop、Flink 也有對應的實現方式。
元數據中心
總結
元數據中心設計上必須注意擴展性,能夠支持多個數據源,所以宜采用集成型的設計方式。數據血緣需要支持字段級別的血緣,否則會影響溯源的范圍和准確性。數據地圖提供了一站式的數據發現服務,解決了檢索數據,理解數據的“找數據的需求”。