元数据实体相关概念说明

DataWorks OpenAPI(2024-05-18)支持多种元数据实体查询,本文提供了相关元数据实体的概念说明。

元数据实体对象

数据地图通过元数据采集器采集并纳管了不同类型和不同层级(子类型)的元数据实体对象。完整的采集器类型支持列表请参见采集器类型(CrawlerType)支持列表

按照元数据层级结构,数据地图支持的完整元数据实体层级分为:

  • Catalog (数据目录)

  • Database(数据库)

  • Schema(数据库模式)

  • Table(数据表)

  • Column(字段)

其中,不同采集器类型对于实体层级的支持情况不同。

采集器类型(CrawlerType)支持列表

标识

展示名称

支持的元数据实体层级

备注

Catalog

DataBase

Schema

Table

Column

maxcompute

MaxCompute

  • 提供默认采集器,标识主账号下所有元数据实体。

  • MaxCompute中,对应Database层级的是Project层级,在API中暂不支持查询Project。

  • Schema层级可选(是否开启三层模型)。

dlf

Data Lake Formation

提供默认采集器,标识主账号下所有元数据实体。

hms

HMS

  • 使用HMS管理元数据的类型。

  • 当前对应EMRCDH_HIVE集群两种类型。

holo

Hologres

-

mysql

MySQL

-

oracle

Oracle

-

postgresql

PostgreSQL

-

sqlserver

SQL Server

-

analyticdb_for_mysql

AnalyticDB MySQL

对应analyticdb_for_mysqlanalyticdb_for_spark两种数据源类型。

ads

AnalytidDB MySQL 2.0

-

hybriddb_for_postgresql

AnalyticDB PostgreSQL

-

ots

OTS

-

clickhouse

ClickHouse

-

starrocks

StarRocks

支持Catalog,目前仅支持查询Internal Catalog下的元数据实体。

lindorm_for_engine

Lindorm

-

实体类型(EntityType)

EntityType是元数据实体的类型标识,其格式为${CrawlerType}-${SubType}

  • CrawlerType为采集器类型标识,如mysqlmaxcomputedlfholo等。

  • SubType为元数据实体子类型的标识,如catalogdatabaseschematablecolumn

MaxCompute表为例,其EntityTypemaxcompute-table

元数据实体ID(MetaEntityId)

元数据实体ID:具有可读性,唯一性,可扩展性的元数据实体对象标识。

支持采集器元数据实例、以及 Catalog -> Database -> Schema -> Table -> Column实体对象。

通过:分隔符拼接各层级的标识符(对于不支持的层级使用空字符占位),形成元数据实体ID作为实体唯一标识。

采集器元数据实例

采集器元数据实体ID:元数据采集来源的唯一标识。

  • 对于MaxComputeDLF类型,提供默认采集器,对应租户/主账号下所有元数据实体,其采集器元数据实体ID格式省略为${CrawlerType}

  • 对于其他需要手动创建采集器的类型,其采集器元数据实体ID格式为${CrawlerType}:${MetaSourceId}

    • CrawlerType: 采集器类型标识,如holomysql等。

    • MetaSourceId:元数据来源标识。

      • 实例模式:对应实例ID/集群ID。

      • URL模式:对应URLEncode后的URL(Jdbc Url 或 Endpoint)。

示例:

  • 对于MaxCompute类型,采集器元数据实体IDmaxcompute

  • 对于Hologres类型,实例模式下,假设实例IDi-z6j3kxxx7,采集器元数据实体IDholo:i-z6j3kxxx7

  • 对于MySQL类型,URL模式下,假设URLjdbc:mysql://47.0.X.X:3306/test_db,采集器元数据实体IDmysql:jdbc%3Amysql%3A%2F%2F47.0.X.X%3A3306%2Ftest_db。

数据表相关元数据实体

元数据实体ID格式为${EntityType}:${MetaSourceId}:${Catalog}:${Database}:${Schema}:${Table}:${Column}

包含以下元素:

层级

属性

说明

-

EntityType

实体类型标识。

-

MetaSourceId

  • 实例模式下,对应实例ID/集群ID 。

  • URL模式下,对应URLEncode后的URL(Jdbc Url 或 Endpoint)。

对于MaxComputeDLF类型,使用空字符占位。

Catalog

Catalog

数据目录标识。

StarRocks类型为目录名称,DLF类型为目录ID,其他类型使用空字符占位。

Database

Database

数据库名称。

Schema

Schema

数据库模式名称。

对于不支持schema的类型,使用空字符占位。

对于MaxCompute类型,开启三层模型时需要提供schema名称,未开启时使用空字符占位。

Table

Table

数据表名称。

Column

Column

字段名称。

元数据实体示例

以下为MaxComputeDLFHMSHologresMySQL几种常用类型的各层级元数据实体ID示例。

说明

在如下ID示例中,通过:分隔符拼接各层级的标识符,对于不支持的层级使用空字符占位

MaxCompute

说明
  • 仅开启三层结构模型的MaxCompute项目支持Schema层级,并需要在数据表和字段ID的相应位置处提供Schema名称。

  • 未开启三层结构模型的MaxCompute项目不支持Schema层级,数据表和字段ID的相应位置处使用空字符占位。

以项目名project_name(已开启三层模型),模式名 schema_name,表名table_name,字段名column_name为例,各层级的实体ID如下:

层级

ID

采集器元数据实例

maxcompute

项目

maxcompute-project:::project_name

模式

maxcompute-schema:::project_name:schema_name

数据表

maxcompute-table:::project_name:schema_name:table_name

字段

maxcompute-column:::project_name:schema_name:table_name:column_name

以项目名project_name(未开启三层模型),表名table_name,字段名column_name为例,各层级的实体ID如下:

层级

ID

采集器元数据实例

maxcompute

项目

maxcompute-project:::project_name

数据表

maxcompute-table:::project_name::table_name

字段

maxcompute-column:::project_name::table_name:column_name

DLF

以数据目录catalog_id,数据库名database_name,表名table_name,字段名column_name为例,各层级的实体ID如下:

层级

ID

采集器元数据实例

dlf

数据目录

dlf-catalog::catalog_id

数据库

dlf-database::catalog_id:database_name

数据表

dlf-table::catalog_id:database_name::table_name

字段

dlf-column::catalog_id:database_name::table_name:column_name

HMS

EMR集群实例c-a1b2c3xxx为例,数据库名test_db,表名test_tbl,字段名test_col,各层级的实体ID如下:

层级

ID

采集器元数据实例

hms:c-a1b2c3xxx

数据库

hms-database:c-a1b2c3xxx::test_db

数据表

hms-table:c-a1b2c3xxx::test_db::test_tbl

字段

hms-column:c-a1b2c3xxx::est_tdb::test_tbl:test_col

Hologres

Hologres实例hgpostcn-cn-a1b2c3xxx为例,对于数据库test_db,模式test_schema,数据表test_tbl,字段test_col,各层级的实体ID如下:

层级

ID

采集器元数据实例

holo:hgpostcn-cn-a1b2c3xxx

数据库

holo-database:hgpostcn-cn-a1b2c3xxx::test_db

模式

holo-schema:hgpostcn-cn-a1b2c3xxx::test_db:test_schema

数据表

holo-table:hgpostcn-cn-a1b2c3xxx::test_db:test_schema:test_tbl

字段

holo-column:hgpostcn-cn-a1b2c3xxx::test_db:test_schema:test_tbl:test_col

MySQL

MySQL数据源连接串jdbc:mysql://47.0.X.X:3306/test_db为例,对于数据库test_db,数据表test_tbl,字段test_col,各层级的实体ID如下:(通过对JDBC连接串进行URL编码生成MetaSourceId)

层级

ID

采集器元数据实例

mysql:jdbc%3Amysql%3A%2F%2F47.0.X.X%3A3306%2Ftest_db

数据库

mysql-database:jdbc%3Amysql%3A%2F%2F47.0.X.X%3A3306%2Ftest_db::test_db

数据表

mysql-table:jdbc%3Amysql%3A%2F%2F47.0.X.X%3A3306%2Ftest_db::test_db::test_tbl

字段

mysql-column:jdbc%3Amysql%3A%2F%2F47.0.X.X%3A3306%2Ftest_db::test_db::test_tbl:test_col