指定されたテーブルのメタデータファイルの場所を更新します。
注意事項
この操作を使用して、テーブルを新しいメタデータファイルにポイントできます。これにより、スキーマ進化やデータコミットなどの操作が可能になります。
楽観的ロックを実装し、同時更新時の整合性を確保するには、現在の
versionTokenを提供する必要があります。versionTokenは、GetTableMetadataLocation操作またはGetTable操作を呼び出すことで取得できます。新しい
metadataLocationは、有効な Iceberg メタデータ JSON ファイルを指している必要があります。
権限
API | アクション | 説明 |
UpdateTableMetadataLocation | oss:UpdateTableMetadataLocation | テーブルのメタデータの場所を更新します。この操作では、テーブルポリシーもチェックされます。 |
リクエスト構文
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"
}リクエストパラメーター
パラメーター | タイプ | 必須 | 例 | 説明 |
tableBucketARN | String | はい | acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket | テーブルのバケットの ARN。形式: |
namespace | String | はい | my_namespace | テーブルの名前空間の名前。このパラメーターは URI 内にあります。 |
name | String | はい | my_table | テーブルの名前。このパラメーターは URI 内にあります。 |
versionToken | String | はい | aaabbb | 現在のバージョンのトークンで、楽観的ロックに使用されます。 |
metadataLocation | String | はい | oss://data-bucket/metadata/00001-xxx.metadata.json | 新しいメタデータファイルの OSS パス。これは有効な Iceberg メタデータ JSON ファイルを指している必要があります。このパラメーターはリクエストボディ内にあります。 |
応答パラメーター
パラメーター | タイプ | 例 | 説明 |
metadataLocation | String | oss://bucket/metadata/00000-xxx.metadata.json | 更新されたメタデータファイルの OSS パス。 |
name | String | my_table | テーブルの名前。 |
namespace | Array | - | テーブルの名前空間の名前を含む配列。 |
tableARN | String | acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket/table/table-id | テーブルの ARN。 |
versionToken | String | abc123def456 | 更新されたバージョントークン。 |
使用例
リクエスト例
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"
}レスポンス例
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"
}SDK
以下の SDK は UpdateTableMetadataLocation 操作をサポートしています。
ossutil CLI
対応する ossutil コマンドについては、「update-table-metadata-location」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
BadRequestException | 400 | リクエストが無効または不正な形式です。 |
ForbiddenException | 403 | 呼び出し元にこの操作を実行するための必要な権限がありません。 |
NotFoundException | 404 | 要求されたリソースが存在しません。 |
ConflictException | 409 | リクエストが以前の書き込み操作と競合しています。 |