使用Atlas进行元数据管理之Glossary(术语)
背景:笔者和团队的小伙伴近期在进行数据治理/元数据管理方向的探索, 在接下来的系列文章中, 会陆续与读者们进行分享在此过程中踩过的坑和收获。
元数据管理系列文章:
[0] - 使用Atlas进行元数据管理之Atlas简介
[1] - 使用Atlas进行元数据管理之Glossary(术语)
[2] - 使用Atlas进行元数据管理之Type(类型)
1. Glossary(术语表) 介绍
Atlas的术语表(Glossary)提供了一些适当的“单词”,这些“单词”能彼此进行关连和分类,以便业务用户在使用的时候,即使在不同的上下文中也能很好的理解它们。此外,这些术语也是可以映射到数据资产中的,比如:数据库,表,列等。
术语表抽象出了和数据相关的专业术语,使得用户能以他们更熟悉的方式去查找和使用数据。
1.1 术语表功能
- 能够使用自然语言(技术术语和/或业务术语)定义丰富的术语词汇表。
- 能够将术语在语义上相互关联。
- 能够将资产映射到术语表中。
- 能够按类别划分这些术语。这为术语增加了更多的上下文。
- 允许按层次结构排列类别,能展示更广泛和更精细的范围。
- 从元数据中独立管理术语表。
1.2 术语(Term)
对于企业来说术语作用的非常大的。对于有用且有意义的术语,需要围绕其用途和上下文进行分组。 Apache Atlas中的术语必须具有唯一的qualifiedName,可以有相同名称的术语,但它们不能属于同一个术语表。具有相同名称的术语只能存在于不同的术语表中。
术语名称可以包含空格,下划线和短划线(作为引用单词的自然方式)但不包含“。”或“@”,因为qualifiedName的格式为:<术语>@<术语限定名>
。限定名称可以更轻松地使用特定术语。
术语只能属于单个术语表,并且它们的生命周期也是相同的,如果删除术语表,则术语也会被删除。术语可以属于零个或多个类别,这允许将它们限定为更小或更大的上下文。
可以在Apache Atlas中为一个或多个实体分配/链接一个术语。可以使用分类(classifications
,类似标签的作用)对术语进行分类,并将相同的分类应用于分配术语的实体。
1.3 类别(Category)
类别是组织术语的一种方式,以便可以丰富术语的上下文。
类别可能包含也可能不包含层次结构,即子类别层次结构。类别的qualifiedName是使用它在术语表中的分层位置导出的,例如:<类别名称>.<父类别限定名>
。当发生任何层级更改时,此限定名称都会更新,例如:添加父类别,删除父类别或更改父类别。
2. Atlas Web UI
Apache Atlas UI提供了友好的用户界面,可以使用术语表相关的功能,其中包括:
- 创建术语表,术语和类别
- 在术语之间创建各种关系: synonymns(同义词),antonymns(反义词),seeAlso(参考)
- 调整类别的层次结构中
- 为实体分配实体(entities)
- 使用关联术语搜索实体
与术语表相关的UI都可以在GLOSSARY
的Tab下找到。
2.1 Glossary Tab
Apache Atlas UI提供了两种使用术语表的方法: 术语(Terms)视图
和类别(Category)视图
。
(1) 术语视图(Terms)
术语视图允许用户执行以下操作:
- 创建,更新和删除术语
- 添加,删除和更新与术语关联的分类
- 添加,删除和更新术语的分类
- 在术语之间创建各种关系
- 查看与术语关联的实体
(2) 类别视图(Category)
类别视图允许用户执行以下操作:
- 创建,更新和删除类别和子类别
- 将术语与类别相关联
用户可以使用术语表选项卡中提供的切换在术语视图和类别视图之间切换。
2.2 术语视图(Terms)
创建一个新术语
单击术语表名称旁边的省略号(...)会显示一个弹出式菜单,允许用户在术语表中创建术语或删除术语表 - 如下所示。
删除一个术语
单击术语名称旁边的省略号(...)会显示一个弹出式菜单,允许用户删除该术语 - 如下所示。
2.2.1 术语详情
选择术语表UI中的术语,可以查看对应术语的各种详细信息。详细信息页面下的每个选项卡提供该术语的不同详细信息。
Entities(实体)
选项卡:显示分配给所选术语的实体Classifications(分类)
选项卡:显示与所选术语关联的分类Related terms (相关术语)
选项卡:显示与所选术语相关的术语
2.2.2 给术语添加分类(classification)
单击分类标签旁边的+
可为术语添加分类。
2.2.3 与其他术语建立术语关联
查看术语详细信息时,单击Related Terms(相关术语)
选项卡。单击+
将术语与当前术语链接。
2.2.4 对术语进行分类
单击类别标签旁边的+
可对术语进行分类。将提供模态对话框以选择类别。
2.3 类别视图(Category)
当切换开关处于Category
时,左侧面板将列出所有术语表以及类别层次结构。
2.3.1 类别菜单(Category)
单击Category
旁边的省略号...
将显示类别上下文菜单。
创建新类别
创建子类别或删除类别
2.3.2 类别详情
选择Category
后,详细信息将显示在右侧窗口中。
2.3.3 术语分类
单击详情页中Terms
标签旁边的+
链接所选类别下的术语。
3. 术语分配流程
可以在搜索结果页和Glossary-Terms
实体详情页中给entity(实体)
分配术语。
3.1 分配术语
在搜索结果页面,点击terms
列下的+
点击terms
标签旁边的+
这两个操作都将显示下面的结果,按照屏幕上的提示完成术语分配。
3.2 分类传播(Propagated classification)
如果一个术语具有分类,则该术语下的实体继承相同的分类。
3.3. 使用术语搜索
Apache Atlas基本搜索API和UI已更新,以支持术语作为搜索条件。允许用户查找与给定术语相关联的实体。
4. REST API
Atlas支持以下操作,可在这里找到REST接口的详细信息。
5.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"}]
}
5.2 CURD
5.2.1 创建操作(CREATE)
- 创建术语表
- 创建一个术语
- 创建分类术语
- 用关系创建术语
- 创建一个类别
- 创建具有层次结构的类别
- 创建类别并对术语进行分类
- 为实体分配术语
注意:
- 在创建操作期间,术语表,术语和类别将获得自动分配的GUID和qualifiedName。
- 要创建包含子项的类别,必须事先创建子项。
- 要创建属于某个类别的术语,必须事先创建该类别。
- 要创建关系术语,必须事先创建相关术语。
5.2.2 读操作(READ)
- 通过GUID获取术语表 - 提供属于术语表的所有术语和类别(标题)。
- 获取所有术语表 - 为所有术语表提供他们的术语和类别(标题)。
- 通过GUID获取术语 - 提供有关术语,其所属类别(如果有)以及任何相关术语的详细信息。
- 通过GUID获取类别 - 提供有关类别,类别层次结构(如果有)和属于该类别的术语的详细信息。
- 获取给定术语表的所有术语 - 提供属于给定术语表的所有术语(具有#3中提到的详细信息)。
- 获取给定术语表的所有类别 - 提供属于给定术语表的所有类别(具有#4中提到的详细信息)。
- 获取与给定术语相关的所有术语 - 提供与给定术语相关/链接的所有术语。
- 获取与给定类别(父母和子女)相关的所有类别
- 获取给定类别的所有条款
5.2.3 更新操作(UPDATE)
- 局部更新术语表
- 局部更新术语
- 局部更新类别
- 更新给定的词汇表
- 更新给定的术语
- 更新给定的类别
注意:
- 局部更新仅处理词汇表模型文件中定义的原始属性。
- 分配后,无法更改GUID和qualifiedName。唯一的方法是删除并重新创建所需的对象。
- 在任何更新中都无法删除锚点
- 更新API期望在GET调用之后就地修改JSON。任何缺失的属性/关系都将被删除。
- 对类别层次结构的任何更新都会导致对其下的层次结构进行级联更新,例如锚更改会影响所有子项,父项更改会影响self和children的qualifiedName。
5.2.4 删除操作(DELETE)
- 删除术语表 - 删除锚定到给定词汇表的所有类别和术语。如果已为实体分配任何术语,则会阻止此删除。
- 删除术语 - 仅当术语未与任何实体关联/分配时才删除该术语。
- 删除类别 - 仅删除给定类别,所有子项都成为顶级类别。
- 从实体中删除术语分配
使用Atlas进行元数据管理之Glossary(术语)相关推荐
- 数据治理之元数据管理的利器——Atlas入门宝典(万字长文)
随着数字化转型的工作推进,数据治理的工作已经被越来越多的公司提上了日程.作为Hadoop生态最紧密的元数据管理与发现工具,Atlas在其中扮演着重要的位置.但是其官方文档不是很丰富,也不够详细.所以整 ...
- 数据治理之元数据管理的利器——Atlas入门宝典
随着数字化转型的工作推进,数据治理的工作已经被越来越多的公司提上了日程.作为Hadoop生态最紧密的元数据管理与发现工具,Atlas在其中扮演着重要的位置.但是其官方文档不是很丰富,也不够详细.所以整 ...
- 浅谈元数据管理之Atlas和Metacat
关键字:元数据管理.血统采集.血统生命周期.图数据库.数据地图 元数据管理概述 元数据是描述数据的数据(data about data),是指从信息资源中抽取出来用于描述其特征与内容的数据,从一般意义 ...
- 元数据管理Atlas
1.Atlas概述 Apache Atlas为组织提供开放式元数据管理和治理功能,用以构建其数据资产目录,对这些资产进行分类和管理,服务于数据分析师和数据治理团队,提供围绕这些数据资产的协作功能. ...
- Hadoop生态系统的元数据管理和数据治理平台--Atlas 学习
最近在规划数据治理的功能,所以研究了一下Apache Altas Atlas 介绍 Atlas 是apache下的大数据的元数据管理和数据治理平台,是Hadoop社区为解决Hadoop生态系统的元数据 ...
- 元数据管理工具Atlas学习笔记之集成
文章目录 背景 环境 Atlas安装 solr Atlas Atlas启动 启动Hadoop.ZooKeeper.HBase.Kafka.Hive和MySQL Hadoop 启动ZooKeeper 启 ...
- qstring 属于元数据类型吗_数据仓库的“元数据管理”
作者 | 李谦恒 数据工程师.逻辑重于代码,高效胜过勤奋.崇尚life work balance. 引言 元数据管理是企业数据治理的基础,是数据仓库的提升:作为一名数据人,首要任务就是理解元数据管理. ...
- 12款开源数据资产(元数据)管理平台选型分析(一)
两年前,在文章最全大数据开源组件思维导图中,整理了大数据生态的开源技术组件思维导图,至今有4K的下载量. 尽管数据行业的新词热度,由大数据平台->数据治理->数据中台->数字化转型( ...
- 元数据管理、治理、系统、建设方案、范例等
[数据治理工具]–元数据系统 1.元数据系统 1.1 概述 如果想建设好元数据系统,需要理解元数据系统的相关概念,如数据.数据模型.元数据.元模型.ETL.数据血缘等等. 首先,要清楚数据的定义.数据 ...
最新文章
- Linux系统调用--getrlimit()与setrlimit()函数详解
- android 区分wifi是5G还是2.4G(转)
- Leetcode 120. 三角形最小路径和 解题思路及C++实现
- mysql custom_MySQL安装教程
- JavaScript实现radianToDegree弧度到度算法(附完整源码)
- boost::undirected_dfs用法的测试程序
- leetcode 73 矩阵置零 C++ 两种解法
- 基本linux命令vi,基本linux和vi命令.pdf
- Docker Jenkins Node(一):初步构建
- python购物车代码_python简单商城购物车实例代码
- SDP的fmtp部分
- dx11 将纹理保存到dds
- 基于氚云平台的应用开发学习(二)
- 计算机的发明人是约翰用英语,电脑发明者是谁:约翰·冯·诺依曼(发明于1946年)...
- NYOJ 1016 德莱联盟(计算几何 线段相交判定)
- 你听说过史莱姆吗??【oj】
- 微信关注二维码不显示
- Corona建筑作品 | 272 Hedges Ave 海景顶级豪宅建筑表现
- python 从大到小循环_跟老齐学Python之关于循环的小伎俩
- 鸟哥的私房菜——BASHShell
热门文章
- 第八课:通道抠图2(人物头发)
- 【codeforces 709D】Recover the String
- python tableview 列宽_PyQt5中QTableWidget设置列宽大小的几种方式
- 非常遗憾,暴雪中国与网易停止合作;马斯克:要么加班,要么走人;腾讯员工平均月薪近 83888 元 | EA周报...
- 计算机一级考试心得体会,2017年计算机等级考试心得体会
- 手机静态IP如何设置?如何避免IP冲突?
- C/C++函数调用时参数传递过程、调用约定与可变参函数的实现
- Catch2库下载安装
- mvn java home_Maven中的Java_home
- 图解网卡硬件-什么是软硬网卡、PHY是什么意思等