表操作接口
更新时间:2024-10-11
创建表CreateTable
描述
在指定instance下创建一张表,表名限制字符个数1-255,满足正则:[a-zA-Z_][a-za-z0-9\_]{0,254},以字母或下划线开头。
建表是一个异步流程,提交建表请求成功后,用户需要调用获取表状态的API接口,当表状态为Normal后方可使用此表。
请求
Verb | URI |
---|---|
PUT | /v{version}/instance/{instanceName}/table/{tableName} |
请求参数
参数名称 | 是否必须 | 参数类型 | 说明 |
---|---|---|---|
tableVersion | 否 | int64 | 建表时固定传0,非0值代表更新表信息。如果不传body,默认为建表 |
compressType | 否 | string | 数据压缩方式,可取以下值: - "NONE" : 不压缩 - "SNAPPY_ALL" : 使用snappy压缩 默认为"NONE",即不压缩 开启压缩后,读取数据时后台需要解压,读延时将会增加 |
ttl | 否 | int | 数据过期时间,为0时永不过期,单位秒。默认为0,即永不过期 |
storageType | 否 | string | 表存储类型,仅支持HighPerformance和CommonPerformance两种,若无此参数则默认使用Instance中定义的表存储类型 |
maxVersions | 否 | int | 最多保留版本数,取值范围[1, 50000] |
响应参数
无
错误码
http_code | code | 说明 |
---|---|---|
202 | - | 请求被接受,后端异步处理建表,将在一分钟内创建成功 |
401 | AuthenticationFailed | 认证失败 |
400 | InvalidURI | URI非法 |
405 | MethodNotAllowed | 传递了不支持的HTTP方法 |
400 | InvalidContentType | 请求头域Content-Type是不支持的类型 |
400 | InvalidAutherization | 请求头域Autherization没有传递 |
400 | EmptyDate | 请求头域Date或x-bce-date都没有传递 |
400 | InvalidContentLength | 请求头域Content-Length没有传递 |
400 | ContentLengthMismatchBodySize | 请求头域的Content-Length和实际Request body大小不等 |
400 | MalformedJSON | 请求体传递的json无法解析 |
500 | InternalError | 服务内部错误,需联系技术人员解决 |
404 | InstanceNotExist | Instance不存在 |
403 | AccessDenied | 请求了不属于自己创建的Instance |
403 | ReachMaxTableCount | 达到一个instance下可建立table数量上限128个 |
400 | InvalidInstanceName | Instance名称不合法 |
400 | InvalidTableName | Table名称不合法 |
409 | TableAlreadyExist | Table已存在 |
403 | InstanceCreating | 实例创建中,请稍候 |
403 | AccountOverdue | 账号欠费,请充值后访问 |
请求示例
PUT /v1/instance/ins1/table/table1 HTTP/1.1
HOST: bts.bd.baidubce.com
Authorization: bce-auth-v1/table-access-key/2018-05-24T13:41:13Z/1800/x-bce-date/{signature}
Content-Type: application/json
Content-Length: {payloadSizeBytes}
x-bce-date: 2018-05-24T13:41:13Z
{
"tableVersion": 0
}
响应示例
HTTP/1.1 202 Accepted
Date: Sat, 18 Aug 2018 18:18:18 GMT
Content-Type: application/json; charset=utf-8
Content-Length: {payloadSizeBytes}
x-bce-request-id: 7869616F-7A68-6977-656E-406261696475
{}
更新表UpdateTable
描述
更新一张表的指定信息。
请求
Verb | URI |
---|---|
PUT | /v{version}/instance/{instanceName}/table/{tableName} |
请求参数
参数名称 | 是否必须 | 参数类型 | 说明 |
---|---|---|---|
tableVersion | 是 | int64 | 必须先通过GET 获取表的版本信息后,再带入此次请求 |
compressType | 否 | string | 数据压缩方式,默认为不压缩,可取以下值: - "NONE" : 不压缩 - "SNAPPY_ALL" : 使用snappy压缩 |
ttl | 否 | int | 数据过期时间,为0时永不过期,默认永不过期,单位秒 |
maxVersions | 否 | int | 最多保留版本数,取值范围[1, 50000] |
注意
- 更新表不允许修改表的名称(tableName);
- 请求必须携带ttl,maxVersions和compressType中至少一个字段,否则返回400;
- UpdateTable的最小时间间隔为 2 分钟,如果本次 UpdateTable 操作距上次不到 2 分钟将被拒绝,返回503。
响应参数
无
错误码
http_code | code | 说明 |
---|---|---|
202 | - | 请求被接受,后端异步处理更新表,将在一分钟内更新成功 |
401 | AuthenticationFailed | 认证失败 |
400 | InvalidURI | URI非法 |
405 | MethodNotAllowed | 传递了不支持的HTTP方法 |
400 | InvalidContentType | 请求头域Content-Type是不支持的类型 |
400 | InvalidAutherization | 请求头域Autherization没有传递 |
400 | EmptyDate | 请求头域Date或x-bce-date都没有传递 |
400 | InvalidContentLength | 请求头域Content-Length没有传递 |
400 | ContentLengthMismatchBodySize | 请求头域的Content-Length和实际Request body大小不等 |
400 | MalformedJSON | 请求体传递的json无法解析 |
503 | ServerBusy | UpdateTable操作过于频繁 |
500 | InternalError | 服务内部错误,需联系技术人员解决 |
404 | InstanceNotExist | Instance不存在 |
404 | TableNotExist | Table不存在 |
403 | AccessDenied | 请求了不属于自己创建的Instance |
400 | InvalidInstanceName | Instance名称不合法 |
400 | InvalidTableName | Table名称不合法 |
400 | InvalidTableVersion | tableVersion参数不匹配,需要重新获取表信息后再发送该请求 |
403 | InstanceCreating | 实例创建中,请稍候 |
403 | AccountOverdue | 账号欠费,请充值后访问 |
请求示例
PUT /v1/instance/ins1/table/table1 HTTP/1.1
HOST: bts.bd.baidubce.com
Authorization: bce-auth-v1/table-access-key/2018-05-24T13:41:13Z/1800/x-bce-date/{signature}
Content-Type: application/json
Content-Length: {payloadSizeBytes}
x-bce-date: 2018-05-24T13:41:13Z
{
"tableVersion": 1534587498000000,
"ttl": 86400
}
响应示例
HTTP/1.1 202 Accepted
Date: Sat, 18 Aug 2018 18:18:18 GMT
Content-Type: application/json; charset=utf-8
Content-Length: {payloadSizeBytes}
x-bce-request-id: 7869616F-7A68-6977-656E-406261696475
{}
删除表DropTable
描述
删除一张表
请求
Verb | URI |
---|---|
DELETE | /v{version}/instance/{instanceName}/table/{tableName} |
请求参数
无
响应参数
无
错误码
http_code | code | 说明 |
---|---|---|
20x | - | 返回20x类表示请求处理完成 |
401 | AuthenticationFailed | 认证失败 |
400 | InvalidURI | URI非法 |
405 | MethodNotAllowed | 传递了不支持的HTTP方法 |
400 | InvalidContentType | 请求头域Content-Type是不支持的类型 |
400 | InvalidAutherization | 请求头域Autherization没有传递 |
400 | EmptyDate | 请求头域Date或x-bce-date都没有传递 |
400 | InvalidContentLength | 请求头域Content-Length没有传递 |
400 | ContentLengthMismatchBodySize | 请求头域的Content-Length和实际Request body大小不等 |
400 | MalformedJSON | 请求体传递的json无法解析 |
500 | InternalError | 服务内部错误,需联系技术人员解决 |
404 | InstanceNotExist | Instance不存在 |
404 | TableNotExist | Table不存在 |
403 | AccessDenied | 请求了不属于自己创建的Instance |
400 | InvalidInstanceName | Instance名称不合法 |
400 | InvalidTableName | Table名称不合法 |
403 | InstanceCreating | 实例创建中,请稍候 |
403 | AccountOverdue | 账号欠费,请充值后访问 |
请求示例
DELETE /v1/instance/ins1/table/table1 HTTP/1.1
HOST: bts.bd.baidubce.com
Authorization: bce-auth-v1/table-access-key/2018-05-24T13:41:13Z/1800/x-bce-date/{signature}
Content-Type: application/json
Content-Length: {payloadSizeBytes}
x-bce-date: 2018-05-24T13:41:13Z
响应示例
HTTP/1.1 200 OK
Date: Sat, 18 Aug 2018 18:18:18 GMT
Content-Type: application/json; charset=utf-8
Content-Length: {payloadSizeBytes}
x-bce-request-id: 7869616F-7A68-6977-656E-406261696475
{}
显示表信息ShowTable
描述
查询表信息。
请求
Verb | URI |
---|---|
GET | /v{version}/instance/{instanceName}/table/{tableName}[?onlyState] |
请求头:x-bce-if-none-match 响应头:ETag
请求参数
参数名称 | 是否必须 | 参数类型 | 说明 |
---|---|---|---|
onlyState | 否 | 无值 | 只要query中有此字段,响应只会反回tableState字段,否则会全额反回。 主要用于建表成功后轮询状态使用 。 |
响应参数
参数名称 | 参数类型 | 说明 |
---|---|---|
instance | string | 属于哪个实例 |
tableName | string | 表名称 |
tableState | string | 表状态信息,有如下取值: - Normal:表状态正常,可正常读写 - Creating:表正在创建中 - Updating:表正在更新中 - Dropping:表正在被删除 |
tableVersion | int64 | 当前table版本号,值是最后一次更新的微秒级时间戳 |
createTime | string | 表创建的UTC时间 |
compressType | string | 数据压缩方式,默认为不压缩,可取以下值: - "NONE" : 不压缩 -"SNAPPY_ALL" : 使用snappy压缩 |
ttl | int | 数据过期时间,为0时永不过期,默认永不过期,单位秒 |
storageType | string | 表存储类型 |
maxVersions | int | 最多保留版本数,取值范围[1, 50000] |
错误码
http_code | code | 说明 |
---|---|---|
200 | - | 请求成功 |
401 | AuthenticationFailed | 认证失败 |
400 | InvalidURI | URI非法 |
405 | MethodNotAllowed | 传递了不支持的HTTP方法 |
400 | InvalidContentType | 请求头域Content-Type是不支持的类型 |
400 | InvalidAutherization | 请求头域Autherization没有传递 |
400 | EmptyDate | 请求头域Date或x-bce-date都没有传递 |
400 | InvalidContentLength | 请求头域Content-Length没有传递 |
400 | ContentLengthMismatchBodySize | 请求头域的Content-Length和实际Request body大小不等 |
400 | MalformedJSON | 请求体传递的json无法解析 |
500 | InternalError | 服务内部错误,需联系技术人员解决 |
404 | InstanceNotExist | Instance不存在 |
404 | TableNotExist | Table不存在 |
403 | AccessDenied | 请求了不属于自己创建的Instance |
403 | InstanceCreating | 实例创建中,请稍候 |
403 | AccountOverdue | 账号欠费,请充值后访问 |
请求示例
GET /v1/instance/ins1/table/table1 HTTP/1.1
HOST: bts.bd.baidubce.com
Authorization: bce-auth-v1/table-access-key/2018-05-24T13:41:13Z/1800/x-bce-date/{signature}
Content-Type: application/json
Content-Length: {payloadSizeBytes}
x-bce-date: 2018-05-24T13:41:13Z
响应示例
HTTP/1.1 200 OK
Date: Sat, 18 Aug 2018 18:18:18 GMT
Content-Type: application/json; charset=utf-8
Content-Length: {payloadSizeBytes}
ETag: 3f80f-1b6-3e1cb03b
x-bce-request-id: 7869616F-7A68-6977-656E-406261696475
{
"instance": "ins1",
"tableName": "table1",
"tableState": "Normal",
"tableVersion": 1531308455483091,
"createTime": "2018-05-06T14:32:09Z",
"compressType": "NONE",
"ttl": 0,
"maxVersions": 1
}
列举所有表ListTables
描述
查询实例下所有表。
请求
Verb | URI |
---|---|
GET | /v{version}/instance/{instanceName}/tables |
请求头:x-bce-if-none-match 响应头:ETag
请求参数
无
响应参数
参数名称 | 参数类型 | 说明 |
---|---|---|
tables | list | table列表 |
+createTime | string | 表创建的UTC时间 |
+tableName | string | 表名称 |
+tableState | string | 表状态信息,有如下取值: - Normal:表状态正常,可正常读写 - Creating:表正在创建中 - Dropping:表正在被删除 |
+tableVersion | int64 | 当前table版本号,值是最后一次更新的微秒级时间戳 |
+storageType | string | 表存储类型 |
+maxVersions | int | 最多保留版本数,取值范围[1, 50000] |
错误码
http_code | code | 说明 |
---|---|---|
200 | - | 请求成功 |
401 | AuthenticationFailed | 认证失败 |
400 | InvalidURI | URI非法 |
405 | MethodNotAllowed | 传递了不支持的HTTP方法 |
400 | InvalidContentType | 请求头域Content-Type是不支持的类型 |
400 | InvalidAutherization | 请求头域Autherization没有传递 |
400 | EmptyDate | 请求头域Date或x-bce-date都没有传递 |
400 | InvalidContentLength | 请求头域Content-Length没有传递 |
400 | ContentLengthMismatchBodySize | 请求头域的Content-Length和实际Request body大小不等 |
400 | MalformedJSON | 请求体传递的json无法解析 |
500 | InternalError | 服务内部错误,需联系技术人员解决 |
404 | InstanceNotExist | Instance不存在 |
403 | AccessDenied | 请求了不属于自己创建的Instance |
403 | InstanceCreating | 实例创建中,请稍候 |
403 | AccountOverdue | 账号欠费,请充值后访问 |
请求示例
GET /v1/instance/ins1/tables HTTP/1.1
HOST: bts.bd.baidubce.com
Authorization: bce-auth-v1/table-access-key/2018-05-24T13:41:13Z/1800/x-bce-date/{signature}
Content-Type: application/json
Content-Length: {payloadSizeBytes}
x-bce-date: 2018-05-24T13:41:13Z
响应示例
HTTP/1.1 200 OK
Date: Sat, 18 Aug 2018 18:18:18 GMT
Content-Type: application/json; charset=utf-8
Content-Length: {payloadSizeBytes}
ETag: 3f80f-1b6-3e1cb03b
x-bce-request-id: 7869616F-7A68-6977-656E-406261696475
{
"tables": [
{
"tableName": "table1",
"tableState": "Normal",
"tableVersion": 1562345678,
"maxVersions": 1
},
{
"tableName": "table2",
"tableState": "Creating",
"tableVersion": 1562345678,
"maxVersions": 1
}
]
}