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