搜索本产品文档关键词
向Object执行Sql语句
所有文档
menu

BOS 对象存储

向Object执行Sql语句

接口说明

此接口用于向Bucket中指定object执行SQL语句,选取出指定内容返回。请求者必须对选取的object具有read权限。在SelectObject前需要确保对应的Bucket和Object已经存在,详细信息参考 SelectObject 开发者文档。

message具体格式详细说明:

select-msg.png

  1. prelude部分一共8个byte,前4byte表示message总长度,后4byte表示headers部分总长度,chunk总长度(prelude前4byte存储的值) - header总长度 - 8byte的prelude - 4byte的crc32 = payload部分数据总长度;crc32表示整个message的纠删码
  2. headers包含以下自定义<key,value>:“message-type”: {"Records", "Cont", "End"} ; "error-code": 具体错误码 ; "error-message": "详细错误信息"
  3. Payload表示返回的真实数据,可以是任意格式;其中Continuation message的Payload里边包括BytesScanned和BytesReturned两个字段表示的select进度信息

请求URI

POST /v1/{bucketName}/{objectKey}?select

参数名称
参数类型
是否必须
描述
示例值
参数位置
bucketName String bucket的名称 "bucketName_example" Path
objectKey String object的名称 "objectKey_example" Path
type String select的目标object类型,目前支持json/csv "type_example" Query

请求体参数

请求体字段数据结构说明

参数名称
参数类型
是否必须
描述
示例值
selectRequest SelectRequest json body根节点

SelectRequest字段数据结构说明

参数名称
参数类型
是否必须
描述
示例值
expression String 经过base64编码的sql语句 c2VsZWN0IGNvdW50KCopIGZyb20gbxkl2JqZWN0IHdoZXJlIF80ID4gNDU=
expressionType String 查询语句语法类型,只支持"SQL" SQL
inputSerialization InputSerialization 输入流节点,其子节点描述查询的object格式信息
outputSerialization OutputSerialization 输出流节点,其子节点描述查询结果返回格式信息
requestProgress RequestProgress + requestProgress 否 - select进度信息节点,其子节点描述select操作的执行进度,3s定时返回给用户

InputSerialization字段数据结构说明

参数名称
参数类型
是否必须
描述
示例值
compressionType String 指定查询的object是否压缩,可选值为"NONE"或"GZIP" NONE
csv Csv csv节点,其子节点描述csv文件相关信息

Csv字段数据结构说明

参数名称
参数类型
是否必须
描述
示例值
fileHeaderInfo String 可选值NONE/IGNORE/USE,指定CSV文件首行头信息,默认值NONE代表无header信息,IGNORE代表有header信息但是忽略,NONE和IGNORE意味着只能用列序号取出某一列;USE表示使用header信息,只能用header名取出某一列 NONE
recordDelimiter String 指定csv文件换行符,以Base64编码,默认值为\n(可选),最多为2个字符,例如\r\n \r\n
fieldDelimiter String 指定csv文件列分隔符,以Base64编码,默认值为,(可选),最多为1个字符,例如; ;
quoteCharacter String 指定csv文件引号字符,以Base64编码,在CSV中引号内的换行符,列分隔符将被视作普通字符;默认值为双引号"(可选),最多为1个字符,例如单引号' '
commentCharacter String 指定csv文件注释符,以Base64编码,一行以注释符开头则表示改行可以忽略;默认值为#(可选),最多为2个字符,例如// //

OutputSerialization字段数据结构说明

参数名称
参数类型
是否必须
描述
示例值
outputHeader Boolean 在返回结果开头输出CSV头信息,默认false; 需要fileHeaderInfo字段取值USE,该值为true会在返回结果的每一个Records message第一行加上对应的csv header名称;可选值为false/true false
csv Csv csv节点,其子节点描述返回的csv数据相关信息

RequestProgress字段数据结构说明

参数名称
参数类型
是否必须
描述
示例值
enabled Boolean 描述是否需要定时返回进度信息,可选值为false/true;如果数据筛选耗时久可能导致504超时,设置其为true可以维持http连接 false

响应体参数

响应体字段数据结构说明

请求示例

JSON
1POST /v1/bucketName_example/objectKey_example?select&type=type_example
2<公共请求头>
3
4
5{
6  "selectRequest" : {
7    "outputSerialization" : {
8      "outputHeader" : false,
9      "csv" : {
10        "quoteFields" : "ALWAYS",
11        "recordDelimiter" : "Cg==",
12        "quoteCharacter" : "Ig==",
13        "fieldDelimiter" : "LA=="
14      }
15    },
16    "expression" : "c2VsZWN0IGNvdW50KCopIGZyb20gbxkl2JqZWN0IHdoZXJlIF80ID4gNDU=",
17    "expressionType" : "SQL",
18    "requestProgress" : {
19      "enabled" : false
20    },
21    "inputSerialization" : {
22      "csv" : {
23        "fileHeaderInfo" : "NONE",
24        "recordDelimiter" : "\\r\\n",
25        "quoteCharacter" : "'",
26        "fieldDelimiter" : ";",
27        "commentCharacter" : "//"
28      },
29      "compressionType" : "NONE"
30    }
31  }
32}

响应示例

JSON
1HTTP/1.1 200 OK
2<公共响应头>
3
4{ }

错误码

请参考通用错误码

上一篇
权限控制
下一篇
软链接