Bulk API のしくみ
レコードセットを処理するには、1 つ以上のバッチを含むジョブを作成します。
このジョブは、処理されるオブジェクトと使用される操作の種類を指定します。バッチは、HTTP POST 要求でサーバーに送信されるレコードセットです。各バッチはサーバーによって独自に処理されます。受信した順序で処理されるとは限りません。バッチは並列処理が可能です。データセット全体をどのように適切な数のバッチに分割するかは、クライアント側で決定されます。
ジョブは JobInfo リソースで表されます。このリソースは、新規ジョブの作成、既存のジョブの状況の取得、ジョブの状況の変更に使用します。バッチを作成するには、レコードのセット、およびバイナリ添付ファイルへの参照を表す、CSV、XML、または JSON を HTTP POST 要求で送信します。作成したバッチの状況は BatchInfo リソースで表されます。バッチの処理が完了すると、各レコードの結果が結果セットのリソースとして提供されます。
データを処理する一般的な手順は、次のとおりです。
- オブジェクトとアクションを指定し、新しいジョブを作成します。
- 複数のバッチに分割されたデータをサーバーに送信します。
- すべてのデータが送信されたら、ジョブを終了します。ジョブの終了後は、そのジョブの一部として新たにバッチを送信することはできません。
- 適切な間隔ですべてのバッチの状況を確認します。状況確認では、その都度各バッチの状態が返されます。
- すべてのバッチの処理が完了または失敗した時点で、各バッチの結果を取得します。
- 結果セットと元のデータセットを照合して、失敗したレコードと成功したレコードを特定し、適切な処理を行います。
ジョブはこのプロセスのどの時点でも中止できます。ジョブを中止すると、その時点で未処理のバッチは処理されなくなります。すでに処理されたバッチが元に戻されることはありません。