A API do DataWorks (2024-05-18) identifica cada entidade de metadados — banco de dados, tabela ou coluna — com um ID exclusivo derivado de sua posição na hierarquia.
Hierarquia de entidades
O Data Map utiliza crawlers para descobrir e organizar metadados em até cinco níveis hierárquicos:
Catalog > Database > Schema > Table > Column
Nem todos os tipos de crawler suportam todos os níveis. O MaxCompute utiliza Schema, Table e Column, enquanto o MySQL usa Database, Table e Column. Os níveis suportados determinam como você constrói os IDs das entidades.
Tipos de crawler suportados
|
Identificador |
Nome de exibição |
Catalog |
Database |
Schema |
Table |
Column |
Observações |
|
|
MaxCompute |
-- |
-- |
Sim |
Sim |
Sim |
Um crawler padrão identifica todas as entidades de metadados na sua conta. No MaxCompute, os projetos correspondem ao nível de banco de dados, mas não podem ser consultados por meio de operações de API. O suporte a Schema depende da ativação do modelo de três camadas. |
|
|
Data Lake Formation |
Sim |
Sim |
-- |
Sim |
Sim |
Um crawler padrão identifica todas as entidades de metadados na sua conta. |
|
|
HMS |
-- |
Sim |
-- |
Sim |
Sim |
Utiliza o Hive Metastore Service (HMS). Coleta metadados de clusters E-MapReduce (EMR) e CDH_HIVE. |
|
|
Hologres |
-- |
Sim |
Sim |
Sim |
Sim |
- |
|
|
MySQL |
-- |
Sim |
-- |
Sim |
Sim |
- |
|
|
Oracle |
-- |
Sim |
Sim |
Sim |
Sim |
- |
|
|
PostgreSQL |
-- |
Sim |
Sim |
Sim |
Sim |
- |
|
|
SQL Server |
-- |
Sim |
Sim |
Sim |
Sim |
- |
|
|
AnalyticDB MySQL |
-- |
Sim |
-- |
Sim |
Sim |
Também coleta metadados de fontes de dados |
|
|
AnalyticDB MySQL 2.0 |
-- |
Sim |
-- |
Sim |
Sim |
- |
|
|
AnalyticDB PostgreSQL |
-- |
Sim |
Sim |
Sim |
Sim |
- |
|
|
OTS |
-- |
Sim |
-- |
Sim |
Sim |
- |
|
|
ClickHouse |
-- |
Sim |
-- |
Sim |
Sim |
- |
|
|
StarRocks |
Sim |
Sim |
-- |
Sim |
Sim |
Suporta catalogs. Consulta entidades de metadados apenas em catalogs internos. |
|
|
Lindorm |
-- |
Sim |
-- |
Sim |
Sim |
- |
Tipo de entidade
O parâmetro EntityType identifica o tipo e o nível de uma entidade de metadados. Formato:
${CrawlerType}-${SubType}
CrawlerType: O identificador do crawler, comomysql,maxcompute,dlfouholo.SubType: O nível da entidade, comocatalog,database,schema,tableoucolumn.
Por exemplo, uma tabela do MaxCompute possui o tipo de entidade maxcompute-table.
ID da entidade de metadados
O parâmetro MetaEntityId identifica exclusivamente uma entidade de metadados.
Os níveis são separados por dois pontos (:). Níveis não suportados utilizam uma string vazia como espaço reservado, mantendo a contagem de segmentos consistente entre os tipos de entidade.
ID da instância de metadados do crawler
A instância de metadados do crawler é a raiz da hierarquia. Seu formato de ID depende se o crawler é padrão ou criado manualmente.
Crawlers padrão (MaxCompute e DLF): O ID é apenas o tipo do crawler.
${CrawlerType}
Crawlers criados manualmente: O ID inclui o identificador da fonte de metadados.
${CrawlerType}:${MetaSourceId}
O valor de MetaSourceId varia conforme o modo de conexão:
|
Modo |
Valor de MetaSourceId |
Exemplo |
|
Modo de instância |
Um ID de instância ou ID de cluster |
|
|
Modo de URL |
A URL JDBC codificada por URL ou endpoint |
|
Exemplos:
|
Tipo de crawler |
Cenário |
ID da instância de metadados do crawler |
|
MaxCompute |
Crawler padrão |
|
|
Hologres |
Modo de instância, ID da instância |
|
|
MySQL |
Modo de URL, URL JDBC |
|
Formato do ID da entidade de tabela de dados
Para entidades de catalog, banco de dados, schema, tabela e coluna, o ID segue este formato:
${EntityType}:${MetaSourceId}:${Catalog}:${Database}:${Schema}:${Table}:${Column}
Cada segmento corresponde a um nível específico:
|
Nível |
Segmento |
Descrição |
|
- |
|
O identificador do tipo de entidade (por exemplo, |
|
- |
|
O ID da instância, ID do cluster ou URL JDBC codificada por URL. Para MaxCompute e DLF, utilize uma string vazia. |
|
Catalog |
|
O identificador do catalog. Para StarRocks, trata-se do nome do catalog. Para DLF, é o ID do catalog. Para outros tipos, use uma string vazia. |
|
Banco de dados |
|
O nome do banco de dados. |
|
Schema |
|
O nome do schema. Para tipos que não suportam schema, utilize uma string vazia. No MaxCompute, forneça o nome do schema quando o modelo de schema estiver ativado; caso contrário, use uma string vazia. |
|
Tabela |
|
O nome da tabela. |
|
Coluna |
|
O nome da coluna. |
Omita os segmentos finais para entidades de nível superior. Por exemplo, um ID de nível de tabela não inclui o segmento Column.
Exemplos de ID de entidade
Os exemplos a seguir demonstram a construção de IDs de entidade para diferentes tipos de crawler.
Dois pontos (:) separam cada nível. Strings vazias entre dois pontos consecutivos (por exemplo, ::) representam níveis não suportados.
MaxCompute
O MaxCompute suporta dois modos, dependendo da ativação do modelo de três camadas (modelo de schema).
Modelo de schema ativado
Para um projeto project_name, schema schema_name, tabela table_name e coluna column_name:
|
Nível |
ID da entidade |
|
Instância de metadados do crawler |
|
|
Projeto |
|
|
Schema |
|
|
Tabela |
|
|
Coluna |
|
Os três dois pontos iniciais (:::) antes de project_name representam espaços reservados vazios para MetaSourceId (o MaxCompute usa um crawler padrão) e Catalog (não suportado).
Modelo de schema desativado
Para um projeto project_name, tabela table_name e coluna column_name:
|
Nível |
ID da entidade |
|
Instância de metadados do crawler |
|
|
Projeto |
|
|
Tabela |
|
|
Coluna |
|
Quando o modelo de schema está desativado, a posição do schema é um espaço reservado vazio (:: entre project_name e table_name).
DLF
Para um catalog catalog_id, banco de dados database_name, tabela table_name e coluna column_name:
|
Nível |
ID da entidade |
|
Instância de metadados do crawler |
|
|
Catalog |
|
|
Banco de dados |
|
|
Tabela |
|
|
Coluna |
|
O DLF utiliza um crawler padrão, portanto MetaSourceId é vazio (:: antes de catalog_id). Como o DLF não suporta schema, um espaço reservado vazio aparece entre database_name e table_name.
HMS
Para um cluster EMR c-a1b2c3xxx, banco de dados test_db, tabela test_tbl e coluna test_col:
|
Nível |
ID da entidade |
|
Instância de metadados do crawler |
|
|
Banco de dados |
|
|
Tabela |
|
|
Coluna |
|
O HMS não suporta catalog ou schema, então espaços reservados vazios aparecem nessas posições.
Hologres
Para uma instância Hologres hgpostcn-cn-a1b2c3xxx, banco de dados test_db, schema test_schema, tabela test_tbl e coluna test_col:
|
Nível |
ID da entidade |
|
Instância de metadados do crawler |
|
|
Banco de dados |
|
|
Schema |
|
|
Tabela |
|
|
Coluna |
|
O Hologres utiliza o modo de instância, logo MetaSourceId é o ID da instância. Catalogs não são suportados, portanto um espaço reservado vazio aparece entre MetaSourceId e Database.
MySQL
Para uma fonte de dados MySQL com a URL JDBC jdbc:mysql://47.0.X.X:3306/test_db, banco de dados test_db, tabela test_tbl e coluna test_col:
|
Nível |
ID da entidade |
|
Instância de metadados do crawler |
|
|
Banco de dados |
|
|
Tabela |
|
|
Coluna |
|
MetaSourceId é a URL JDBC codificada por URL. O MySQL não suporta catalog ou schema, então espaços reservados vazios aparecem nessas posições.
Referência rápida
Esta tabela resume os padrões de ID de entidade para cada tipo de crawler. Segmentos vazios são mostrados como (empty). O formato de MetaSourceId depende do modo de registro (instância ou URL).
|
Tipo de crawler |
MetaSourceId |
Catalog |
Schema |
Exemplo de ID de tabela |
|
|
(empty) |
(empty) |
schema_name ou (empty) |
|
|
|
(empty) |
catalog_id |
(empty) |
|
|
|
cluster_id |
(empty) |
(empty) |
|
|
|
instance_id |
(empty) |
schema_name |
|
|
|
URL JDBC codificada por URL |
(empty) |
(empty) |
|
|
|
instance_id ou URL |
(empty) |
schema_name |
|
|
|
instance_id ou URL |
(empty) |
schema_name |
|
|
|
instance_id ou URL |
(empty) |
schema_name |
|
|
|
instance_id |
(empty) |
(empty) |
|
|
|
instance_id |
(empty) |
(empty) |
|
|
|
instance_id |
(empty) |
schema_name |
|
|
|
instance_id |
(empty) |
(empty) |
|
|
|
instance_id ou URL |
(empty) |
(empty) |
|
|
|
instance_id |
catalog_name |
(empty) |
|
|
|
instance_id |
(empty) |
(empty) |
|