Todos os produtos
Search
Central de documentação

DataWorks:BatchCreateMetaEntities

Última atualização: Sep 03, 2026

Cria entidades de metadados em lotes. Todas as entidades no mesmo lote devem ser do mesmo tipo. Atualmente, apenas tipos de entidade personalizados e tipos de tabela de extensão (correspondentes a Banco de dados/Tabela) são suportados.

Descrição da operação

É necessária a edição DataWorks Professional ou superior.

Experimente agora

Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.

Testar

Autorização RAM

A tabela abaixo descreve a autorização necessária para chamar esta API. Você pode defini-la em uma política do Resource Access Management (RAM). As colunas da tabela estão detalhadas abaixo:

  • Ação: As ações que podem ser usadas no elemento Action das instruções de política de permissão do RAM para conceder permissões para executar a operação.

  • API: A API que você pode chamar para executar a ação.

  • Nível de acesso: O nível de acesso predefinido concedido para cada API. Valores válidos: create, list, get, update e delete.

  • Tipo de recurso: O tipo de recurso que suporta autorização para executar a ação. Indica se a ação suporta permissão em nível de recurso. O recurso especificado deve ser compatível com a ação. Caso contrário, a política será ineficaz.

    • Para APIs com permissões em nível de recurso, os tipos de recursos obrigatórios são marcados com um asterisco (*). Especifique o Nome de Recurso Alibaba Cloud (ARN) correspondente no elemento Resource da política.

    • Para APIs sem permissões em nível de recurso, é exibido como Todos os Recursos. Use um asterisco (*) no elemento Resource da política.

  • Chave de condição: As chaves de condição definidas pelo serviço. A chave permite controle granular, aplicando-se somente a ações ou a ações associadas a recursos específicos. Além das chaves de condição específicas do serviço, o Alibaba Cloud fornece um conjunto de chaves de condição comuns aplicáveis a todos os serviços compatíveis com RAM.

  • Ação dependente: As ações dependentes necessárias para executar a ação. Para concluir a ação, o usuário RAM ou a função RAM deve ter permissões para executar todas as ações dependentes.

Ação

Nível de acesso

Tipo de recurso

Chave de condição

Ação dependente

dataworks:BatchCreateMetaEntities

create

*All Resource

*

Nenhuma Nenhuma

Sintaxe da solicitação

POST  HTTP/1.1

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

Entities

array<object>

Sim

A lista de entidades. O máximo de cinco entidades é suportado. Todas as entidades no mesmo lote devem ter o mesmo entityType.

[]

array<object>

Não

O objeto da entidade.

EntityType

string

Sim

O tipo da entidade. Todas as entidades no mesmo lote devem ter o mesmo tipo. Os seguintes tipos são suportados:

  • Tipos de entidade personalizados, como custom_entity-biz_api.

  • Tipos de tabela de extensão. Se o tipo de entidade de metadados custom_dw-table estiver registrado, você poderá criar objetos do tipo de banco de dados correspondente custom_dw-database e do tipo de tabela custom_dw-table.

custom_entity-customer_api

Name

string

Sim

O nome da entidade. O nome pode conter letras maiúsculas, letras minúsculas, dígitos e sublinhados (_). Deve começar com uma letra e ter até 64 caracteres de comprimento.

api_001

Comment

string

Não

O comentário.

este é um comentário

Attributes

object

Não

Os atributos da entidade. Valores complexos devem ser serializados como strings JSON.

string

Não

O atributo da entidade.

key1

CustomAttributes

object

Não

Os valores dos atributos personalizados. A chave é o identificador do atributo personalizado e o valor atualmente suporta apenas um único valor.

Importante Os atributos personalizados usados aqui devem ser criados antecipadamente chamando a operação CreateCustomAttribute. Por exemplo, após chamar a API para criar um atributo personalizado com o ID custom-attribute:owner_name, você pode configurar {'owner_name': ['Bob']} aqui para concluir a configuração do atributo personalizado.

array

Não

A lista de valores de atributos personalizados.

string

Não

O valor do atributo personalizado.

value1

Banco de dados de extensão

Defina EntityType como custom_xxx-database, onde xxx vem da EntityDef de extensão custom_xxx-table já criada.

Atributos

Chave do atributoObrigatórioTipo/FormatoDescrição
parentMetaEntityIdSimStringO ID da instância pai. Deve estar no nível da instância e não pode conter catalog/database/schema/table/column.
technicalMetadata.locationNãoStringO local de armazenamento do banco de dados.

Tabela de extensão

Defina EntityType como custom_xxx-table. As colunas da tabela também devem ser registradas aqui através de Attributes.columns.

Atributos

Chave do atributoObrigatórioTipo/FormatoDescrição
parentMetaEntityIdSimStringO ID do banco de dados pai. Deve estar no nível do banco de dados.
tableTypeNãoStringO tipo da tabela. Valor padrão: TABLE.
partitionKeysNãoString de array JSONAs chaves de partição, como ["dt"].
technicalMetadata.locationNãoStringO local de armazenamento.
technicalMetadata.compressedNãoString booleana ou booleano JSONEspecifica se os dados estão compactados.
technicalMetadata.inputFormatNãoStringO InputFormat.
technicalMetadata.outputFormatNãoStringO OutputFormat.
technicalMetadata.serializationLibraryNãoStringA classe SerDe.
technicalMetadata.parametersNãoString de objeto JSONAs informações de parâmetro, como {"retention":"30"}.
columnsNãoString de array JSONA lista de colunas inline. Usada para registrar colunas de extensão junto com a tabela.

Attributes.columns

columns é uma string de array JSON dentro de Attributes. Cada objeto no array suporta os seguintes campos:

Chave do item de colunaObrigatórioTipo/FormatoDescrição
nameSimStringO nome da coluna. Se estiver vazio, a coluna será ignorada.
typeSimStringO tipo da coluna. Se estiver ausente, um erro attributes.columns[i].type será relatado.
commentNãoStringO comentário da coluna.
positionNãoInteiroA posição da coluna. Se não for especificada, o valor padrão será i + 1 com base na ordem do array.
partitionKeyNãoBooleanoEspecifica se a coluna é uma chave de partição.
primaryKeyNãoBooleanoEspecifica se a coluna é uma chave primária.
customAttributesNãoObjetoOs valores de atributos personalizados da coluna.

Exemplos.

Criar um banco de dados de extensão

{
  "Entities": [
    {
      "EntityType": "custom_demo-database",
      "Name": "ods",
      "Comment": "Banco de dados ODS",
      "Attributes": {
        "parentMetaEntityId": "custom_demo:demo_source",
        "technicalMetadata.location": "oss://bucket/ods"
      },
      "CustomAttributes": {
        "biz_owner": ["data_team"]
      }
    }
  ]
}

Criar uma tabela de extensão e registrar colunas

{
  "Entities": [
    {
      "EntityType": "custom_demo-table",
      "Name": "order_fact",
      "Comment": "Tabela de fatos de pedidos",
      "Attributes": {
        "parentMetaEntityId": "custom_demo-database:demo_source::ods",
        "tableType": "TABLE",
        "partitionKeys": "[\"dt\"]",
        "technicalMetadata.location": "oss://bucket/ods/order_fact",
        "technicalMetadata.compressed": "true",
        "technicalMetadata.parameters": "{\"retention\":\"30\",\"bizDomain\":\"trade\"}",
        "columns": "[{\"name\":\"id\",\"type\":\"BIGINT\",\"comment\":\"Chave primária\",\"position\":1,\"primaryKey\":true,\"customAttributes\":{\"security_level\":[\"P1\"]}},{\"name\":\"dt\",\"type\":\"STRING\",\"comment\":\"Data da partição\",\"position\":2,\"partitionKey\":true}]"
      },
      "CustomAttributes": {
        "biz_owner": ["data_team"]
      }
    }
  ]
}

Precauções

  • O parentMetaEntityId de um banco de dados de extensão deve estar no nível da instância, como custom_demo:demo_source.

  • O parentMetaEntityId de uma tabela de extensão deve estar no nível do banco de dados, como custom_demo-database:demo_source::ods.

  • As entidades pai e filho devem pertencer à mesma família de extensão. Por exemplo, o pai de custom_demo-table deve ser custom_demo-database.

  • columns só pode ser fornecido ao criar uma tabela. Você não pode usar BatchCreateMetaEntities para criar independentemente custom_xxx-column.

  • O caminho de gravação da entidade de extensão não bloqueia estritamente chaves Attributes desconhecidas com base em MetaEntityDef.AttributeDefs. Chaves desconhecidas geralmente são ignoradas.

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

Esquema da resposta.

RequestId

string

O ID da solicitação.

9E0C8E7A-C6BE-5A73-9562-2A030A80E8C6

Success

boolean

Indica se a solicitação foi bem-sucedida. Se algumas entidades falharem, o valor ainda será true. Verifique Results[].Success e Results[].ErrorMessage para resultados individuais.

true

Results

array

A lista de resultados da criação de entidades. Cada entrada indica se a criação foi bem-sucedida e o motivo da falha.

MetaEntityWriteResult

O resultado da criação em lote.

Exemplos

Resposta de sucesso

JSON formato

{
  "RequestId": "9E0C8E7A-C6BE-5A73-9562-2A030A80E8C6",
  "Success": true,
  "Results": [
    {
      "Name": "entity_01",
      "EntityType": "custom_entity-demo",
      "Id": "custom_entity-demo:entity_01",
      "Success": true,
      "ErrorMessage": "The specified parameters are invalid."
    }
  ]
}

Códigos de erro

Consulte Códigos de Erro para uma lista completa.

Notas de versão

Consulte Notas de Versão para uma lista completa.