Atlas的術語表(Glossary)提供了一些適當的“單詞”,這些“單詞”能彼此進行關連和分類,以便業務用戶在使用的時候,即使在不同的上下文中也能很好的理解它們。此外,這些術語也是可以映射到數據資產中的,比如:數據庫,表,列等。
術語表抽象出了和數據相關的專業術語,使得用戶能以他們更熟悉的方式去查找和使用數據。
1. 功能
- 能夠使用自然語言(技術術語和/或業務術語)定義豐富的術語詞彙表。
- 能夠將術語在語義上相互關聯。
- 能夠將資產映射到術語表中。
- 能夠按類別劃分這些術語。這爲術語增加了更多的上下文。
- 允許按層次結構排列類別,能展示更廣泛和更精細的範圍。
- 從元數據中獨立管理術語表。
2. 術語(Term)
對於企業來說術語作用的非常大的。對於有用且有意義的術語,需要圍繞其用途和上下文進行分組。 Apache Atlas中的術語必須具有唯一的qualifiedName,可以有相同名稱的術語,但它們不能屬於同一個術語表。具有相同名稱的術語只能存在於不同的術語表中。
術語名稱可以包含空格,下劃線和短劃線(作爲引用單詞的自然方式)但不包含“。”或“@”,因爲qualifiedName的格式爲:<術語>@<術語限定名>
。限定名稱可以更輕鬆地使用特定術語。
術語只能屬於單個術語表,並且它們的生命週期也是相同的,如果刪除術語表,則術語也會被刪除。術語可以屬於零個或多個類別,這允許將它們限定爲更小或更大的上下文。
可以在Apache Atlas中爲一個或多個實體分配/鏈接一個術語。可以使用分類(classifications
,類似標籤的作用)對術語進行分類,並將相同的分類應用於分配術語的實體。
3. 類別(Category)
類別是組織術語的一種方式,以便可以豐富術語的上下文。
類別可能包含也可能不包含層次結構,即子類別層次結構。類別的qualifiedName是使用它在術語表中的分層位置導出的,例如:<類別名稱>.<父類別限定名>
。當發生任何層級更改時,此限定名稱都會更新,例如:添加父類別,刪除父類別或更改父類別。
4. UI交互
Apache Atlas UI提供了友好的用戶界面,可以使用術語表相關的功能,其中包括:
- 創建術語表,術語和類別
- 在術語之間創建各種關係: synonymns(同義詞),antonymns(反義詞),seeAlso(參考)
- 調整類別的層次結構中
- 爲實體分配實體(entities)
- 使用關聯術語搜索實體
與術語表相關的UI都可以在GLOSSARY
的Tab下找到。
4.1 Glossary Tab
Apache Atlas UI提供了兩種使用術語表的方法: 術語(Terms)視圖
和類別(Category)視圖
。
(1) 術語視圖(Terms)
術語視圖允許用戶執行以下操作:
- 創建,更新和刪除術語
- 添加,刪除和更新與術語關聯的分類
- 添加,刪除和更新術語的分類
- 在術語之間創建各種關係
- 查看與術語關聯的實體
(2) 類別視圖(Category)
類別視圖允許用戶執行以下操作:
- 創建,更新和刪除類別和子類別
- 將術語與類別相關聯
用戶可以使用術語表選項卡中提供的切換在術語視圖和類別視圖之間切換。
4.1 術語菜單(Terms)
- 創建一個新術語 單擊術語表名稱旁邊的省略號(...)會顯示一個彈出式菜單,允許用戶在術語表中創建術語或刪除術語表 - 如下所示。
- 刪除一個術語 單擊術語名稱旁邊的省略號(...)會顯示一個彈出式菜單,允許用戶刪除該術語 - 如下所示。
4.1.1 術語詳情
選擇術語表UI中的術語,可以查看對應術語的各種詳細信息。詳細信息頁面下的每個選項卡提供該術語的不同詳細信息。
Entities(實體)
選項卡:顯示分配給所選術語的實體Classifications(分類)
選項卡:顯示與所選術語關聯的分類Related terms (相關術語)
選項卡:顯示與所選術語相關的術語
4.1.2 給術語添加分類(classification)
單擊分類標籤旁邊的+
可爲術語添加分類。
4.1.3 與其他術語建立術語關聯
查看術語詳細信息時,單擊Related Terms(相關術語)
選項卡。單擊+
將術語與當前術語鏈接。
4.1.4 對術語進行分類
單擊類別標籤旁邊的+
可對術語進行分類。將提供模態對話框以選擇類別。
4.2 分類視圖(Category)
當切換開關處於Category
時,左側面板將列出所有術語表以及類別層次結構。
4.2.1 類別菜單(Category)
單擊Category
旁邊的省略號...
將顯示類別上下文菜單。
- 創建新類別
- 創建子類別或刪除類別
4.2.2 類別詳情
選擇Category
後,詳細信息將顯示在右側窗口中。
4.2.3 術語分類
單擊詳情頁中Terms
標籤旁邊的+
鏈接所選類別下的術語。
5. 術語分配流程
可以在搜索結果頁和Glossary-Terms
實體詳情頁中給entity(實體)
分配術語。
5.1 分配術語
在搜索結果頁面,點擊terms
列下的+
點擊terms
標籤旁邊的+
這兩個操作都將顯示下面的結果,按照屏幕上的提示完成術語分配。
5.2 分類傳播(Propagated classification
) 如果一個術語具有分類,則該術語下的實體繼承相同的分類。
6. 使用術語搜索
Apache Atlas基本搜索API和UI已更新,以支持術語作爲搜索條件。允許用戶查找與給定術語相關聯的實體。
7. REST API
Atlas支持以下操作,可在這裏找到REST接口的詳細信息。
7.1 JSON結構
- Glossary
{ "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" }] }
- Term
{ "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" }] }
- Category
{ "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" }] }
7.2 CURD
7.2.1 創建操作(CREATE)
- 創建術語表
- 創建一個術語
- 創建分類術語
- 用關係創建術語
- 創建一個類別
- 創建具有層次結構的類別
- 創建類別並對術語進行分類
- 爲實體分配術語
注意:
- 在創建操作期間,術語表,術語和類別將獲得自動分配的GUID和qualifiedName。
- 要創建包含子項的類別,必須事先創建子項。
- 要創建屬於某個類別的術語,必須事先創建該類別。
- 要創建關係術語,必須事先創建相關術語。
7.2.2 讀操作(READ)
- 通過GUID獲取術語表 - 提供屬於術語表的所有術語和類別(標題)。
- 獲取所有術語表 - 爲所有術語表提供他們的術語和類別(標題)。
- 通過GUID獲取術語 - 提供有關術語,其所屬類別(如果有)以及任何相關術語的詳細信息。
- 通過GUID獲取類別 - 提供有關類別,類別層次結構(如果有)和屬於該類別的術語的詳細信息。
- 獲取給定術語表的所有術語 - 提供屬於給定術語表的所有術語(具有#3中提到的詳細信息)。
- 獲取給定術語表的所有類別 - 提供屬於給定術語表的所有類別(具有#4中提到的詳細信息)。
- 獲取與給定術語相關的所有術語 - 提供與給定術語相關/鏈接的所有術語。
- 獲取與給定類別(父母和子女)相關的所有類別
- 獲取給定類別的所有條款
7.2.3 更新操作(UPDATE)
- 局部更新術語表
- 局部更新術語
- 局部更新類別
- 更新給定的詞彙表
- 更新給定的術語
- 更新給定的類別
注意:
- 局部更新僅處理詞彙表模型文件中定義的原始屬性。
- 分配後,無法更改GUID和qualifiedName。唯一的方法是刪除並重新創建所需的對象。
- 在任何更新中都無法刪除錨點
- 更新API期望在GET調用之後就地修改JSON。任何缺失的屬性/關係都將被刪除。
- 對類別層次結構的任何更新都會導致對其下的層次結構進行級聯更新,例如錨更改會影響所有子項,父項更改會影響self和children的qualifiedName。
7.2.4 刪除操作(DELETE)
- 刪除術語表 - 刪除錨定到給定詞彙表的所有類別和術語。如果已爲實體分配任何術語,則會阻止此刪除。
- 刪除術語 - 僅當術語未與任何實體關聯/分配時才刪除該術語。
- 刪除類別 - 僅刪除給定類別,所有子項都成爲頂級類別。
- 從實體中刪除術語分配