【元数据管理】Atlas术语(Glossary)

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)
  1. 创建术语表
  2. 创建一个术语
  3. 创建分类术语
  4. 用关系创建术语
  5. 创建一个类别
  6. 创建具有层次结构的类别
  7. 创建类别并对术语进行分类
  8. 为实体分配术语

注意:

  • 在创建操作期间,术语表,术语和类别将获得自动分配的GUID和qualifiedName。
  • 要创建包含子项的类别,必须事先创建子项。
  • 要创建属于某个类别的术语,必须事先创建该类别。
  • 要创建关系术语,必须事先创建相关术语。
7.2.2 读操作(READ)
  1. 通过GUID获取术语表 - 提供属于术语表的所有术语和类别(标题)。
  2. 获取所有术语表 - 为所有术语表提供他们的术语和类别(标题)。
  3. 通过GUID获取术语 - 提供有关术语,其所属类别(如果有)以及任何相关术语的详细信息。
  4. 通过GUID获取类别 - 提供有关类别,类别层次结构(如果有)和属于该类别的术语的详细信息。
  5. 获取给定术语表的所有术语 - 提供属于给定术语表的所有术语(具有#3中提到的详细信息)。
  6. 获取给定术语表的所有类别 - 提供属于给定术语表的所有类别(具有#4中提到的详细信息)。
  7. 获取与给定术语相关的所有术语 - 提供与给定术语相关/链接的所有术语。
  8. 获取与给定类别(父母和子女)相关的所有类别
  9. 获取给定类别的所有条款
7.2.3 更新操作(UPDATE)
  1. 局部更新术语表
  2. 局部更新术语
  3. 局部更新类别
  4. 更新给定的词汇表
  5. 更新给定的术语
  6. 更新给定的类别

注意:

  • 局部更新仅处理词汇表模型文件中定义的原始属性
  • 分配后,无法更改GUID和qualifiedName。唯一的方法是删除并重新创建所需的对象。
  • 在任何更新中都无法删除锚点
  • 更新API期望在GET调用之后就地修改JSON。任何缺失的属性/关系都将被删除。
  • 对类别层次结构的任何更新都会导致对其下的层次结构进行级联更新,例如锚更改会影响所有子项,父项更改会影响self和children的qualifiedName。
7.2.4 删除操作(DELETE)
  1. 删除术语表 - 删除锚定到给定词汇表的所有类别和术语。如果已为实体分配任何术语,则会阻止此删除。
  2. 删除术语 - 仅当术语未与任何实体关联/分配时才删除该术语。
  3. 删除类别 - 仅删除给定类别,所有子项都成为顶级类别。
  4. 从实体中删除术语分配

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏瓜大三哥

VS2详细设计(二)

DVIIN1_CLK为输入视频源的随路时钟,用于检测分辨率的时钟,行分辨率的检测从视频源的数据有效信号DVIIN1_DE的上升沿开始计数,直到DVIIN1_DE...

1083
来自专栏ATYUN订阅号

OpenAI-人工反馈的深度学习

rl-teacher是“Deep Reinforcement Learning from Human Preferences”的实现。 这个系统允许你教一个强化...

3976
来自专栏祝威廉

SQL脚本实现算法模型的训练,预测

搜索团队正好需要计算一些词汇的相似性,这个用Word2Vec是很方便的。于是我立马安排算法团队帮个忙弄下。但回头想想,因为这么点事,打断了算法手头的工作,这简直...

962
来自专栏机器之心

学界 | 中科院计算所开源Easy Machine Learning:让机器学习应用开发简单快捷

选自Github 机器之心编译 今日,中科院计算所研究员徐君在微博上宣布「中科院计算所开源了 Easy Machine Learning 系统,其通过交互式图...

3265
来自专栏AI研习社

深度学习界的 “吃鸡挂”——目标检测 SSD 实验

“卧槽,又被 LYB 干了!” 背后传来一声哀嚎。 哈哈,看来,沉迷吃鸡的室友又被戒网瘾了。作为一个充满着正义的 LYB 的游戏,这人不长点眼力还真的不行啊。不...

4855
来自专栏WeTest质量开放平台团队的专栏

UPA深度性能报告解读

UPA作为腾讯WeTest与Unity官方联合打造的客户端性能分析工具,为开发者提供了极大的便利和效能提升。产出的分析报告内容详尽,但您是否真的读懂了报告?是否...

762
来自专栏编程

基于Python的人脸识别库,离线识别率高达99.38%!

-欢迎 原文该项目是要构建一款免费、开源、实时、离线的网络 app,支持组织者使用人脸识别技术或二维码识别所有受邀人员。有了世界上最简单的人脸识别库,使用 Py...

2848
来自专栏吉浦迅科技

如何在Jetson TK1上安装Caffe深度学习库

        Caffe的创造者 Yangqing Jia,最近花了些时间在NVIDIA Jetson 开发板上运行caffe框架。Jetson TK1 有1...

3607
来自专栏编程微刊

使用bootstrap的栅栏实现五列布局

我们知道,在使用Bootstrap栅格的时候,我们可以对网页方便的进行模块分割。Bootstrap 包含了一个响应式的、移动设备优先的、不固定的网格系统,可以随...

1891
来自专栏WeTest质量开放平台团队的专栏

UPA深度性能报告解读

原文链接:http://wetest.qq.com/lab/view/403.html

1172

扫码关注云+社区

领取腾讯云代金券