Atualiza uma entidade de metadados. Você pode atualizar entidades personalizadas ou objetos do tipo de tabela estendida, como bancos de dados, tabelas e colunas.
Descrição da operação
Você deve adquirir o DataWorks Professional Edition ou uma edição superior para usar esta operação.
Experimente agora
Testar
Autorização RAM
Sintaxe da solicitação
POST HTTP/1.1
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| Id |
string |
Sim |
O ID da entidade a ser atualizada. O nome da entidade, o tipo de entidade e a relação pai-filho são determinados pelo ID e não podem ser modificados usando esta operação. |
custom_entity-customer_api:api_001 |
| Comment |
string |
Não |
O comentário sobre a entidade. |
this is a comment |
| Attributes |
object |
Não |
Os atributos da entidade. Valores complexos devem ser serializados em uma string JSON. |
[] |
|
string |
Não |
The value of the entity attribute. |
value |
|
| CustomAttributes |
object |
Não |
Os valores de atributos personalizados. Cada chave especifica um atributo personalizado, e seu valor é uma matriz que pode conter no máximo um item. Para excluir um valor de atributo, forneça uma matriz vazia. |
[] |
|
array |
Não |
An array of custom attribute values. Currently, only single-value arrays are supported. |
||
|
string |
Não |
The custom attribute value. |
张三 |
Entidades personalizadas
Para entidades personalizadas, defina EntityType como custom_entity-<name>. Você pode atualizar os seguintes itens:
| Campo | Suportado | Descrição |
Comment | Sim | Atualiza o comentário da entidade. |
Attributes | Sim | A chave deve ser definida no MetaEntityDef.AttributeDefs correspondente. Fornecer uma chave desconhecida retorna um erro. |
CustomAttributes | Sim | A chave deve ser um atributo personalizado que se aplica a este tipo de entidade. |
Regras de atributos
| Item | Descrição |
| Semântica de atualização | Esta é uma operação de patch. Apenas as chaves fornecidas na solicitação são atualizadas. Os atributos existentes são mantidos. |
| Excluir atributo | Para excluir um atributo, defina seu valor como null. Isso remove a chave dos attributes da entidade. |
| Atributo obrigatório | O sistema retorna um erro se você tentar excluir ou limpar um atributo obrigatório. |
| Atributo ENUM | O valor deve ser um dos valores permitidos definidos em AttributeDef.AllowedValues. |
| Atributo DATE | O valor deve ser um carimbo de data/hora em milissegundos. |
| Atributo ARRAY/JSON | O valor deve ser fornecido como uma string JSON porque a API aceita todos os parâmetros como strings. |
Exemplo:
{
"Comment": "Entidade personalizada atualizada",
"Attributes": {
"level": "L2",
"profile": "{\"owner\":\"data_team\"}"
},
"CustomAttributes": {
"biz_owner": ["data_team"]
}
}
```.
## Objeto de banco de dados do tipo de tabela estendida
Aplica-se a `custom_<name>-database`.
| Chave de Attributes | Suportado | Tipo/formato | Descrição |
| --- | --- | --- | --- |
| `technicalMetadata.location` | Sim | String | Atualiza o local de armazenamento do banco de dados. Isso corresponde ao campo `location` no Elasticsearch. |
| `parentMetaEntityId` | Não | \- | A relação pai-filho não pode ser atualizada. Fornecer esta chave retorna um erro. |
| Outras chaves | Não | \- | Para uma entidade compartilhada, atualizar chaves que não estão na lista de permissões retorna um erro. |.
## Objeto de tabela do tipo de tabela estendida
Aplica-se a `custom_<name>-table`.
| Chave de Attributes | Suportado | Tipo/formato | Descrição |
| --- | --- | --- | --- |
| `tableType` | Sim | String | Atualiza o tipo de tabela. |
| `partitionKeys` | Sim | String de matriz JSON ou String | Se você fornecer uma matriz, o sistema une os itens com vírgulas para criar a string final. Por exemplo, `["dt","hh"]` se torna `dt,hh`. |
| `technicalMetadata.owner` | Sim | String | Atualiza o proprietário. |
| `technicalMetadata.location` | Sim | String | Atualiza o local de armazenamento. |
| `technicalMetadata.compressed` | Sim | Booleano | Suporta `true` e `false`. |
| `technicalMetadata.inputFormat` | Sim | String | Atualiza o InputFormat. |
| `technicalMetadata.outputFormat` | Sim | String | Atualiza o OutputFormat. |
| `technicalMetadata.serializationLibrary` | Sim | String | Atualiza a classe SerDe. |
| `technicalMetadata.parameters` | Sim | String de objeto JSON ou String | Se você fornecer um objeto JSON, o sistema o serializa em uma string e o grava no atributo `parameters`. |
| `parentMetaEntityId` | Não | \- | O banco de dados pai não pode ser atualizado. Fornecer esta chave retorna um erro. |
| `columns` | Não | \- | Você não pode modificar a lista de colunas usando a operação `UpdateMetaEntity`. Em vez disso, atualize cada entidade de coluna individualmente. |
| Outras chaves | Não | \- | Para uma entidade compartilhada, atualizar chaves que não estão na lista de permissões retorna um erro. |
Exemplo:
```json
{
"Comment": "Descrição da tabela atualizada",
"Attributes": {
"tableType": "VIEW",
"partitionKeys": "[\"dt\"]",
"technicalMetadata.location": "oss://bucket/ods/order_fact",
"technicalMetadata.compressed": "true",
"technicalMetadata.parameters": "{\"retention\":\"30\"}"
},
"CustomAttributes": {
"biz_owner": ["data_team"]
}
}
```.
## Objeto de coluna do tipo de tabela estendida
Aplica-se a `custom_<name>-column`.
| Chave de Attributes | Suportado | Tipo/formato | Descrição |
| --- | --- | --- | --- |
| `type` | Sim | String | Atualiza o tipo de coluna. |
| `position` | Sim | Inteiro | Atualiza a posição da coluna. |
| `partitionKey` | Sim | Booleano | Define se a coluna é uma chave de partição. Isso corresponde ao campo `isPartitionKey` no Elasticsearch. |
| `primaryKey` | Sim | Booleano | Define se a coluna é uma chave primária. Isso corresponde ao campo `isPrimaryKey` no Elasticsearch. |
| `foreignKey` | Sim | Booleano | Define se a coluna é uma chave estrangeira. Isso corresponde ao campo `isForeignKey` no Elasticsearch. |
| `parentMetaEntityId` | Não | \- | A tabela pai não pode ser atualizada. Fornecer esta chave retorna um erro. |
| Outras chaves | Não | \- | Para uma entidade compartilhada, atualizar chaves que não estão na lista de permissões retorna um erro. |
A solicitação falhará se a tabela pai não existir, não pertencer ao locatário atual ou não tiver colunas embutidas.
Exemplo:
```json
{
"Comment": "ID do pedido",
"Attributes": {
"type": "BIGINT",
"position": "1",
"primaryKey": "true"
},
"CustomAttributes": {
"security_level": ["P1"]
}
}
```.
## Operações não suportadas
| Item | Conclusão |
| --- | --- |
| Modificar nome da entidade | Não suportado. O nome é derivado do `Id`. |
| Modificar EntityType | Não suportado. O tipo é derivado do `Id`. |
| Modificar entidade pai | Não suportado. Fornecer `attributes.parentMetaEntityId` retorna um erro. |
| Modificar lista de colunas | Não suportado. Fornecer `attributes.columns` retorna um erro. |
| Criar novas colunas | Não suportado. Para adicionar colunas a uma tabela estendida, especifique-as no parâmetro `Attributes.columns` ao criar a tabela usando a operação `BatchCreateMetaEntities`. |.
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
Os dados retornados na resposta. |
||
| RequestId |
string |
O ID da solicitação. |
AASFDFSDFG-DFSDF-DFSDFD-SDFSDF |
| Success |
boolean |
Indica se a solicitação foi bem-sucedida. |
true |
| Result |
object |
O resultado da operação de atualização. |
|
| Id |
string |
O ID da entidade. |
custom_entity-customer_api:api_001 |
| Success |
boolean |
Indica se a atualização foi bem-sucedida. |
true |
Exemplos
Resposta de sucesso
JSON formato
{
"RequestId": "AASFDFSDFG-DFSDF-DFSDFD-SDFSDF",
"Success": true,
"Result": {
"Id": "custom_entity-customer_api:api_001",
"Success": true
}
}
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.