数据岗位面试题更新 2026-08-05

对于 Apache Atlas,怎样定义自定义的实体类型以及它们之间的关联关系?

数据系统设计技术原理Apache Atlas

考察说明

考查对 Atlas 元数据模型扩展机制的理解。

回答思路

  1. 【回答框架 1】在 Atlas 中,实体类型和关系通过类型系统定义,通常使用 JSON 描述的 typeDefs,包含 entityDefs 和 relationshipDefs。实体类型定义需指定 superTypes、attributeDefs(如名称、类型、是否必填、是否唯一)等。
  2. 【回答框架 2】创建自定义实体类型可通过 Atlas REST API(如 POST /api/atlas/v2/types/typedefs)提交定义,或通过 Atlas UI 的 Type 管理界面操作。定义后可创建该类型的实体实例。
  3. 【回答框架 3】关系定义使用 relationshipDefs,指定 endDef1 和 endDef2,各自包含 type、name、isContainer、cardinality(如 SINGLE、LIST、SET)等属性,以描述实体间关联。
  4. 【回答框架 4】设计时需考虑继承已有类型(如 Referenceable)以获取通用属性,或者与现有类型建立关联,确保类型设计符合业务元数据模型。
  5. 【关键点 1】通过类型系统(typeDefs)定义实体和关系。
  6. 【关键点 2】实体类型定义包括属性定义和继承关系。
  7. 【关键点 3】关系使用 relationshipDefs 并指定两端类型及基数。
  8. 【关键点 4】用 REST API 或 UI 提交类型定义。
  9. 【关键点 5】可继承 Referenceable 等基础类型。
  10. 【易错点 1】未定义关系两端的 cardinality 可能导致关联不准确。
  11. 【易错点 2】直接修改已使用类型可能引发兼容问题,建议版本化管理。
  12. 【易错点 3】类型名称需遵循 Atlas 命名规范,避免使用保留字。