Atualiza o local do arquivo de metadados de uma tabela especificada.
Notas de uso
Aponta a tabela para um novo arquivo de metadados, permitindo a evolução do schema e commits de dados.
Requer o
versionTokenatual para bloqueio otimista, garantindo consistência durante atualizações simultâneas.Obtenha o
versionTokenchamando a operaçãoGetTableMetadataLocationouGetTable.O novo
metadataLocationdeve apontar para um arquivo JSON de metadados Iceberg válido.
Permissões
|
API |
Action |
Descrição |
|
UpdateTableMetadataLocation |
oss:UpdateTableMetadataLocation |
Atualize o local dos metadados de uma tabela. Esta operação também verifica a política da tabela. |
Sintaxe da requisição
PUT /tables/{tableBucketARN}/{namespace}/{name}/metadata-location HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
{
"versionToken": "string",
"metadataLocation": "string"
}
Parâmetros da requisição
|
Parâmetro |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
tableBucketARN |
String |
Sim |
acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket |
ARN do bucket da tabela. Formato: |
|
namespace |
String |
Sim |
my_namespace |
Nome do namespace da tabela. Este parâmetro está na URI. |
|
name |
String |
Sim |
my_table |
Nome da tabela. Este parâmetro está na URI. |
|
versionToken |
String |
Sim |
aaabbb |
Token de versão atual para bloqueio otimista. Obtenha este token chamando a operação |
|
metadataLocation |
String |
Sim |
oss://data-bucket/metadata/00001-xxx.metadata.json |
Caminho OSS para o novo arquivo de metadados. Deve apontar para um arquivo JSON de metadados Iceberg válido. Este parâmetro está no corpo da requisição. |
Parâmetros de resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
metadataLocation |
String |
oss://bucket/metadata/00000-xxx.metadata.json |
Caminho OSS atualizado do arquivo de metadados. |
|
name |
String |
my_table |
Nome da tabela. |
|
namespace |
Array |
- |
Namespace da tabela, retornado como array. |
|
tableARN |
String |
acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket/table/table-id |
ARN da tabela. |
|
versionToken |
String |
abc123def456 |
Token de versão atualizado. |
Exemplos
Exemplo de requisição
PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace/my_table/metadata-location HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: Thu, 10 Apr 2025 08:00:00 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/osstables/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c****
{
"versionToken": "aaabbb",
"metadataLocation": "oss://data-bucket/metadata/00001-xxx.metadata.json"
}
Exemplo de resposta
HTTP/1.1 200 OK
Server: AliyunOSS
x-oss-request-id: 5C06A3B67B8B5A3DA422****
x-oss-server-time: 3
Content-Type: application/json
{
"metadataLocation": "oss://data-bucket/metadata/00001-xxx.metadata.json",
"name": "my_table",
"namespace": ["my_namespace"],
"tableARN": "acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket/table/table_id",
"versionToken": "cccbbb"
}
SDKs
Os SDKs a seguir suportam a operação UpdateTableMetadataLocation:
ossutil CLI
Para obter o comando correspondente do ossutil, consulte update-table-metadata-location.
Códigos de erro
|
Código de erro |
Código de status HTTP |
Descrição |
|
BadRequestException |
400 |
A requisição é inválida ou malformada. |
|
ForbiddenException |
403 |
O chamador não tem as permissões necessárias para executar esta operação. |
|
NotFoundException |
404 |
O recurso solicitado não existe. |
|
ConflictException |
409 |
A requisição entra em conflito com uma operação de gravação anterior. |