メインコンテンツまでスキップ

ImportItems

CSVデータインポート

Description

CSVファイルを指定して、データベース(datastore)を更新します。新規・更新・削除が可能です。

  • キーフィールドに指定したフィールドに同値が存在する場合は更新され、存在しない場合は新規で登録されます。
  • replace_all(bool) オプションをtrue とすると、全データを削除し、指定したCSVデータで新規登録(洗い替え)します。指定しない場合に比べて高速に処理が可能です。
  • append(bool)オプションをtrue とすると、既存データを残したまま、指定したCSVデータを追加登録します。指定しない場合に比べて高速に処理が可能です。
  • CSV内に削除フィールド(項目名を_delete_とする)を用意し、削除するItemにはtrueまたは1を指定すると、該当Itemが削除されます。
  • CSV内のステータスを意味するフィールドは、CSVのヘッダー名を_status_として、データにはステータス名(status_idではありません)を指定します。
  • CSV内に公開グループ指定フィールド(項目名を_group_id_とする)を用意し、CSVデータにHexabaseで画面から定義されたグループIDを指定すると、該当Itemが指定したグループへ公開されます。(グループアクセスキーが付与される)

Method

POST

Request URL Format

/api/v0/applications/:app-id/datastores/:datastore-id/import

URL Params

app-id    : アプリケーションID(画面から指定したアプリケーションID、または、p_id)
datastore-id : データストアID(画面から指定したデータストアID、または、d_id)

Content-Type : multipart/form-data

filename            : インポートデータファイル名
file : インポートファイル
key_field_displayid : インポート先データストアのキー項目として利用するフィールドIDを指定します(この列をキーとして更新をかけます)
replace_all : false | true 指定されたCSVでデータを初期化(すべてのデータを削除して、新規追加されます)
append : false | true 指定されたCSVデータを既存のデータに追加します。別途、`条件を指定して削除API`と順番に実行することでデータを差分削除&追加インポートが可能です。
no_queue : false | true 指定されたCSVデータをQueueに入れずに即時インポートを実行します。100件以下のデータに対して即時実行が可能です。
overwrite_autonumber: false | true インポート先の自動採番項目が初期化されてゼロスタートされてインポートされます。
validate : true | false インポート時、データチェックを省略する。

Request Sample

POST https://api.xxx.com/api/v0/applications/APP-ID/datastores/DATABASE-ID/import

CSVファイルイメージ

  • CSVヘッダ行には、画面から指定したフィールドIDを指定します
  • key_field_displayid 更新利用時は、キーフィールドと更新対象フィールド以外の列を省略したCSVを利用できます。(データベース内のすべてのフィールドを含む必要はありません)
TITLE,_status_,Field1,No,_delete_
import1,ステータス1,A,001,0
import2,ステータス2,B,002,0

Response

  • no_queueが指定なし、またはfalseの場合

    {
    "temp_datastore_id": "5e58aa0fe4ecac3bd828aead",
    "stream_id": "saXjPYrkoJULrJTXHystqbXBqmUkILVbbBxvyXNsiJXKUdcROfTQOwGwCo6nqkwDDGjnUeiPtdkjkDeqgjquUOmcl0B6aM9q2V5526y2Xn3XmPZFsBSrooAwqTSAjWYr"
    }
    temp_datastore_id : データインポート結果の取得で利用できるID (append または replace_all をtrue指定の場合はGetImportResultsで利用できない)
    stream_id : インポート経過をSubscribeするためのID

    ※ Subscribe仕様については、このドキュメントには記載していません(現在、ドキュメント準備中)

  • no_queueがtrueの場合

    成功時

    {
    "errors": [],
    "has_error": false,
    "result": {
    "imported": 4,
    "item_count": 4
    }
    }

    エラー時

    {
    "errors": [
    {
    "description": "the number of imports exceeds the limit. please set the no_queue flag to false.",
    "error": "too many items",
    "error_level": "ERROR"
    }
    ],
    "has_error": true,
    "result": {
    "imported": 0,
    "item_count": 104
    }
    }
    imported : 処理したインポート件数
    item_count : 対象インポート件数