開発情報・ナレッジ

投稿者: ShiningStar株式会社 2025年6月19日 (木)

SPIRALAPIにおけるbulkとbatchリクエストの違いについて

SPIRAL ver.2 APIでは、複数のレコードを操作する方法として「bulk」と「batch」の2つの方式が提供されています。これらの違いを理解することで、適切なAPIを選択し、効率的なデータ処理を実現できます。

bulkとbatchの基本的な違い

bulk API: 同期処理で即時実行される一括操作
batch API: 非同期処理で依頼を作成し、バックグラウンドで実行される一括操作

両方のAPIは複数レコードを一度に操作するという目的は同じですが、処理方法と適用ケースが異なります。

処理方式の違い
特性 bulk API batch API
処理方式 同期処理(リクエスト中に完了) 非同期処理(バックグラウンドで実行)
レスポンス 処理結果を即時返却 依頼IDを即時返却、結果は別途取得
処理件数 最大1,000件 大量データ(ファイルサイズ上限あり)
データ形式 JSONオブジェクト CSVまたはTSVファイル
エラー処理 即時エラー通知 ステータス確認で結果取得

bulk APIの特徴と使用例

主な特徴
  • 最大1,000件のレコードを一括で操作可能
  • JSONフォーマットでデータを送信
  • リクエスト完了時に処理結果が即時返却される
  • パスワード型フィールド、ファイル型フィールド、ユーザフィールドは対象外
  • 処理が完了するまでクライアントは待機状態
APIリクエスト例
コピー
{
  "records": [
    {
      "(textField)": "text",
      "(emailField)": "spiral@example.com",
      "(phoneField)": "+81 80-1111-2222",
      "(integerField)": "100",
      "(dateField)": "2020-04-30"
    },
    {
      "(textField)": "別のテキスト",
      "(emailField)": "info@example.com",
      "(phoneField)": "+81 90-3333-4444",
      "(integerField)": "200",
      "(dateField)": "2020-05-15"
    }
  ]
}
レスポンス例
コピー
{
  "ids": ["1", "2"]
}
適したユースケース
  • 少量〜中量のデータ処理(数十〜数百件)
  • 即時処理結果が必要な場合
  • プログラムからの自動処理
  • APIを直接呼び出すクライアントアプリケーション

batch APIの特徴と使用例

主な特徴
  • 大量データの一括処理に対応(ファイルサイズ上限あり)
  • CSVまたはTSVファイルでデータを送信(multipart/form-data形式)
  • 非同期処理で依頼IDが即時返却され、処理はバックグラウンドで実行
  • 処理状況や結果は別APIで確認可能
  • エラー発生時の処理方法を指定可能(rollbackまたはignore)
処理フロー
  1. CSVまたはTSVファイルを準備(1行目にフィールドの識別名)
  2. 一括処理依頼を作成(multipart/form-dataでファイルをアップロード)
  3. 依頼IDを受け取る
  4. 依頼状況確認APIで処理状況を確認
  5. 処理完了後、結果を確認
CSVファイル例
コピー
name,email,phone,gender,age,birthday,mailGroup,registration,lastAccess
山田 太郎,taro.yamada@example.com,+81 90-1234-5678,1,30,01-01,"1,2",2020-01-01,2020-01-01T00:00:00Z
田中 次郎,jiro.tanaka@example.com,090-1234-5678,1,25,1-1,3,2020-1-1,2020-01-01T12:00:00+09:00
鈴木 花子,hanako.suzuki@example.com,9012345678,2,20,12-20,,2020-12-20,2020-12-30T12:00:00Z
レスポンス例(依頼作成時)
コピー
{
  "id": "100",
  "operatedFrom": "ui",
  "status": "waiting",
  "errors": [],
  "onError": "rollback",
  "fileName": "content.csv",
  "fileSize": 104857600,
  "numberRows": 100,
  "numberRowsSuccessful": 0,
  "numberRowsFailed": 0,
  "rowsFailed": "",
  "createdAt": "2019-08-24T14:15:22Z",
  "finishedAt": null
}
適したユースケース
  • 大量データの処理(数百〜数万件)
  • 処理に時間がかかる可能性がある場合
  • バックグラウンド処理が望ましい場合
  • CSVやTSVからのデータインポート
  • ユーザーインターフェースからの操作

どちらを選ぶべきか?

bulk APIを選ぶ場合
以下の条件に当てはまる場合は、bulk APIが適しています:
  • 処理するレコード数が1,000件以下
  • 処理結果をすぐに取得したい
  • JSONフォーマットでデータを扱いたい
  • プログラムから直接APIを呼び出す
  • シンプルな実装で済ませたい
batch APIを選ぶ場合
以下の条件に当てはまる場合は、batch APIが適しています:
  • 処理するレコード数が多い(1,000件超)
  • 処理に時間がかかっても問題ない
  • CSVやTSVファイルからデータをインポートしたい
  • ユーザーインターフェースからの操作
  • エラー発生時の処理方法を細かく制御したい
注意点
共通の制限事項:
  • パスワード型フィールド、ファイル型フィールド、ユーザフィールドは両方のAPIで対象外
  • 適切なアプリロールと権限が必要
batch APIの追加制限:
  • ファイルは UTF-8 エンコードが必須
  • ファイルサイズは100MB以下

大量データを処理する場合は、batch APIを使用することで、クライアント側の待機時間を短縮し、サーバー負荷を分散させることができます。一方、即時処理が必要な少量データの場合は、bulk APIがシンプルで効率的です。

APIの選択は、データ量、処理タイミング、実装の複雑さなどを考慮して行いましょう。適切なAPIを選択することで、効率的なデータ処理が可能になります。

解決しない場合はこちら コンテンツに関しての
要望はこちら