表操作接口
所有文档

          云数据库 TableStorage

          表操作接口

          创建表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
                  }
              ]
          }
          上一篇
          实例操作接口
          下一篇
          行操作接口