全部產品
Search
文件中心

DataWorks:中繼資料實體相關概念說明

更新時間:Aug 01, 2025

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管理中繼資料的類型。

  • 當前對應EMR和CDH_HIVE叢集兩種類型。

holo

Hologres

-

mysql

MySQL

-

oracle

Oracle

-

postgresql

PostgreSQL

-

sqlserver

SQL Server

-

analyticdb_for_mysql

AnalyticDB MySQL

對應analyticdb_for_mysql和analyticdb_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實體物件。

通過:分隔字元拼接各層級的標識符(對於不支援的層級使用Null 字元佔位),形成中繼資料實體ID作為實體唯一標識。

採集器中繼資料執行個體

採集器中繼資料實體ID:中繼資料採集來源的唯一標識。

  • 對於MaxComputeDLF類型,提供預設採集器,對應租戶/主帳號下所有中繼資料實體,其採集器中繼資料實體ID格式省略為${CrawlerType}

  • 對於其他需要手動建立採集器的類型,其採集器中繼資料實體ID格式為${CrawlerType}:${MetaSourceId}

    • CrawlerType: 採集器類型標識,如holomysql等。

    • MetaSourceId:中繼資料來源標識。

      • 執行個體模式:對應執行個體ID/叢集ID。

      • URL模式:對應URLEncode後的URL(Jdbc Url 或 Endpoint)。

樣本:

  • 對於MaxCompute類型,採集器中繼資料實體ID為 maxcompute

  • 對於Hologres類型,執行個體模式下,假設執行個體ID為i-z6j3kxxx7,採集器中繼資料實體ID為holo:i-z6j3kxxx7

  • 對於MySQL類型,URL模式下,假設URL為jdbc:mysql://47.0.X.X:3306/test_db,採集器中繼資料實體ID為mysql: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類型,使用Null 字元佔位。

Catalog

Catalog

資料目錄標識。

StarRocks類型為目錄名稱,DLF類型為目錄ID,其他類型使用Null 字元佔位。

Database

Database

資料庫名稱。

Schema

Schema

資料庫模式名稱。

對於不支援schema的類型,使用Null 字元佔位。

對於MaxCompute類型,開啟三層模型時需要提供schema名稱,未開啟時使用Null 字元佔位。

Table

Table

資料表名稱。

Column

Column

欄位名稱。

中繼資料實體樣本

以下為MaxComputeDLFHMSHologresMySQL幾種常用類型的各層級中繼資料實體ID樣本。

說明

在如下ID樣本中,通過:分隔字元拼接各層級的標識符,對於不支援的層級使用Null 字元佔位

MaxCompute

說明
  • 僅開啟三層結構模型的MaxCompute專案支援Schema層級,並需要在資料表和欄位ID的相應位置處提供Schema名稱。

  • 未開啟三層結構模型的MaxCompute專案不支援Schema層級,資料表和欄位ID的相應位置處使用Null 字元佔位。

以專案名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