この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Bulk API の概要

Bulk API を使えば、プログラムを介して、組織のデータを Salesforce にすばやく読み込むことができます。API を使用するには、ソフトウェア開発、Web サービス、および Salesforce ユーザインターフェースについての基本的な知識が必要です。

説明されている機能は、組織で Bulk API 機能が有効化されている場合にのみ使用できます。この機能は、Performance Edition、Unlimited Edition、Enterprise Edition、Developer Edition ではデフォルトで有効になっています。

Bulk API を使用するケース

Bulk API は、REST 規則に基づいており、大規模データセットの読み込みまたは削除用に最適化されています。Bulk API を使用して複数のバッチを送信することにより、多数のレコードを非同期でクエリ、挿入、更新、更新/挿入または削除できます。バッチはバックグラウンドで処理されます。

一方、SOAP API は、一度に少数のレコードを更新するリアルタイムのクライアントアプリケーション用に最適化されています。SOAP API を使用しても多数のレコードを処理することはできますが、数十万のレコードがデータセットに含まれている場合には実用性に欠けます。Bulk API は、千から百万単位のレコードのデータを簡単に読み込めるように設計されています。

Bulk API の最も簡単な使用方法は、CSV ファイルを使ってデータローダでレコードの処理ができるようにすることです。データローダを使用すると、独自のクライアントアプリケーションを作成する必要がなくなります。

SOAP API を使用するケース

SOAP API では、Salesforce を操作するための、強力で便利な、使いやすい SOAP ベースの Web サービスインターフェースを提供します。SOAP API を使用して、レコードを作成、取得、更新、または削除できます。また、SOAP API を使用して、検索の実行などを行うことができます。SOAP API は、Web サービスをサポートしている言語で使用できます。

たとえば、SOAP API を使用して、Salesforce を組織の ERP や会計システムと統合できます。また、リアルタイムの販売情報やサポート情報を会社のポータルに配信し、重要なビジネスシステムに顧客情報を入力することもできます。

REST API を使用するケース

REST API では、Salesforce を操作するための、強力で便利な、使いやすい REST ベースの Web サービスインターフェースを提供します。インテグレーションや開発が容易になるという利点があり、モバイルアプリケーションや Web プロジェクトで使用するための技術の選択としては最適です。ただし、処理するレコード件数が多い場合、REST 規則に基づいており、大規模データセットの処理用に最適化されている Bulk API を使用することを検討してください。

メタデータ API を使用するケース

メタデータ API を使用して、組織のカスタマイズを取得、リリース、作成、更新、または削除します。最も一般的な使い方は、Sandbox またはテスト組織から本番環境への変更の移行です。メタデータ API は、カスタマイズを管理し、データ自体ではなくメタデータモデルを管理可能なツールを構築することを目的とします。

Force.com IDE または Force.com 移行ツールを使用すると、最も簡単にメタデータ API の機能にアクセスできます。どちらのツールもメタデータ API の上位に構築され、メタデータ API を使用した作業を簡略化するために標準の Eclipse および Ant ツールが使用されます。
  • Force.com IDE は、Eclipse プラットフォーム上に構築され、統合された開発環境に慣れているプログラマを対象としています。IDE 内でコード記述、コンパイル、テスト、リリースを行います。
  • Force.com 移行ツールは、スクリプトまたはコマンドラインを使用してローカルディレクトリと Salesforce 組織間でメタデータを移動する場合に最適です。

Bulk API によって可能になること

REST Bulk API では、大量のレコードを非同期でクエリ、挿入、更新、更新/挿入、削除できます。レコードには、Attachment オブジェクトや Salesforce CRM Content などのバイナリ添付ファイルを含めることができます。まず、HTTP POST を使用して、サーバに一連のバッチを送信します。バッチを受け取ったサーバは、バックグラウンドで処理を実行します。バッチの処理が行われている間は、HTTP GET コールを使用してジョブの状況を確認し、進行状況を追跡できます。すべての処理では、HTTP GET メソッドまたは HTTP POST メソッドを使用して、CSV データ、XML データ、または JSON データが送受信されます。

現在、Bulk API のクエリで base64 項目の使用はサポートされていません。

重要

Bulk API のしくみ

一連のレコードを処理するには、1 つ以上のバッチを含むジョブを作成します。このジョブは、処理されるオブジェクトと使用されるアクションのタイプ (クエリ、挿入、更新/挿入、更新、または削除) を指定します。バッチは、HTTP POST 要求でサーバに送信されるレコードセットです。各バッチはサーバによって独自に処理されます。受信した順序で処理されるとは限りません。バッチは並列処理が可能です。データセット全体をどのように適切な数のバッチに分割するかは、クライアント側で決定されます。

ジョブは JobInfo リソースで表されます。このリソースは、新規ジョブの作成、既存のジョブの状況の取得、ジョブの状況の変更に使用します。バッチを作成するには、レコードのセット、およびバイナリ添付ファイルへの参照を表す、CSV、XML、または JSON を HTTP POST 要求で送信します。作成したバッチの状況は BatchInfo リソースで表されます。バッチの処理が完了すると、各レコードの結果が結果セットのリソースとして提供されます。

データを処理する一般的な手順は、次のとおりです。
  1. オブジェクトとアクションを指定し、新しいジョブを作成します。
  2. 複数のバッチに分割されたデータをサーバに送信します。
  3. すべてのデータが送信されたら、ジョブを終了します。ジョブの終了後は、そのジョブの一部として新たにバッチを送信することはできません。
  4. 適切な間隔ですべてのバッチの状況を確認します。状況確認では、その都度各バッチの状態が返されます。
  5. すべてのバッチの処理が完了または失敗した時点で、各バッチの結果を取得します。
  6. 結果セットと元のデータセットを照合して、失敗したレコードと成功したレコードを特定し、適切な処理を行います。

このプロセス中には、いつでもジョブを中止できます。ジョブを中止すると、その時点で未処理のバッチは処理されなくなります。すでに処理されたバッチが元に戻されることはありません。

データローダを使用した CSV の処理については、『データローダガイド』を参照してください。