提交 Lance 表数据文件合并任务。Body 为空或 {} 均被允许,将使用默认参数。
权限说明
|
API |
Action |
说明 |
|
SubmitLanceTableCompactTask |
oss:PutTableMaintenanceConfiguration |
提交表 Compact 任务。 |
请求语法
POST /lance/oss/v1/table/{id}/compact HTTP/1.1
Host: {tableBucketHost}
Date: GMT Date
Authorization: SignatureValue
Content-Type: application/json
{
"target_rows_per_fragment": 1048576,
"materialize_deletions": true,
"materialize_deletions_threshold": 0.1,
"max_rows_per_group": 1024,
"max_bytes_per_file": 0,
"compaction_mode": "reencode"
}
请求参数
接口的公共约定(访问地址、表标识、请求与响应头、权限、异步提交与额度、任务状态、错误码)请参见 Lance 表维护。
|
参数 |
位置 |
数据类型 |
是否必须 |
描述 |
|
target_rows_per_fragment |
body |
int64 |
否 |
合并后每个 fragment 的目标行数。默认值 1048576,必须大于 0。 |
|
materialize_deletions |
body |
boolean |
否 |
是否将删除标记物化到数据文件。默认值 true。 |
|
materialize_deletions_threshold |
body |
double |
否 |
fragment 中已删除行的占比超过该值时,压缩重写该 fragment 并物化删除标记。仅在 |
|
max_rows_per_group |
body |
int64 |
否 |
每个 row group 的最大行数。默认值 1024,必须大于 0。 |
|
max_bytes_per_file |
body |
int64 |
否 |
合并后单个文件的最大字节数(软阈值)。默认值 0,表示不指定,使用系统默认值 90 GiB;取值为正整数时按该值限制。 |
|
compaction_mode |
body |
string |
否 |
压缩模式。默认值为服务端当前默认值,初始为 reencode。允许 reencode、try_binary_copy、force_binary_copy,区分大小写。 |
compaction_mode 说明
未指定 compaction_mode 时,每次请求读取服务端当前默认值;显式提供合法值时以请求为准。空字符串不是合法模式。实际生效值会写入 params,可通过 GetLanceTaskStatus 查询。服务端默认模式配置非法时返回 500 / InternalError / 18。
响应
HTTP/1.1 200 OK
Content-Type: application/json
x-oss-table-id: {table_id}
{
"task_id": "123xxxxxxxxxxxxx",
"status": "submitted"
}
task_id 为新任务 ID,status 为初始状态。查询时对应 task_type=lance_compact。
错误码
本接口使用 Lance 统一 JSON 错误格式,通用错误码与错误响应结构见公共约定中的 错误响应格式。