全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
开放搜索

数据处理

更新时间:2018-05-25 23:15:19

上传文档

支持新增、更新、删除 等操作,以及对应批量操作

URL

/v3/openapi/apps/$app_name/$table_name/actions/bulk

  • $app_name 为您要操作的应用名
  • $table_name 为您要将数据推送到应用中的表名
  • 以上 URL 省略了请求Header参数及编码等因素
  • 以上 URL 中省略了访问应用的 host 地址

支持格式

JSON

HTTP请求方式

POST

请求参数

推送涉及的签名及设置请求 Header 操作,请参考 V3版API 签名机制 文档中的描述。

文档数据格式

注意

标准版应用不支持 timestamp 参数。如果指定 timestamp 选项,推送会报4007错误码。

以高级版数据格式为例:

  1. [
  2. {
  3. "cmd": "add",
  4. "timestamp": 1401342874777,
  5. "fields": {
  6. "id": "1",
  7. "title": "This is the title",
  8. "body": "This is the body"
  9. }
  10. },
  11. {
  12. "cmd": "update",
  13. "timestamp": 1401342874778,
  14. "fields": {
  15. "id": "2",
  16. "title": "This is the new title"
  17. }
  18. },
  19. {
  20. "cmd": "delete",
  21. "fields": {
  22. "id": "3"
  23. }
  24. }
  25. ]
  • timestamp : 可选字段。用来记录文档实际发生时间,单位为毫秒。系统会用该时间戳来作为同一主键文档更新顺序的判断标准,该选项只支持老高级版(标准版/新高级版)应用,没有该timestamp选项,若指定该选项,推送会报4007错误码。在没有该timestamp项时,默认以文档发送到OpenSearch的时间作为文档更新时间进行操作。

  • cmd : 必选字段。定义该文档的操作行为,可以为“add”、“update”、“delete”,标准版不支持“update”。建议一个请求中进行批量更新操作,提高网络交互及处理效率。“add”表示新增文档,如果该主键对应文档已经存在,则执行先“delete”再“add”的操作;“update”表示更新文档,对该主键对应文档进行部分字段更新;“delete”表示删除文档,如果该主键对应文档已经不存在,则认为删除成功。

  • fields : 必选字段。要操作的文档内容,主键字段必选,系统所有操作都是通过主键来进行的。对于“delete”只需要提供文档主键即可。

  • 对于Array类型,需要使用JsonArray来处理,如[{“fields”: { “id”: “0”,”int_array”: [14,85],”string_array”: [“abc”,”xyz”]},”cmd”: “ADD”}];

  • 注意:最外层是JsonArray类型,支持多个文档批量操作。

返回结果

参数 类型 描述
errors string 推送报错内容,message代表错误信息。params代表错误参数,code代表错误码
request_id string 该条查询的记录id,主要用于排查问题使用
status string 执行结果,OK为成功,FAIL为失败,请根据返回错误码进行排查
result string 执行成功返回该参数,值为true,报错不返回该参数

示例

请求:(此处省略了请求Header参数及编码等因素)

  1. http://host/v3/openapi/apps/app_schema_demo/tab/actions/bulk
  2. //下面的待上传数据,需要放到body体中
  3. [{"cmd":"ADD","fields":{"id":1,"name":"Test Data Push"}}]

成功返回

  1. {
  2. "errors": [],
  3. "request_id": "150116724719940316170289",
  4. "status": "OK",
  5. "result": true
  6. }

错误返回

  1. {
  2. "errors": [
  3. {
  4. "code": 2001,
  5. "message": "待查应用不存在.待查应用不存在。",
  6. "params": {
  7. "friendly_message": "待查应用不存在。"
  8. }
  9. }
  10. ],
  11. "request_id": "150116732819940316116461",
  12. "status": "FAIL"
  13. }

注意事项

  • 使用API/SDK推送数据有次数及大小限制,不同应用限制不同,具体请参考系统限制描述。
  • 数据上传后请务必检查返回值,并对相关错误码进行重试(尤其是3007错误),否则会出现数据丢失情况。同时,数据处理是异步的,系统返回“OK”后只表示系统接收数据成功,数据处理过程的错误会在控制台错误信息中展示,请注意及时检查。
  • POST的数据大小有限制,如果您上传的文档总量过大(编码前2M),服务器将拒绝接收任何参数,同时返回异常。
  • POST推送操作 body 部分的数据若包含中文必须要做 utf-8 编码,Header中的Content-MD5 参数也一样,在计算数据 MD5 值前,必需要先进行 utf-8 编码,否则会出现推送报错问题。
本文导读目录