调用PutTableMaintenanceConfiguration接口设置指定表的自动维护配置。支持的维护类型(type):icebergCompaction(Iceberg表压缩,将小文件合并为大文件以提升查询性能)和icebergSnapshotManagement(Iceberg快照管理,自动清理过期快照以减少存储开销)。
注意事项
-
每次调用只能设置一种维护类型的配置。
权限说明
|
API |
Action |
说明 |
|
PutTableMaintenanceConfiguration |
oss:PutTableMaintenanceConfiguration |
设置表维护配置(同时检查Table Policy) |
请求语法
PUT /tables/{tableBucketARN}/{namespace}/{name}/maintenance/{type} HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
{
"value": {
"status": "string",
"settings": {
"icebergCompaction": {
"targetFileSizeMB": number,
"strategy": "string"
}
}
}
}
请求参数
|
名称 |
数据类型 |
是否必选 |
示例值 |
描述 |
|
tableBucketARN |
字符串 |
是 |
acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket |
Table Bucket的ARN,格式为acs:osstables:{region}:{uid}:bucket/{bucketName}。位于URI中。 |
|
namespace |
字符串 |
是 |
my_namespace |
表所在的命名空间名称。位于URI中。 |
|
name |
字符串 |
是 |
my_table |
表名称。位于URI中。 |
|
type |
字符串 |
是 |
icebergCompaction |
维护类型,取值为icebergCompaction(Iceberg表压缩)或icebergSnapshotManagement(Iceberg快照管理)。位于URI中。 |
|
value |
容器 |
是 |
- |
维护配置值。位于请求体中。 父节点:无 子节点:status, settings |
|
status |
字符串 |
否 |
enabled |
启用状态,取值 enabled 或 disabled。 父节点:value |
|
settings |
容器 |
否 |
- |
配置参数对象。 父节点:value 子节点:icebergCompaction、icebergSnapshotManagement |
|
icebergCompaction |
容器 |
否 |
- |
Iceberg 表压缩的详细配置 父节点:settings 子节点:targetFileSizeMB、strategy |
|
targetFileSizeMB |
整型 |
否 |
100 |
压缩后的目标文件大小MB),取值范围 1-2147483647。 父节点:icebergCompaction |
|
strategy |
字符串 |
否 |
auto |
压缩策略,取值 auto/binpack/sort/z-order。 父节点:icebergCompaction |
|
icebergSnapshotManagement |
容器 |
否 |
- |
Iceberg 快照管理的详细配置 父节点:settings 子节点:minSnapshotsToKeepor、maxSnapshotAgeHours |
|
minSnapshotsToKeepor |
整型 |
否 |
3 |
最少保留快照数,取值范围 1-2147483647 父节点:icebergSnapshotManagement |
|
maxSnapshotAgeHours |
整型 |
否 |
72 |
快照最大保留时间(小时),取值范围 1-2147483647 父节点:icebergSnapshotManagement |
示例
示例1:设置压缩配置(icebergCompaction)
请求示例
PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace/my_table/maintenance/icebergCompaction 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****
{
"value": {
"status": "enabled",
"settings": {
"icebergCompaction": {
"targetFileSizeMB": 100,
"strategy": "auto"
}
}
}
}
返回示例
HTTP/1.1 204 No Content
Server: AliyunOSS
x-oss-request-id: 5C06A3B67B8B5A3DA422****
x-oss-server-time: 3
示例2:设置快照管理配置(icebergSnapshotManagement)
请求示例
PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace/my_table/maintenance/icebergSnapshotManagement 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****
{
"value": {
"status": "enabled",
"settings": {
"icebergSnapshotManagement": {
"minSnapshotsToKeep": 3,
"maxSnapshotAgeHours": 72
}
}
}
}
返回示例
HTTP/1.1 204 No Content
Server: AliyunOSS
x-oss-request-id: 5C06A3B67B8B5A3DA422****
x-oss-server-time: 3
SDK
PutTableMaintenanceConfiguration接口所对应的各语言SDK如下:
命令行工具ossutil
PutTableMaintenanceConfiguration接口所对应的ossutil命令,请参见put-table-maintenance-configuration。
错误码
|
错误码 |
HTTP状态码 |
描述 |
|
BadRequestException |
400 |
请求无效或格式错误。 |
|
ForbiddenException |
403 |
调用者无权执行此请求。 |
|
NotFoundException |
404 |
请求的资源不存在。 |