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
Testar
Autorização RAM
|
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:
|
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 atributo | Obrigatório | Tipo/Formato | Descrição |
parentMetaEntityId | Sim | String | O ID da instância pai. Deve estar no nível da instância e não pode conter catalog/database/schema/table/column. |
technicalMetadata.location | Não | String | O 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 atributo | Obrigatório | Tipo/Formato | Descrição |
parentMetaEntityId | Sim | String | O ID do banco de dados pai. Deve estar no nível do banco de dados. |
tableType | Não | String | O tipo da tabela. Valor padrão: TABLE. |
partitionKeys | Não | String de array JSON | As chaves de partição, como ["dt"]. |
technicalMetadata.location | Não | String | O local de armazenamento. |
technicalMetadata.compressed | Não | String booleana ou booleano JSON | Especifica se os dados estão compactados. |
technicalMetadata.inputFormat | Não | String | O InputFormat. |
technicalMetadata.outputFormat | Não | String | O OutputFormat. |
technicalMetadata.serializationLibrary | Não | String | A classe SerDe. |
technicalMetadata.parameters | Não | String de objeto JSON | As informações de parâmetro, como {"retention":"30"}. |
columns | Não | String de array JSON | A 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 coluna | Obrigatório | Tipo/Formato | Descrição |
name | Sim | String | O nome da coluna. Se estiver vazio, a coluna será ignorada. |
type | Sim | String | O tipo da coluna. Se estiver ausente, um erro attributes.columns[i].type será relatado. |
comment | Não | String | O comentário da coluna. |
position | Não | Inteiro | A posição da coluna. Se não for especificada, o valor padrão será i + 1 com base na ordem do array. |
partitionKey | Não | Booleano | Especifica se a coluna é uma chave de partição. |
primaryKey | Não | Booleano | Especifica se a coluna é uma chave primária. |
customAttributes | Não | Objeto | Os 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
parentMetaEntityIdde um banco de dados de extensão deve estar no nível da instância, comocustom_demo:demo_source.O
parentMetaEntityIdde uma tabela de extensão deve estar no nível do banco de dados, comocustom_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-tabledeve sercustom_demo-database.columnssó pode ser fornecido ao criar uma tabela. Você não pode usarBatchCreateMetaEntitiespara criar independentementecustom_xxx-column.O caminho de gravação da entidade de extensão não bloqueia estritamente chaves
Attributesdesconhecidas com base emMetaEntityDef.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.