背景:筆者和團隊的小夥伴近期在進行數據治理/元數據管理方向的探索,在接下來的系列文章中,會將經驗與收穫和讀者們進行分享。html
談到數據治理,天然離不開元數據。元數據(Metadata),用一句話定義就是:描述數據的數據。元數據打通了數據源、數據倉庫、數據應用,記錄了數據從產生到消費的全過程。所以,數據治理的核心就是元數據管理
。數據庫
數據的真正價值在於數據驅動決策,經過數據指導運營。經過數據驅動的方法判斷趨勢,幫住咱們發現問題,繼而推進創新或產生新的解決方案。隨着企業數據爆發式增加,數據體量愈來愈難以估量,咱們很難說清楚咱們到底擁有哪些數據,這些數據從哪裏來,到哪裏去,發生了什麼變化,應該如何使用它們。所以元數據管理(數據治理)成爲企業級數據湖不可或缺的重要組成部分。apache
惋惜很長一段時間內,市面都沒有成熟的數據治理解決方案。直到2015年,Hortonworks終於坐不住了,約了一衆小夥伴公司倡議:我們開始整個數據治理方案吧。而後,包含數據分類、集中策略引擎、數據血緣、安全和生命週期管理功能的Atlas應運而生。(PS:另外一個應用的較多的元數據開源項目是Linkedin 在2016年新開源的項目:WhereHows
)Atlas目前最新的版本爲2018年9月18日發佈的1.0.0
版本。api
Atlas 是一個可伸縮和可擴展的核心基礎治理服務集合 ,使企業可以有效地和高效地知足 Hadoop 中的合規性要求,並容許與整個企業數據生態系統的集成。安全
Apache Atlas爲組織提供開放式元數據管理和治理功能,用以構建其數據資產目錄,對這些資產進行分類和管理,併爲數據科學家,數據分析師和數據治理團隊提供圍繞這些數據資產的協做功能。bash
關於Atlas的背景講完了,接下來咱們依次來說Atlas中的幾個概念,首先是今天的主角:Glossary
。oop
Atlas的術語表(Glossary)提供了一些適當的「單詞」,這些「單詞」能彼此進行關連和分類,以便業務用戶在使用的時候,即便在不一樣的上下文中也能很好的理解它們。此外,這些術語也是能夠映射到數據資產中的,好比:數據庫,表,列等。ui
術語表抽象出了和數據相關的專業術語,使得用戶能以他們更熟悉的方式去查找和使用數據。spa
對於企業來講術語做用的很是大的。對於有用且有意義的術語,須要圍繞其用途和上下文進行分組。 Apache Atlas中的術語必須具備惟一的qualifiedName,能夠有相同名稱的術語,但它們不能屬於同一個術語表。具備相同名稱的術語只能存在於不一樣的術語表中。3d
術語名稱能夠包含空格,下劃線和短劃線(做爲引用單詞的天然方式)但不包含「。」或「@」,由於qualifiedName的格式爲:<術語>@<術語限定名>
。限定名稱能夠更輕鬆地使用特定術語。
術語只能屬於單個術語表,而且它們的生命週期也是相同的,若是刪除術語表,則術語也會被刪除。術語能夠屬於零個或多個類別,這容許將它們限定爲更小或更大的上下文。
能夠在Apache Atlas中爲一個或多個實體分配/連接一個術語。可使用分類(classifications
,相似標籤的做用)對術語進行分類,並將相同的分類應用於分配術語的實體。
類別是組織術語的一種方式,以即可以豐富術語的上下文。
類別可能包含也可能不包含層次結構,即子類別層次結構。類別的qualifiedName是使用它在術語表中的分層位置導出的,例如:<類別名稱>.<父類別限定名>
。當發生任何層級更改時,此限定名稱都會更新,例如:添加父類別,刪除父類別或更改父類別。
Apache Atlas UI提供了友好的用戶界面,可使用術語表相關的功能,其中包括:
與術語表相關的UI均可以在GLOSSARY
的Tab下找到。
Apache Atlas UI提供了兩種使用術語表的方法: 術語(Terms)視圖
和類別(Category)視圖
。
術語視圖容許用戶執行如下操做:
類別視圖容許用戶執行如下操做:
用戶可使用術語表選項卡中提供的切換在術語視圖和類別視圖之間切換。
建立一個新術語
單擊術語表名稱旁邊的省略號(...)會顯示一個彈出式菜單,容許用戶在術語表中建立術語或刪除術語表 - 以下所示。
刪除一個術語
單擊術語名稱旁邊的省略號(...)會顯示一個彈出式菜單,容許用戶刪除該術語 - 以下所示。
選擇術語表UI中的術語,能夠查看對應術語的各類詳細信息。詳細信息頁面下的每一個選項卡提供該術語的不一樣詳細信息。
Entities(實體)
選項卡:顯示分配給所選術語的實體Classifications(分類)
選項卡:顯示與所選術語關聯的分類Related terms (相關術語)
選項卡:顯示與所選術語相關的術語
單擊分類標籤旁邊的+
可爲術語添加分類。
查看術語詳細信息時,單擊Related Terms(相關術語)
選項卡。單擊+
將術語與當前術語連接。
單擊類別標籤旁邊的+
可對術語進行分類。將提供模態對話框以選擇類別。
當切換開關處於Category
時,左側面板將列出全部術語表以及類別層次結構。
單擊Category
旁邊的省略號...
將顯示類別上下文菜單。
建立新類別
建立子類別或刪除類別
選擇Category
後,詳細信息將顯示在右側窗口中。
單擊詳情頁中Terms
標籤旁邊的+
連接所選類別下的術語。
能夠在搜索結果頁和Glossary-Terms
實體詳情頁中給entity(實體)
分配術語。
在搜索結果頁面,點擊terms
列下的+
點擊terms
標籤旁邊的+
這兩個操做都將顯示下面的結果,按照屏幕上的提示完成術語分配。
若是一個術語具備分類,則該術語下的實體繼承相同的分類。
Apache Atlas基本搜索API和UI已更新,以支持術語做爲搜索條件。容許用戶查找與給定術語相關聯的實體。
Atlas支持如下操做,可在這裏找到REST接口的詳細信息。
{
"guid": "2f341934-f18c-48b3-aa12-eaa0a2bfce85",
"qualifiedName": "SampleBank",
"displayName": "Banking",
"shortDescription": "Glossary of bank",
"longDescription": "Glossary of bank - long description",
"language": "English",
"usage": "N/A",
"terms": [
{
"termGuid": "502d34f1-b85f-4ad9-9d9f-fe7020ff0acb",
"relationGuid": "6bb803e4-3af6-4924-aad6-6ad9f95ecd14",
"displayText": "A savings account"
}, {
"termGuid": "e441a540-ee55-4fc8-8eaf-4b9943d8929c",
"relationGuid": "dbc46795-76ff-4f68-9043-be0eff0bc0f3",
"displayText": "15-30 yr mortgage"
}, {
"termGuid": "998e3692-51a8-47fe-b3a0-0d9f794437eb",
"relationGuid": "0dcd31b9-a81c-4185-ad4b-9209a97c305b",
"displayText": "A checking account"
}, {
"termGuid": "c4e2b956-2589-4648-8596-240d3bea5e44",
"relationGuid": "e71c4a5d-694b-47a5-a41e-126ade857279",
"displayText": "ARM loans"
}],
"categories": [{
"categoryGuid": "dd94859e-7453-4bc9-b634-a17fc14590f8",
"parentCategoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3",
"relationGuid": "a0b7da02-1ccd-4415-bc54-3d0cdb8857e7",
"displayText": "Accounts"
}, {
"categoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3",
"relationGuid": "0e84a358-a4aa-4bd3-b806-497a6962ae1d",
"displayText": "Customer"
}, {
"categoryGuid": "7f041401-de8c-443f-a3b7-7bf5a910ff6f",
"parentCategoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3",
"relationGuid": "7757b031-4e25-43a8-bf77-946f7f06c67a",
"displayText": "Loans"
}]
}
複製代碼
{
"guid": "e441a540-ee55-4fc8-8eaf-4b9943d8929c",
"qualifiedName": "fixed_mtg@SampleBank",
"displayName": "15-30 yr mortgage",
"shortDescription": "Short description",
"longDescription": "Long description",
"examples": ["N/A"],
"abbreviation": "FMTG",
"anchor": {
"glossaryGuid": "2f341934-f18c-48b3-aa12-eaa0a2bfce85",
"relationGuid": "dbc46795-76ff-4f68-9043-be0eff0bc0f3"
},
"categories": [{
"categoryGuid": "7f041401-de8c-443f-a3b7-7bf5a910ff6f",
"relationGuid": "b4cddd33-7b0c-41e2-9324-afe549ec6ada",
"displayText": "Loans"
}],
"seeAlso" : [],
"synonyms" : [],
"antonyms" : [],
"replacedBy" : [],
"replacementTerms" : [],
"translationTerms" : [],
"translatedTerms" : [],
"isA" : [],
"classifies" : [],
"preferredTerms" : [],
"preferredToTerms": [ {
"termGuid" : "c4e2b956-2589-4648-8596-240d3bea5e44",
"displayText": "ARM Loans"
}]
}
複製代碼
{
"guid": "7f041401-de8c-443f-a3b7-7bf5a910ff6f",
"qualifiedName": "Loans.Customer@HortoniaBank",
"displayName": "Loans",
"shortDescription": "Loan categorization",
"anchor": {
"glossaryGuid": "2f341934-f18c-48b3-aa12-eaa0a2bfce85",
"relationGuid": "7757b031-4e25-43a8-bf77-946f7f06c67a"
},
"parentCategory": {
"categoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3",
"relationGuid": "8a0a8e11-0bb5-483b-b7d6-cfe0b1d55ef6"
},
"childrenCategories" : [],
"terms": [{
"termGuid": "e441a540-ee55-4fc8-8eaf-4b9943d8929c",
"relationGuid": "b4cddd33-7b0c-41e2-9324-afe549ec6ada",
"displayText": "15-30 yr mortgage"
}, {
"termGuid": "c4e2b956-2589-4648-8596-240d3bea5e44",
"relationGuid": "8db1e784-4f04-4eda-9a58-6c9535a95451",
"displayText": "ARM loans"
}]
}
複製代碼
注意:
注意: