全部產品
Search
文件中心

OpenSearch:資料處理

更新時間:Jul 13, 2024

上傳文檔

支援新增、更新、刪除 等操作,以及對應大量操作

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錯誤碼。

以進階版資料格式為例:

[
    {
        "cmd": "add",
        "timestamp": 1401342874777,
        "fields": {
            "id": "1",
            "title": "This is the title",
            "body": "This is the body"
        }
    },
    {
        "cmd": "update",
        "timestamp": 1401342874778,
        "fields": {
            "id": "2",
            "title": "This is the new title"
        }
    },
    {
        "cmd": "delete",
        "fields": {
            "id": "3"
        }
    }
]
  • 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

array

推送報錯內容,message代表錯誤資訊。params代表錯誤參數,code代表錯誤碼

request_id

string

該條查詢的記錄id,主要用於排查問題使用

status

string

執行結果,OK為成功,FAIL為失敗,請根據返回錯誤碼進行排查

result

string

執行成功返回該參數,值為true,報錯不返回該參數

樣本

請求:(此處省略了請求Header參數及編碼等因素)

http://host/v3/openapi/apps/app_schema_demo/tab/actions/bulk

//下面的待上傳資料,需要放到body體中
[{"cmd":"ADD","fields":{"id":1,"name":"Test Data Push"}}]

成功返回

{
    "errors": [],
    "request_id": "150116724719940316170289",
    "status": "OK",
    "result": true
}

錯誤返回

{
    "errors": [
        {
            "code": 2001,
            "message": "待查應用不存在.待查應用不存在。",
            "params": {
                "friendly_message": "待查應用不存在。"
            }
        }
    ],
    "request_id": "150116732819940316116461",
    "status": "FAIL"
}

注意事項

  • 使用API/SDK推送資料時,應用的欄位名稱大小寫不敏感。

  • 使用API/SDK推送資料有次數及大小限制,不同應用限制不同,具體請參考系統限制描述。

  • 資料上傳後請務必檢查傳回值,並對相關錯誤碼進行重試(尤其是3007錯誤),否則會出現資料丟失情況。同時,資料處理是非同步,系統返回“OK”後只表示系統接收資料成功,資料處理過程的錯誤會在控制台錯誤資訊中展示,請注意及時檢查。

  • POST的資料大小有限制,如果您上傳的文檔總量過大(編碼前2M),伺服器將拒絕接收任何參數,同時返回異常。

  • POST推送操作 body 部分的資料若包含中文必須要做 utf-8 編碼,Header中的Content-MD5 參數也一樣,在計算資料 MD5 值前,必須要先進行 utf-8 編碼,否則會出現推送報錯問題。