數(shù)據(jù)治理篇-元數(shù)據(jù): datahub概述

前言. 元數(shù)據(jù)是數(shù)據(jù)治理的靈魂

1. 元數(shù)據(jù)之于數(shù)據(jù)治理

數(shù)據(jù)治理是一個龐大的系統(tǒng)簿晓,其中主要包括數(shù)據(jù)管控鼓拧,數(shù)據(jù)質量茅诱,數(shù)據(jù)安全畦戒,數(shù)據(jù)標準籍嘹。
a) 數(shù)據(jù)管控:
每一項數(shù)據(jù)變更都能得到明確記錄及授權闪盔,使得數(shù)據(jù)系統(tǒng)變得可控,可追溯噩峦。
b). 數(shù)據(jù)質量:
主動檢測發(fā)現(xiàn)數(shù)據(jù)異常锭沟,禁止系統(tǒng)運行在錯誤狀態(tài)造成損失。
c). 數(shù)據(jù)安全:
隨著大數(shù)據(jù)時代的信息爆炸识补,數(shù)據(jù)的安全性開始與個人生活息息相關族淮,任意安全事故對于企業(yè)商業(yè)運行來說可能都是致命一擊。
d). 數(shù)據(jù)標準:
所有的數(shù)據(jù)踏上規(guī)范化的進程凭涂,讓所有數(shù)據(jù)系統(tǒng)建設有著清晰統(tǒng)一的目標祝辣。

我們這里主要聚集在數(shù)據(jù)管控這一塊,也就是元數(shù)據(jù)的應用領域切油。
當然個人不是數(shù)據(jù)治專家蝙斜, 這里僅從技術角度討論元數(shù)據(jù)系統(tǒng)。

2. 什么是元數(shù)據(jù)澎胡?

一般來說是數(shù)據(jù)的數(shù)據(jù)孕荠。
具體來說,就是對動態(tài)數(shù)據(jù)的一種靜態(tài)信息描述攻谁。
數(shù)據(jù)從本質上來說是二進制的稚伍,動態(tài)的。
所以戚宦,為了理解數(shù)據(jù)个曙,我們需要數(shù)據(jù)的數(shù)據(jù)。

3. 常用的元數(shù)據(jù)有哪些受楼?

在數(shù)據(jù)流處理中垦搬,我們首先需要定義不同階段的數(shù)據(jù)實體呼寸,所以有了[模式元數(shù)據(jù)]。
接著我們需要定義數(shù)據(jù)實體之間的處理邏輯猴贰,叫做etl數(shù)據(jù)處理对雪,接著有了數(shù)據(jù)實體的[關系元數(shù)據(jù)]。
對于這些數(shù)據(jù)處理的邏輯形式糟趾,需要調度器來物理化執(zhí)行慌植,所以有了[調度元數(shù)據(jù)]。
數(shù)據(jù)處理完成之后义郑,需要發(fā)布報表蝶柿,就有了[報表元數(shù)據(jù)]。
對于整體系統(tǒng)中非驮,會涉及不同的用戶實體交汤,就有了[用戶元數(shù)據(jù)]
當然,這些是企業(yè)數(shù)據(jù)平臺最常見的元數(shù)據(jù)類型劫笙,其它的大大小小的信息還是有很多芙扎。
所以,元數(shù)據(jù)系統(tǒng)的建立填大,是企業(yè)級的信息化建設過程戒洼。

4. 企業(yè)數(shù)字化建設始于元數(shù)據(jù)

在互聯(lián)網(wǎng)熱潮下,企業(yè)往數(shù)據(jù)化轉型已經(jīng)是大勢所趨允华,數(shù)據(jù)治理建設已經(jīng)被歸為企業(yè)的重要戰(zhàn)略圈浇。而信息化建設的重要前提就是元數(shù)據(jù)。
企業(yè)的系統(tǒng)建設過程中靴寂,元數(shù)據(jù)缺失或者沒有有效管理磷蜀,致使無法系統(tǒng)化信息化,只能供人工使用百炬,導致系統(tǒng)信息需要大量人工介入才能有效解密褐隆。
所以,企業(yè)大量充斥了world, excel, ppt的文檔剖踊。
各個系統(tǒng)之間存大多份拷貝庶弃,多個版本,這些東西只能給人看德澈。不僅人看著費勁虫埂,還難搜索,其它信息化系統(tǒng)根本無法使用圃验。
看起來信息越堆越多,其實就是在造垃圾缝呕,增加人工勞動力澳窑,有效信息使用成本越來越大斧散。
更別提進一步的數(shù)據(jù)管控,數(shù)據(jù)治理摊聋,信息化建設了鸡捐。

5. 元數(shù)據(jù)的使命

對于企業(yè)信息化建設來說,我們是不需要關心系統(tǒng)是如何實現(xiàn)的麻裁,我們往往想定義它的本質箍镜。
這個比較類似于現(xiàn)在流行的配置驅動系統(tǒng)建設,我定義好配置項煎源,然后系統(tǒng)就能按照預期運行色迂。
為了加深理解,我簡單舉幾個例子手销。
比如SQL就是一種重要的元數(shù)據(jù)歇僧,我們不需要關心底層怎么實現(xiàn),我們只需要告訴它我們想要的锋拖,它就會獲取我想要的結果诈悍。所以sql是一種有效的元數(shù)據(jù),有了sql兽埃,我就捕獲到了本質侥钳。

如果把所有系統(tǒng)的本質捕獲到了元數(shù)據(jù)中,那么通過元數(shù)據(jù)就能了解并且加快信息化建設柄错。

那么系統(tǒng)的本質到底是什么呢舷夺?我們開始下一節(jié)

一. 如何構建有效的元數(shù)據(jù)系統(tǒng)

1. 配制驅動開發(fā)

對于常用的系統(tǒng)的系統(tǒng)來說,一個好的系統(tǒng)通過配置文件就能全面了解鄙陡。
對于etl來說冕房,配置信息就是實體【表結構的定義】以及關系【sql及存儲過程】。
對于調度系統(tǒng)來說趁矾,配置信息就是實體【作業(yè)】以及關系【依賴關系】
對于報表系統(tǒng)來說耙册,配置信息就是實體【指標】以及關系【業(yè)務使用】
大部分成熟的系統(tǒng)所以已經(jīng)提供了非常完善的配置信息接口,所以我們做的就是把信息統(tǒng)一接入并使用起來毫捣。
還有一部分系統(tǒng)不成熟详拙,非常依賴于文檔與人工。所以要進行改造蔓同,變成配置驅動開發(fā)饶辙。通過配置捕獲系統(tǒng)的本質。如果不能進行改造斑粱,我們也得將信息進行編碼弃揽,使得靜態(tài)信息盡可能在元數(shù)據(jù)之上的數(shù)據(jù)管控上進行規(guī)范有效操作。

2. 如何制定配置?

系統(tǒng)間的配置一般采用json/avro或者使用sql接口來進行集成矿微。
對于人工的靜態(tài)配置信息來說痕慢,json處理不了多層級復雜關系,建議使用toml/yaml來處理涌矢,更加可讀掖举,也非常方便集成元數(shù)據(jù)管理。

這里娜庇,我們提到了兩種配置類型塔次。一種基本配置類型,一種高級配置類型名秀。
基本配置類型就是數(shù)據(jù)結構励负,我們僅僅定義數(shù)據(jù)結構,比如json/varo/toml/yaml泰偿。
還有一種高級配置類型就是DSL熄守,我們開發(fā)出一種更抽象更強大的擴展,比如SQL/lisp耗跛。
從系統(tǒng)的擴展性來說裕照,DSL表達力更強。所以可以看到调塌,gradle對比maven做擴展就非常有優(yōu)勢晋南。Emacs對比idea就非常有優(yōu)勢。
但是另一方面建設成本較高羔砾,但是價值非常大负间。所以對于數(shù)據(jù)系統(tǒng)來說,采用SQL高級配置能大大改善元數(shù)據(jù)的質量姜凄。這也是各個系統(tǒng)不遺余力推出SQL高級配置政溃,LISP高級配置的原因。

3. 元數(shù)據(jù)的開放性

前面講過态秧,即使企業(yè)存在大量元數(shù)據(jù)董虱,以不同文檔形式存在于企業(yè)當中。但都是需要人工介入申鱼,且無法對接系統(tǒng)進行使用的愤诱。
所以元數(shù)據(jù)的核心價值就在于元數(shù)據(jù)的開放性。
有了元數(shù)據(jù)系統(tǒng)捐友,我們可以輕松得搜索信息淫半,展現(xiàn)信息,發(fā)布信息匣砖。這樣a系統(tǒng)的元數(shù)據(jù)可以供b系統(tǒng)自動化使用科吭,其它系統(tǒng)又可以使用b系統(tǒng)的元數(shù)據(jù)昏滴,最終不斷遞歸下去,形成了一個企業(yè)的信息化中心对人。而這個中心有系統(tǒng)的本質信息影涉,所以整個企業(yè)的信息化數(shù)據(jù)是非常容易理解且使用的。

二. 認識元數(shù)據(jù)平臺

1. 元數(shù)據(jù)平臺簡介

現(xiàn)在才開始我們的正題规伐。
市面上常見的元數(shù)據(jù)管理系統(tǒng)有如下幾個:
a) linkedin datahub:
https://github.com/linkedin/datahub
b) apache atlas:
https://github.com/apache/atlas
c) lyft amundsen
https://github.com/lyft/amundsen

當然最成熟的還是linkedin datahub,也是今天的主角匣缘。

2. 元數(shù)據(jù)組件

前面講過元數(shù)據(jù)平臺的核心在于開放性猖闪。

而元數(shù)據(jù)的主體主要是【實體】以及【關系】。
在datahub里面通過圖數(shù)據(jù)庫neo4j來表達這種關系肌厨。
主要定義的實體有 【用戶培慌,數(shù)據(jù)集,報表柑爸,作業(yè)吵护,指標】,開源支持的實體有【用戶表鳍,數(shù)據(jù)集】馅而。

為什么需要使用圖數(shù)據(jù)庫?
對于同種實體之種的關系譬圣,sql數(shù)據(jù)庫非常難以表達瓮恭。比如用戶a跟用戶b的關系,就需要自join一次得到信息厘熟,而如果這種關系有多級屯蹦,比如一個數(shù)據(jù)級的上三層血緣關系,那么關系型就失效了绳姨。
對于不同實體間的多種關系登澜,使用sql數(shù)據(jù)庫也是非常麻煩的。即使能做到飘庄,也是非常難于理解脑蠕。而圖數(shù)據(jù)我們僅僅只需要關心實體與關系,通過引擎自動幫我們遍歷獲取結果竭宰。

如何實現(xiàn)數(shù)據(jù)的搜索空郊?
有了實體關系之后,我們需要進行數(shù)據(jù)的搜索切揭。在大部分人的認識里面狞甚,數(shù)據(jù)的搜索查詢采用的是索引。而索引是不支持多個范圍查詢的廓旬。對于搜索這種類型哼审,有專用的倒排表結果谐腰,也就是lucene庫。以此之上就有了最成熟的elasticsearch文檔數(shù)據(jù)庫涩盾。
何為倒排表十气?一般的數(shù)據(jù)庫是,通過文檔id去查數(shù)據(jù)信息春霍。而倒排表是反向的砸西,通過數(shù)據(jù)信息去搜索文檔。它的原理是對于需要搜索的字段建立倒排表址儒,通過各個字段的組合最終獲取文檔id芹枷。

如何實現(xiàn)數(shù)據(jù)的存儲?
對于最后的數(shù)據(jù)存儲莲趣,就比較簡單了鸳慈。
采用postgresql以及mysql這種廣泛的數(shù)據(jù)庫都是分分鐘支持的事。在datahub里面喧伞,對于每個實體信息走芋,它分為了各種aspect切片。比如數(shù)據(jù)集信息就包括了模式切片潘鲫,所有者切片等等翁逞。
后續(xù)將會詳細介紹。

3. 元數(shù)據(jù)架構

在datahub里面次舌,數(shù)據(jù)通過mce事件進入熄攘,進行處理后,生成mae事件彼念。所以它是一個實時系統(tǒng)挪圾。
當然大部分人對于元數(shù)據(jù)的時效性要求不高,覺得實時提升了系統(tǒng)的復雜度逐沙。并且實時需要上游系統(tǒng)去主動推才行哲思,實用價值不大。
其實這里是有個錯誤的理解吩案。
元數(shù)據(jù)平臺不是數(shù)據(jù)管控平臺棚赔,它不是一個應用平臺,而是一個基礎平臺徘郭,讓其它系統(tǒng)擴展并集成使用靠益。
所以,數(shù)據(jù)管控平臺可以很方便的通過訂閱mae消息残揉,進行實時變更胧后,并且完全綠色無污染。
我見過不少廠商做元數(shù)據(jù)系統(tǒng)抱环,想做得非常規(guī)范壳快,需要非常強的侵入性纸巷,甚至只能使用它們的平臺才能操作。
我是非常不認可的眶痰。
元數(shù)據(jù)系統(tǒng)應該是個信息化系統(tǒng)瘤旨,更大的作用大于信息化上面。不能說有了元數(shù)據(jù)系統(tǒng)竖伯,其它方式就不能用了存哲,這樣不是引入了一顆炸彈么?相當于學了一門武功七婴,費了早前的武功宏胯,實在是得不償失。
當然本姥,可以在元數(shù)據(jù)之上建立數(shù)據(jù)管控平臺,進行數(shù)據(jù)的管理杭棵,但這個也是個助手婚惫,而不是將軍。

三. 認識datahub

1. datahub 的技術棧

datahub 的技術棧非常特別魂爪,具有一定挑戰(zhàn)性先舷。
首先datahub包括了四塊,metadata, gms, etl, datahub滓侍。
medata定義模型蒋川,gms基于模型生成服務, etl進行模型數(shù)據(jù)加工,datahub提供基于gms的元數(shù)據(jù)應用展現(xiàn)撩笆。

metadata這里面使用了兩種數(shù)據(jù)格式捺球。
一種是外部接入格式avro,非常實用夕冲。
另一種是內部改進的pdsc格式氮兵,那就很頭疼了,外面用得很少歹鱼。

gms使用了內部的rest.li泣栈,又是內部搞的一套restful框架,也還比較好用弥姻,但是應用面比較窄南片。

etl則是采用了linkedin家最擅長的kafka schema registry及kafka streams,好評庭敦。

datahub包括了應用后臺服務以及前臺展示疼进。
后臺服務采用的是play framework,這個就是比較衰的了螺捐。以前l(fā)inkedin 大力推scala颠悬,搞了play framework矮燎,結果發(fā)展不動,全部切成了java版的赔癌。所以java版的web框架也用了play framework诞外。
這東西也不錯,就是也不主流了灾票。

對于前臺服務采用的是ember.js + typescript峡谊。typescript如今如日中天,非常好用刊苍。
ember.js 就比較衰了既们,被angular,react,vue逼上了梁上。
并且這貨學習成本也不低正什。不過linkedin 的ui確實有考究啥纸。

對于整個系統(tǒng)構建采用了gradle,個人還是比較喜歡gradle的婴氮。
前面已經(jīng)提到過高級配置dsl擴展性是遠遠超過配置文件xml的斯棒。
所以我更愿意深入學習gradle而不是maven。另一方面高級配置對于集成性會偏弱主经,需要預留接口給第三方使用荣暮。簡單配置人人都可以解析。gradle 采用groovy實現(xiàn)罩驻,groovy也衰落了穗酥,現(xiàn)在gradle切換到kotlin了。照目前趨勢惠遏,gradle超過maven是必然的趨勢砾跃。

所以,對于整個技術棧來說:
gradle + es + neo4j + pg + kafka + typescript十分到味节吮。
play framework + rest.li勉強接受蜓席。
ember.js + pdsc 則是非常煩人的。

2. datahub/metadata 模塊介紹

a) li-utils + metadata-models 定義數(shù)據(jù)模型

li-utils提供基礎的數(shù)據(jù)結構, metadata-models提供元數(shù)據(jù)模型
首先看實體定義

larrys-MacBook-Pro:metadata-models larluo$ ls -l ./src/main/pegasus/com/linkedin/metadata/entity
total 20
-rw-r--r-- 1 larluo staff 333 Feb 21 21:59 BaseEntity.pdsc
-rw-r--r-- 1 larluo staff 483 Feb 21 21:59 CorpGroupEntity.pdsc
-rw-r--r-- 1 larluo staff 455 Feb 21 21:59 CorpUserEntity.pdsc
-rw-r--r-- 1 larluo staff 874 Feb 21 21:59 DatasetEntity.pdsc
-rw-r--r-- 1 larluo staff 200 Feb 21 21:59 Entity.pdsc

接著我們看實體關系:

larrys-MacBook-Pro:metadata-models larluo$ ls -l ./src/main/pegasus/com/linkedin/metadata/relationship
total 28
-rw-r--r-- 1 larluo staff 455 Feb 21 21:59 BaseRelationship.pdsc
-rw-r--r-- 1 larluo staff 379 Feb 21 21:59 Contains.pdsc
-rw-r--r-- 1 larluo staff 524 Feb 21 21:59 DownstreamOf.pdsc
-rw-r--r-- 1 larluo staff 240 Feb 21 21:59 IsPartOf.pdsc
-rw-r--r-- 1 larluo staff 488 Feb 21 21:59 OwnedBy.pdsc
-rw-r--r-- 1 larluo staff 222 Feb 21 21:59 Relationship.pdsc
-rw-r--r-- 1 larluo staff 367 Feb 21 21:59 ReportsTo.pdsc

接著看實體數(shù)據(jù)aspect切片:

larrys-MacBook-Pro:metadata-models larluo$ ls -l ./src/main/pegasus/com/linkedin/dataset
total 48
-rw-r--r-- 1 larluo staff  795 Feb 21 21:59 DatasetDeprecation.pdsc
-rw-r--r-- 1 larluo staff  872 Feb 21 21:59 DatasetKey.pdsc
-rw-r--r-- 1 larluo staff  555 Feb 21 21:59 DatasetLineageType.pdsc
-rw-r--r-- 1 larluo staff 1062 Feb 21 21:59 DatasetProperties.pdsc
-rw-r--r-- 1 larluo staff 1617 Feb 21 21:59 DeploymentInfo.pdsc
-rw-r--r-- 1 larluo staff  622 Feb 21 21:59 Downstream.pdsc
-rw-r--r-- 1 larluo staff  338 Feb 21 21:59 DownstreamLineage.pdsc
-rw-r--r-- 1 larluo staff  389 Feb 21 21:59 DownstreamLineageDelta.pdsc
-rw-r--r-- 1 larluo staff  206 Feb 21 21:59 SchemaFieldPath.pdsc
-rw-r--r-- 1 larluo staff  616 Feb 21 21:59 Upstream.pdsc
-rw-r--r-- 1 larluo staff  328 Feb 21 21:59 UpstreamLineage.pdsc
-rw-r--r-- 1 larluo staff  379 Feb 21 21:59 UpstreamLineageDelta.pdsc

還有外部交互事件:

larrys-MacBook-Pro:metadata-models larluo$ ls -l ./src/main/pegasus/com/linkedin/mxe
total 20
-rw-r--r-- 1 larluo staff  681 Feb 21 21:59 FailedMetadataChangeEvent.pdsc
-rw-r--r-- 1 larluo staff  927 Feb 21 21:59 MetadataAuditEvent.pdsc
-rw-r--r-- 1 larluo staff  946 Feb 21 21:59 MetadataChangeEvent.pdsc
-rw-r--r-- 1 larluo staff 1178 Feb 21 21:59 MetadataGraphEvent.pdsc
-rw-r--r-- 1 larluo staff  672 Feb 21 21:59 MetadataSearchEvent.pdsc

b) metadata-events 在metadata-models上面建立event相關的信息

c)

3. datahub/gms模塊介紹

4. datahub/etl模塊介紹

5. datahub/datahub模塊介紹

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末课锌,一起剝皮案震驚了整個濱河市厨内,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渺贤,老刑警劉巖雏胃,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異志鞍,居然都是意外死亡瞭亮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門固棚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來统翩,“玉大人仙蚜,你說我怎么就攤上這事〕Ш梗” “怎么了委粉?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長娶桦。 經(jīng)常有香客問我贾节,道長,這世上最難降的妖魔是什么衷畦? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任栗涂,我火速辦了婚禮,結果婚禮上祈争,老公的妹妹穿的比我還像新娘斤程。我一直安慰自己,他們只是感情好菩混,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布暖释。 她就那樣靜靜地躺著,像睡著了一般墨吓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纹磺,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天帖烘,我揣著相機與錄音,去河邊找鬼橄杨。 笑死秘症,一個胖子當著我的面吹牛,可吹牛的內容都是我干的式矫。 我是一名探鬼主播乡摹,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼采转!你這毒婦竟也來了聪廉?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤故慈,失蹤者是張志新(化名)和其女友劉穎板熊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體察绷,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡干签,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拆撼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片容劳。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡喘沿,死狀恐怖,靈堂內的尸體忽然破棺而出竭贩,到底是詐尸還是另有隱情蚜印,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布娶视,位于F島的核電站晒哄,受9級特大地震影響,放射性物質發(fā)生泄漏肪获。R本人自食惡果不足惜寝凌,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孝赫。 院中可真熱鬧较木,春花似錦、人聲如沸青柄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽致开。三九已至峰锁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間双戳,已是汗流浹背虹蒋。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留飒货,地道東北人魄衅。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像塘辅,于是被迫代替她去往敵國和親晃虫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內容