分区
更新时间:2024-12-13
分区管理
PartitionInstance结构体
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
values | List<String> | 是 | 分区值 |
location | String | 否 | 分区位置绝对路径 |
createTime | String | 否 | 创建时间 |
properties | Map<String, String> | 否 | 自定义附加参数 |
authProperties | Map<String, String> | 否 | 安全认证信息 |
ListPartitions
接口说明
获取表分区列表信息
请求原型
GET /v1/database/${databaseName}/table/${tableName}/partition
请求参数
字段 | 类型 | 位置 | 是否必须 | 描述 |
---|---|---|---|---|
databaseName | String | URL | 是 | 数据库名 |
tableName | String | URL | 是 | 表名 |
pageNo | Integer | QueryString | 是 | 页码 |
pageSize | Integer | QueryString | 是 | 每页查询记录数 |
filter | String | QueryString | 否 | 查询条件表达式,如 ds>20201201 |
响应参数
名称 | 类型 | 描述 |
---|---|---|
partitions | List<PartitionInstance> | PartitionInstance实例结构体的列表 |
错误码
公有云标准错误返回码
Code | message | HTTP状态码 | 描述 |
---|---|---|---|
DatabaseNotFound | Database not found. | 404 | 数据库不存在 |
TableNotFound | Table not found. | 404 | 表不存在 |
InternalError | We encountered an internal error. Please try again. | 500 | 服务器内不错误 |
请求示例
GET /v1/database/db_01/table/tb_01/partition?pageNo=1&pageSize=10 HTTP/1.1
Host: edap.bj.baidubce.com
Content-Length: 0
响应示例
HTTP/1.1 200 OK
Content-Length: xxxx
Content-Type: application/json
{
"pageNo": 1,
"pageSize": 10,
"totalSize": 1,
"partitions": [
{
"values": [
"1",
"hangzhou"
],
"location": "bos://bucket/prefix",
"locationId": "loc1",
"properties": {
"p1": "v1"
},
"createTime": "2019-06-01T23:00:10Z"
}
]
}
ListPartitionNames
接口说明
获取表分区名称列表信息
请求原型
GET /v1/database/${databaseName}/table/${tableName}/partition?names
请求参数
字段 | 类型 | 位置 | 是否必须 | 描述 |
---|---|---|---|---|
databaseName | String | URL | 是 | 数据库名 |
tableName | String | URL | 是 | 表名 |
filter | String | QueryString | 否 | 查询条件表达式,如 ds>20201201 |
响应参数
名称 | 类型 | 描述 |
---|---|---|
names | List<String> | 分区名列表 |
错误码
公有云标准错误返回码
Code | message | HTTP状态码 | 描述 |
---|---|---|---|
DatabaseNotFound | Database not found. | 404 | 数据库不存在 |
TableNotFound | Table not found. | 404 | 表不存在 |
InternalError | We encountered an internal error. Please try again. | 500 | 服务器内不错误 |
请求示例
GET /v1/database/db_01/table/tb_01/partition?names HTTP/1.1
Host: edap.bj.baidubce.com
Content-Length: 0
响应示例
HTTP/1.1 200 OK
Content-Length: xxxx
Content-Type: application/json
{
"names": [
"id=1/age=12",
"id=2/age=11"
]
}
BatchGetPartitions
批量获取Table的分区信息
请求原型
POST /v1/database/${databaseName}/table/${tableName}/partition?batchGet
请求头域
除公共头域外,无其它特殊头域。
请求参数
名称 | 类型 | 位置 | 是否必须 | 描述 |
---|---|---|---|---|
databaseName | String | URL | 是 | 数据库名 |
tableName | String | URL | 是 | 表名 |
needAuthProperties | Boolean | QueryString | 否 | 是否需要返回安全认证信息, 默认false |
partitionValuesList | List<List<String>> | Body | 是 | 分区值信息 |
响应参数
名称 | 类型 | 描述 |
---|---|---|
partitions | List<PartitionInstance> | Partition实例结构体的列表,详建PartitionInstance结构体 |
错误码
公有云标准错误返回码
Code | message | HTTP状态码 | 描述 |
---|---|---|---|
BadRequest | Bad request, please check your request | 400 | 请求体规则校验错误 |
DatabaseNotFound | Database not found. | 404 | 数据库不存在 |
TableNotFound | Table not found. | 404 | 表不存在 |
PartitionNotFound | Partitionnot found. | 404 | 分区不存在 |
InternalError | We encountered an internal error. Please try again. | 500 | 服务器内不错误 |
请求示例
POST /v1/database/db_01/table/tb_01/partition?batchGet&needAuthProperties=true
Host: edap.bj.baidubce.com
Content-Length: xxxx
Content-Type: application/json
{
"partitionValuesList": [
{
"partitionValues": [
"1",
"hangzhou"
]
},
{
"partitionValues": [
"2",
"shanghai"
]
}
]
}
响应示例
HTTP/1.1 200 OK
Content-Length: xxxx
Content-Type: application/json
{
"partitions": [
{
"values": [
"1",
"hangzhou"
],
"location": "bos://bucket/prefix",
"properties": {
"p1": "v1"
},
"createTime": "2019-06-01T23:00:10Z",
"authProperties": {
"accessKey": "key1",
"secretKey": "key2",
"sessionTokenKey": "key3"
}
},
{
"values": [
"1",
"shanghai"
],
"location": "bos://bucket/shanghai",
"properties": {
"p1": "v1"
},
"createTime": "2019-06-01T23:00:11Z",
"authProperties": {
"accessKey": "key1",
"secretKey": "key2",
"sessionTokenKey": "key3"
}
}
]
}
BatchCreatePartitions
批量创建表格分区信息
请求原型
POST /v1/database/<database-name>/table/<table-name>/partition?batchCreate
请求头域
除公共头域外,无其它特殊头域。
请求参数
名称 | 类型 | 位置 | 是否必须 | 描述 |
---|---|---|---|---|
databaseName | String | URL | 是 | 数据库名 |
tableName | String | URL | 是 | 表名 |
partitions | List<PartitionInstance> | Body | 是 | 分区信息,详情参见PartitionInstance结构体 |
响应参数
无
错误码
公有云标准错误返回码
Code | message | HTTP状态码 | 描述 |
---|---|---|---|
BadRequest | Bad request, please check your request | 400 | 请求体规则校验错误 |
DatabaseNotFound | Database not found. | 404 | 数据库不存在 |
TableNotFound | Table not found. | 404 | 表不存在 |
PartitionAlreadyExist | Partitionalready exist. | 409 | 分区已存在 |
InternalError | We encountered an internal error. Please try again. | 500 | 服务器内不错误 |
请求示例
POST /v1/database/db_01/table/tb_01/partition?batchCreate
Host: edap.bj.baidubce.com
Content-Length: xxxx
Content-Type: application/json
{
"partitions": [
{
"values": [
"1",
"hangzhou"
],
"location": "bos://bucket/hangzhou",
"properties": {
"p1": "v1"
}
},
{
"values": [
"2",
"guiyang"
],
"location": "bos://bucket/guiyang",
"properties": {
"p1": "v1"
}
}
]
}{
"partitions": [
{
"values": [
"1",
"hangzhou"
],
"location": "bos://bucket/hangzhou",
"properties": {
"p1": "v1"
}
},
{
"values": [
"2",
"guiyang"
],
"location": "bos://bucket/guiyang",
"properties": {
"p1": "v1"
}
}
]
}
响应示例
HTTP/1.1 204 No Content
Content-Length: 0
BatchAlterPartitions
批量修改分区信息
请求原型
PUT /v1/database/<databaseName>/table/<tableName>/partition?batchAlter
请求头域
除公共头域外,无其它特殊头域。
请求参数
名称 | 类型 | 位置 | 是否必须 | 描述 |
---|---|---|---|---|
databaseName | String | URL | 是 | 数据库名 |
tableName | String | URL | 是 | 表名 |
partitions | List<PartitionInstance> | Body | 是 | 分区信息,详情参见PartitionInstance结构体 |
响应参数
无
错误码
公有云标准错误返回码
Code | message | HTTP状态码 | 描述 |
---|---|---|---|
BadRequest | Bad request, please check your request | 400 | 请求体规则校验错误 |
DatabaseNotFound | Database not found. | 404 | 数据库不存在 |
TableNotFound | Table not found. | 404 | 表不存在 |
PartitionNotFound | Partitionnot found. | 404 | 分区不存在 |
InternalError | We encountered an internal error. Please try again. | 500 | 服务器内不错误 |
请求示例
PUT /v1/database/db_01/table/tb_01/partition?batchAlter
Host: edap.bj.baidubce.com
Content-Length: xxxx
Content-Type: application/json
{
"partitions": [
{
"values": [
"1",
"hangzhou"
],
"location": "bos://bucket/hangzhou",
"properties": {
"p1": "v1"
}
},
{
"values": [
"2",
"guiyang"
],
"location": "bos://bucket/guiyang",
"properties": {
"p1": "v1"
}
}
]
}
响应示例
HTTP/1.1 204 No Content
Content-Length: 0
BatchDropPartitions
批量删除分区
请求原型
POST /v1/database/${databaseName}/table/${tableName}/partition?batchDrop
请求头域
除公共头域外,无其它特殊头域。
请求参数
名称 | 类型 | 位置 | 是否必须 | 描述 |
---|---|---|---|---|
databaseName | String | URL | 是 | 数据库名 |
tableName | String | URL | 是 | 表名 |
partitionValuesList | List<List<String>> | Body | 是 | 分区值信息 |
响应参数
无
错误码
公有云标准错误返回码
Code | message | HTTP状态码 | 描述 |
---|---|---|---|
BadRequest | Bad request, please check your request | 400 | 请求体规则校验错误 |
DatabaseNotFound | Database not found. | 404 | 数据库不存在 |
TableNotFound | Table not found. | 404 | 表不存在 |
PartitionNotFound | Partitionnot found. | 404 | 分区不存在 |
InternalError | We encountered an internal error. Please try again. | 500 | 服务器内不错误 |
请求示例
POST /v1/database/db_01/table/tb_01/partition?batchDrop
Host: edap.bj.baidubce.com
Content-Length: xxxx
Content-Type: application/json
{
"partitionValuesList": [
{
"partitionValues": [
"1",
"hangzhou"
]
},
{
"partitionValues": [
"2",
"shanghai"
]
}
]
}
响应示例
HTTP/1.1 204 No Content
Content-Length: 0
RenamePartition
重命名表分区。
请求原型
POST /v1/database/<database-name>/table/<table-name>/partition?rename
请求头域
除公共头域外,无其它特殊头域。
请求参数
名称 | 类型 | 参数位置 | 是否必填 | 描述 |
---|---|---|---|---|
database | String | URL | 是 | 数据库名 |
tableName | String | URL | 是 | 表名 |
partitionValues | List<String> | Body | 是 | 旧的分区值 |
newPartition | PartitionInstance | Body | 是 | 新分区 |
响应参数
无
错误码
公有云标准错误返回码
Code | message | HTTP状态码 | 描述 |
---|---|---|---|
BadRequest | Bad request, please check your request | 400 | 请求体规则校验错误 |
DatabaseNotFound | Database not found. | 404 | 数据库不存在 |
TableNotFound | Table not found. | 404 | 表不存在 |
PartitionNotFound | Partitionnot found. | 404 | 分区不存在 |
InternalError | We encountered an internal error. Please try again. | 500 | 服务器内不错误 |
请求示例
POST /v1/database/db_01/table/tb_01/partition?rename
Host: edap.bj.baidubce.com
Content-Length: xxxx
Content-Type: application/json
{
"database": "db_01",
"table": "tb_01",
"partitionValues": [
"2022-04-18"
],
"newPartition": {
"partitionValues": [
"2022-04-19"
],
"location": "bos://bucket/prefix",
"properties": {
"p1": "v1"
}
}
}
响应示例
HTTP/1.1 200 OK
Content-Length: xxxx
Content-Type: application/json