SubmitLanceTableCompactTask

更新时间:
复制 MD 格式

提交 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 并物化删除标记。仅在 materialize_deletions 为 true 时生效。默认值 0.1。取值为 0 时视为未设置并使用默认值;大于等于 1 时不因删除比例触发重写;小于 0 时所有 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 错误格式,通用错误码与错误响应结构见公共约定中的 错误响应格式。