元数据管理与数据治理平台:Apache Atlas 词汇表 Glossary
文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。
Apache Atlas 框架是一套可扩展的核心基础治理服务,使企业能够有效、高效地满足 Hadoop 中的合规性要求,并支持与整个企业数据生态系统集成。这将通过使用规范和取证模型,以及技术和运营审计以及由业务分类元数据丰富的沿袭,在 Hadoop 中提供真正的可视性。它还使任何元数据使用者能够互操作,而无需彼此独立的接口——元数据存储是通用的。通过利用 Apache Ranger 来维护元数据的准确性,以防止在运行时对数据进行未经授权的访问。安全性基于角色 (RBAC) 和属性 (ABAC)。
词汇表
Glossary
词汇表为业务用户提供了适当的词汇,并允许术语(词语)相互关联和分类,以便在不同上下文中被理解。这些术语随后可以映射到数据库、表、列等资源。这有助于抽离与数据仓库相关的技术术语,允许用户以他们更熟悉的词汇来发现/处理数据。
使用场景
- 使用自然术语(技术术语和/或业务术语)定义丰富词汇表的能力。
- 使术语在语义上相互关联的能力。
- 将资源映射到词汇表术语的能力。
- 按类别组织这些术语的能力。这为术语增加了更多上下文。
- 允许类别按层次结构排列 - 以表达更广泛和更精细的范围。
- 将词汇表术语的管理与元数据分开。
什么是词汇表术语?
术语是对企业有用的词语。为了使术语有用且有意义,它们需要围绕其用途和上下文进行分组。Apache Atlas 中的术语必须具有唯一的 qualifiedName,可以有同名术语,但它们不能属于同一词汇表。同名术语只能存在于不同词汇表中。术语名称可以包含空格、下划线和破折号(作为指代词语的自然方式),但不能包含 “.” 或 “@”,因为 qualifiedName 采用 术语名称
@词汇表限定名称
的形式。完全限定名称使得使用特定术语变得更加容易。
术语只能属于单个词汇表,其生命周期与之绑定,即如果词汇表被删除,术语也会被删除。术语可以属于零个或多个类别,这允许将它们限定在较窄或较宽的上下文中。术语可以分配/链接到 Apache Atlas 中的零个或多个实体。术语可以使用分类(标签)进行分类,相同的分类将应用于术语所分配的实体。
什么是词汇表类别?
类别是组织术语的一种方式,以便丰富术语的上下文。类别可能有或可能没有包含的层次结构,即子类别层次结构。类别的限定名称使用其在词汇表中的层次位置派生,例如 类别名称
.父类别限定名称
。当发生任何层次结构更改时,例如添加父类别、删除父类别或更改父类别,此限定名称将更新。
UI 交互
Apache Atlas UI 已更新,提供用户友好的界面来处理词汇表的各个方面,包括:
- 创建词汇表、术语和类别
- 创建术语之间的各种关系 - 如近义词、反义词、参见
- 按层次结构组织类别
- 将术语分配给实体
- 使用关联术语搜索实体
大多数与词汇表相关的 UI 可以在名为词汇表(GLOSSARY)的新选项卡下找到,该选项卡位于现有熟悉的选项卡搜索(SEARCH)和分类(CLASSIFICATION)旁边。
词汇表选项卡
Apache Atlas UI 提供两种处理词汇表的方式 - 术语视图和类别视图。
术语视图允许用户执行以下操作:
- 创建、更新和删除术语
- 添加、删除和更新与术语关联的分类
- 添加、删除和更新术语的分类
- 创建术语之间的各种关系
- 查看与术语关联的实体
类别视图允许用户执行以下操作:
- 创建、更新和删除类别和子类别
- 将术语关联到类别
用户可以使用词汇表选项卡中提供的切换开关在术语视图和类别视图之间切换。
术语上下文菜单
- 创建新术语
点击词汇表名称旁边的**省略号 (…)**会显示一个弹出菜单,允许用户在词汇表中创建术语或删除词汇表 - 如下所示。
- 删除术语
点击术语名称旁边的**省略号 (…)**会显示一个弹出菜单,允许用户删除术语 - 如下所示。
术语详情页面
点击词汇表 UI 中的术语名称可以查看术语的各种详细信息。详情页面下的每个选项卡提供术语的不同详细信息。
- 实体选项卡显示分配给所选术语的实体
- 分类选项卡显示与所选术语关联的分类
- 相关术语选项卡显示与所选术语相关的术语
为术语添加分类
点击分类标签旁边的**+**为术语添加分类。
创建术语与其他术语的关系
查看术语详情时点击"相关术语"选项卡。点击**+**将允许将术语与当前术语链接。
对术语进行分类
点击类别标签旁边的**+**对术语进行分类。将显示一个模态对话框用于选择类别。
类别视图
当切换开关切换到类别时,面板将列出所有词汇表以及类别层次结构。以下是此视图下可能的交互列表。
- 展开视图
类别上下文菜单
点击类别名称旁边的**省略号 (…)**将显示类别上下文菜单。
- 创建新类别
- 创建子类别或删除类别
类别详情页面
选择类别后,详细信息将在右侧面板中显示。
对术语进行分类
点击术语标签旁边的**+**将术语链接到所选类别下。
术语分配流程
术语可以从结果页面或实体详情页面分配给实体。
分配术语
点击"术语"列下的**+**(如果从搜索页面关联术语)
点击"术语"标签旁边的**+**(如果查看特定实体详情)
这两个操作都会显示以下模态框,按照屏幕上的提示完成术语分配。
传播分类
如果术语具有分类,则分配该术语的实体将继承相同的分类。
使用术语搜索
Apache Atlas 基本搜索 API 和 UI 已更新以支持术语作为搜索条件。这允许用户查找与给定术语关联的实体。基本搜索 UI 现在包括一个新的输入下拉列表用于基于术语的搜索。
REST 交互摘要
Atlas 支持以下操作,REST 接口的详细信息可在此处找到
JSON 结构
- 词汇表
{"guid": "2f341934-f18c-48b3-aa12-eaa0a2bfce85","qualifiedName": "SampleBank","displayName": "Banking","shortDescription": "银行词汇表","longDescription": "银行词汇表 - 详细描述","language": "English","usage": "N/A","terms": [{"termGuid": "502d34f1-b85f-4ad9-9d9f-fe7020ff0acb","relationGuid": "6bb803e4-3af6-4924-aad6-6ad9f95ecd14","displayText": "储蓄账户"}, {"termGuid": "e441a540-ee55-4fc8-8eaf-4b9943d8929c","relationGuid": "dbc46795-76ff-4f68-9043-be0eff0bc0f3","displayText": "15-30 年抵押贷款"}, {"termGuid": "998e3692-51a8-47fe-b3a0-0d9f794437eb","relationGuid": "0dcd31b9-a81c-4185-ad4b-9209a97c305b","displayText": "支票账户"}, {"termGuid": "c4e2b956-2589-4648-8596-240d3bea5e44","relationGuid": "e71c4a5d-694b-47a5-a41e-126ade857279","displayText": "ARM 贷款"}],"categories": [{"categoryGuid": "dd94859e-7453-4bc9-b634-a17fc14590f8","parentCategoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3","relationGuid": "a0b7da02-1ccd-4415-bc54-3d0cdb8857e7","displayText": "账户"}, {"categoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3","relationGuid": "0e84a358-a4aa-4bd3-b806-497a6962ae1d","displayText": "客户"}, {"categoryGuid": "7f041401-de8c-443f-a3b7-7bf5a910ff6f","parentCategoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3","relationGuid": "7757b031-4e25-43a8-bf77-946f7f06c67a","displayText": "贷款"}]
}
- 术语
{"guid": "e441a540-ee55-4fc8-8eaf-4b9943d8929c","qualifiedName": "fixed_mtg@SampleBank","displayName": "15-30 年抵押贷款","shortDescription": "简短描述","longDescription": "详细描述","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": "贷款"}],"seeAlso" : [],"synonyms" : [],"antonyms" : [],"replacedBy" : [],"replacementTerms" : [],"translationTerms" : [],"translatedTerms" : [],"isA" : [],"classifies" : [],"preferredTerms" : [],"preferredToTerms": [ {"termGuid" : "c4e2b956-2589-4648-8596-240d3bea5e44","displayText": "ARM 贷款"}]
}
- 类别
{"guid": "7f041401-de8c-443f-a3b7-7bf5a910ff6f","qualifiedName": "Loans.Customer@HortoniaBank","displayName": "贷款","shortDescription": "贷款分类","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 年抵押贷款"}, {"termGuid": "c4e2b956-2589-4648-8596-240d3bea5e44","relationGuid": "8db1e784-4f04-4eda-9a58-6c9535a95451","displayText": "ARM 贷款"}]
}
创建操作
- 创建词汇表
- 创建术语
- 创建分类术语
- 创建具有关系的术语
- 创建类别
- 创建具有层次结构的类别
- 创建类别并对术语进行分类
- 将术语分配给实体
注意:
- 在创建操作期间,词汇表、术语和类别会自动分配 GUID 和 qualifiedName。
- 要创建带有子类别的类别,必须先创建子类别。
- 要创建属于某个类别的术语,必须先创建该类别。
- 要创建具有关系的术语,必须先创建相关术语。
读取操作
- 通过 GUID 获取词汇表 - 获取属于该词汇表的所有术语和类别(标题)。
- 获取所有词汇表 - 获取所有词汇表及属于各自词汇表的术语和类别(标题)。
- 通过 GUID 获取术语 - 获取有关术语的详细信息、其所属类别(如果有)以及任何相关术语。
- 通过 GUID 获取类别 - 获取有关类别的详细信息、类别层次结构(如果有)以及属于该类别的术语。
- 获取给定词汇表的所有术语 - 获取属于给定词汇表的所有术语(包含 #3 中提到的详细信息)。
- 获取给定词汇表的所有类别 - 获取属于给定词汇表的所有类别(包含 #4 中提到的详细信息)。
- 获取与给定术语相关的所有术语 - 获取与给定术语相关/链接的所有术语。
- 获取与给定类别相关的所有类别(父类别和子类别)
- 获取给定类别的所有术语
更新操作
- 部分更新词汇表
- 部分更新术语
- 部分更新类别
- 更新给定词汇表
- 更新给定术语
- 更新给定类别
注意:
- 部分更新仅处理词汇表模型文件中定义的原始属性。
- GUID 和 qualifiedName 一旦分配就无法更改。唯一的方法是删除并重新创建所需对象。
- 锚点在任何更新中都不能被移除
- 更新 API 期望在 GET 调用后就地修改 JSON。任何缺失的属性/关系都将被删除。
- 对类别层次结构的任何更新都会导致其下层次结构的级联更新,例如锚点更改会影响所有子类别,父类别更改会影响自身和子类别的 qualifiedName。
删除操作
- 删除词汇表 - 同时删除锚定到给定词汇表的所有类别和术语。如果任何术语已被分配给实体,则此删除被阻止。
- 删除术语 - 仅当术语未关联/分配给任何实体时才删除该术语。
- 删除类别 - 仅删除给定类别,所有子类别成为顶级类别。
- 从实体中移除术语分配
风险提示与免责声明
本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。