OpenMetadata元数据模型设计:实体关系与属性定义

OpenMetadata元数据模型设计:实体关系与属性定义

【免费下载链接】OpenMetadata 开放标准的元数据。一个发现、协作并确保数据正确的单一地点。 【免费下载链接】OpenMetadata 项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata

引言

在数据驱动的时代,有效的元数据管理成为组织成功的关键因素。OpenMetadata作为一个开放标准的元数据平台,提供了统一的方式来发现、协作和确保数据的准确性。本文将深入探讨OpenMetadata的元数据模型设计,重点分析实体关系与属性定义,帮助读者更好地理解和应用这一强大的元数据管理工具。

OpenMetadata核心组件概述

OpenMetadata由四个主要组件构成,它们共同协作,实现了全面的元数据管理:

  1. 元数据模式(Metadata Schemas):基于通用抽象和类型的元数据核心定义和词汇表,支持自定义扩展和属性。
  2. 元数据存储(Metadata Store):中央存储库,用于存储和管理元数据图,以统一方式连接数据资产、用户和工具生成的元数据。
  3. 元数据API(Metadata APIs):构建在元数据模式之上的接口,用于生成和使用元数据,实现用户界面、工具、系统和服务与元数据存储的无缝集成。
  4. 摄取框架(Ingestion Framework):可插拔框架,用于从各种来源和工具摄取元数据到元数据存储,支持约84+种连接器。

这些组件的协同工作使得OpenMetadata能够提供数据发现、数据协作、数据质量与分析、数据治理等关键功能。

实体关系模型

OpenMetadata的元数据模型基于实体关系(ER)设计,定义了各种数据资产及其之间的关联。以下是核心实体及其关系的概述:

主要实体类型

OpenMetadata定义了多种实体类型,包括但不限于:

  • 数据库(Database):数据库目录,包含多个模式。
  • 表(Table):按行和列组织的数据集合,定义在数据库模式中。
  • 模式(Schema):数据库中的模式,包含多个表。
  • 数据管道(Pipeline):数据处理流程,可能包含多个任务。
  • 仪表板(Dashboard):数据可视化界面,包含多个图表。
  • 用户(User):系统用户,可能是数据资产的所有者或关注者。
  • 团队(Team):用户的集合,共同管理或使用某些数据资产。

实体关系图

以下是OpenMetadata核心实体之间关系的简化表示:

mermaid

核心实体属性定义

数据库实体

数据库实体代表一个数据库目录,包含多个模式。其主要属性包括:

属性名描述数据类型
id数据库实例的唯一标识符UUID
name标识数据库的名称字符串
fullyQualifiedName唯一标识数据库的名称,格式为'ServiceName.DatabaseName'字符串
displayName数据库的显示名称字符串
description数据库实例的描述Markdown
tags数据库的标签标签数组
version实体的元数据版本字符串
updatedAt实体新版本的最后更新时间(Unix纪元时间毫秒)时间戳
updatedBy进行更新的用户字符串
href对应于此实体的资源链接字符串
owners数据库的所有者实体引用列表
service托管此数据库的数据库集群/服务的链接实体引用
serviceType托管此数据库的服务类型字符串
databaseSchemas数据库中模式的引用实体引用列表

数据库实体的详细定义可在openmetadata-spec/src/main/resources/json/schema/entity/data/database.json中找到。

表实体

表实体代表按行和列组织的数据集合,定义在数据库模式中。其主要属性包括:

属性名描述数据类型
id表的唯一标识符UUID
name标识表的名称字符串
fullyQualifiedName唯一标识表的名称字符串
displayName表的显示名称字符串
description表的描述Markdown
tableType表的类型(如Regular, View, MaterializedView等)枚举
columns表的列列数组
partitionColumns用于分区的列列引用数组
tableConstraints表的约束条件约束数组
tags表的标签标签数组
version实体的元数据版本字符串
updatedAt实体新版本的最后更新时间时间戳
updatedBy进行更新的用户字符串
href对应于此实体的资源链接字符串
owners表的所有者实体引用列表
databaseSchema表所属的数据库模式实体引用
profile表的最新数据配置文件配置文件对象
usageSummary表的使用摘要使用详情对象

表实体的详细定义可在openmetadata-spec/src/main/resources/json/schema/entity/data/table.json中找到。

列实体

列实体代表表中的一个列,其主要属性包括:

属性名描述数据类型
name列的本地名称字符串
displayName列的显示名称字符串
dataType列的数据类型(int、date等)枚举
arrayDataType数组数据类型中使用的数据类型枚举
dataLength'char'、'varchar'等数据类型的长度整数
precision数字类型的精度整数
scale数字类型的小数位数整数
dataTypeDisplay用于dataType的显示名称字符串
description列的描述Markdown
fullyQualifiedName列的完全限定名称字符串
tags与列关联的标签标签数组
constraint列级约束枚举
ordinalPosition列的序号位置整数
jsonSchema如果dataType是JSON,则为JSON模式,否则为null字符串
children如果dataType或arrayDataType是'map'、'struct'或'union',则为子列列数组
profile列的最新数据配置文件配置文件对象

实体扩展与自定义属性

OpenMetadata允许通过扩展机制为实体添加自定义属性,以满足特定的业务需求。扩展属性定义在extension字段中,遵循实体扩展的JSON模式。

例如,可以为表实体添加自定义属性"retentionPeriod",指定数据保留期限:

"extension": {
  "retentionPeriod": "90 days",
  "dataClassification": "Confidential"
}

实际应用示例

创建数据库实体

以下是创建数据库实体的JSON示例:

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "sales_db",
  "fullyQualifiedName": "mysql_prod.sales_db",
  "displayName": "Sales Database",
  "description": "Database containing sales data",
  "service": {
    "id": "123e4567-e89b-12d3-a456-426614174001",
    "type": "databaseService",
    "name": "mysql_prod"
  },
  "serviceType": "MySQL"
}

创建表实体

以下是创建表实体的JSON示例:

{
  "id": "123e4567-e89b-12d3-a456-426614174002",
  "name": "orders",
  "fullyQualifiedName": "mysql_prod.sales_db.orders",
  "displayName": "Customer Orders",
  "description": "Table containing customer orders",
  "tableType": "Regular",
  "columns": [
    {
      "name": "order_id",
      "dataType": "INT",
      "description": "Unique order identifier",
      "constraint": "PRIMARY_KEY"
    },
    {
      "name": "customer_id",
      "dataType": "INT",
      "description": "Customer identifier"
    },
    {
      "name": "order_date",
      "dataType": "DATE",
      "description": "Date of the order"
    },
    {
      "name": "total_amount",
      "dataType": "DECIMAL",
      "precision": 10,
      "scale": 2,
      "description": "Total order amount"
    }
  ],
  "databaseSchema": {
    "id": "123e4567-e89b-12d3-a456-426614174003",
    "type": "databaseSchema",
    "name": "sales_db"
  }
}

总结与展望

OpenMetadata的元数据模型设计提供了一个灵活而强大的框架,用于管理各种数据资产及其关系。通过明确定义的实体、属性和关系,OpenMetadata实现了数据的统一视图,促进了数据发现、协作和治理。

随着数据生态系统的不断发展,OpenMetadata的元数据模型也将持续演进,以支持新的数据类型、工具和用例。未来的发展方向可能包括更深入的机器学习元数据支持、增强的数据血缘跟踪,以及更丰富的跨实体关系定义。

通过掌握OpenMetadata的元数据模型,组织可以更好地利用其数据资产,提高数据质量,促进数据驱动的决策,并最终实现业务价值的最大化。

参考资料

【免费下载链接】OpenMetadata 开放标准的元数据。一个发现、协作并确保数据正确的单一地点。 【免费下载链接】OpenMetadata 项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值