IT人材をお探しの方は、まずはお電話ください。担当営業がすぐにご要望にマッチした人材をご提案いたします。
tel:03-6409-6766 お急ぎの方はお電話ください

ブログTOP > IT・技術関連 > SalesforceにおけるBulk APIの制限とは?機能概要、しくみから解説

SalesforceにおけるBulk APIの制限とは?機能概要、しくみから解説

IT・技術関連 更新日:2024.09.05
エンジニア採用
SalesforceにおけるBulk APIの制限とは?機能概要、しくみから解説

SalesforceにおけるBulk APIの概要 SalesforceにおけるBulk APIは、REST 規則で、大規模データセットの読みこみや削除処理などに最適化されています。 大量のレコードの処理には、SOAP API より短時間で処理できるBulk APIが適しています。SOAP API が少数のレコードをリアルタイムに処理するのに対し、Bulk API は、1,000~1,000,000単位のレコードのデータを読みこむことを想定して設計されています。 SalesforceでBulk API を使用する際は、Bulk API 機能が有効化されていることが必要です。但し、ポータルユーザは、APIの権限を割り当てられても Bulk API にはアクセスできません。 <Bulk API 機能がデフォルトで有効化されているエディション> ・Performance Edition ・Unlimited Edition ・Enterprise Edition ・Developer Edition

Bulk API 2.0とは

Salesforceでは、Bulk API に加えてBulk API 2.0が提供されています。Bulk API 2.0は REST API フレームワークを使用したBulk API と同等の機能です。Bulk API 2.0ではプロセスがより簡易化されています。

サポート対象外のBulk APIのクエリ

Bulk API では、以下のクエリはサポートされていません。GROUP BY 句内の日付関数はサポート対象外ですが、WHERE 句内の日付関数はサポートされます。 ・GROUP BY、OFFSET、TYPEOF 句 ・COUNT() などの集計関数 ・GROUP BY 句内の日付関数 ・複合の住所項目 ・地理位置情報項目

SalesforceのBulk APIのしくみ

Bulk APIは1 つ以上のバッチを含むジョブにより、一連のレコードを処理します。データセットは複数のバッチに分割して送信され、どのように分割するかはクライアント側で決定します。 バッチは並列処理が可能で、受信したサーバによって受信した順序とは関係なく独自に処理されます。 SalesforceではBulk APIのバッチ処理の実行中に、HTTP GET コールを使用して、ジョブの状況の確認と進行状況の追跡ができます。Bulk APIのすべての処理で、HTTP GET メソッド、HTTP POST メソッドを使用して、CSV データ、XML データ、JSON データが送受信されます。

SalesforceにおけるBulk APIの制限

Salesforceで、Bulk APIを使用する際の制限について説明します。 Salesforceではリソースの独占が起きないよう、ガバナ制限を設けています。制限事項に該当する場合は処理が実行されず、エラーが返されます。 尚、Bulk APIも標準 API のコール数の使用制限の対象であり、HTTP 要求を 1 コールとして適用されます。

Bulk APIのバッチに関する制限

SalesforceにおけるBulk APIのバッチに関する制限について説明します。 バッチは、BatchInfo リソースで定義されます。HTTP POST 要求により、レコードのセット、バイナリ添付ファイルの参照を記載したCSV、XML、JSONなどのファイルを送信します。処理完了後、各レコードの結果(完了もしくは失敗)が結果セットのリソースとして提供されます。

Bulk APIのバッチのコンテンツ

Bulk API のバッチには、単一オブジェクトのレコードで構成された CSV ファイル、XML ファイル、JSON ファイル のいずれか1 つが含まれていなければなりません。これに該当しないバッチは処理されません。 Enterprise WSDL を使用することで、オブジェクトレコードを正しい形式にできます。

Bulk APIのバッチ割り当て

24 時間以内に送信できるバッチ数について、15,000 件までという割り当てがあります。 終了したジョブにバッチ送信も、バッチ割り当ての数にカウントされます。この割り当ては Bulk API と Bulk API 2.0 が合計され、両者で処理されるバッチはすべて、この割り当てでカウントされます。

Bulk APIのバッチの有効期限

Salesforceでは、Bulk APIのバッチに有効期限があります。 有効期限は、ジョブに関連づけられた最新のバッチの作成日時で判断されます。作成から7日を超過したバッチとジョブが終了したバッチは、キューから削除されます。

Bulk APIのバッチサイズ

バッチのサイズには以下の制限があります。 バッチは 10 MB 以下の単一の CSV ファイル、XML ファイル、または JSON ファイルで構成され、バッチのファイルが空の場合はエラーが返されます。 ファイル名の長さ:512 バイトまで zip ファイルのサイズ:10 MBまで コンテンツの合計サイズ:圧縮を解除した状態で 20 MB まで 圧縮ファイル内のファイル数:1,000 ファイルまで(ディレクトリは含まない)

Bulk APIのバッチ処理の制限

SalesforceのBulk API のバッチには、API バージョン20.0 以前が100 レコード、API バージョン 21.0 以降は200 レコードという、チャンクサイズの制限があります。 また、各チャンクの処理の制限時間は5分で、バッチ全体の処理に 10 分以上かかる場合はバッチの残りがキューに戻されます。さらに一括クエリの場合は、バッチとは別にクエリ処理の制限時間(2分)があります。 キューに戻されたバッチは再度処理が行われますが、10 分以内に完了できない場合は再びキューに戻されます。最大 10 回までの試行で完了できないバッチ処理は失敗とみなされます。 但し、一部のレコードが正常に処理されていても、バッチの状態はFailed(失敗)となる場合があります。

Bulk APIのバッチの圧縮形式

Salesforceでは、バッチを圧縮する場合、gzip のみが有効な形式です。 圧縮は必須ではありませんが、実行することが推奨されています。圧縮を行った場合も文字数の制限は変わりません。

Salesforce のBulk APIのジョブに関する制限

SalesforceにおけるBulk APIのジョブに関する制限について説明します。 ジョブはJobInfo リソースで定義され、新規ジョブの作成、既存のジョブの状況の取得、ジョブの状況の変更を行います。権限をもつすべてのユーザがジョブを中止できますが、ジョブを終了できるのはそのジョブを作成したユーザのみです。

Bulk APIのジョブのコンテンツ

Bulk APIのジョブは以下のように構成されます。 デフォルトでは並列モードが選択されています。Salesforceでは、並列モードでロック競合が発生する場合に逐次モードを使用することを推奨しています。 ・1 つの処理と 1 つのオブジェクトを指定する ・ジョブに関連付けられたバッチには、1 つのオブジェクトのレコードが含まれる

Bulk APIのジョブの外部 ID対応

Bulk APIのジョブを表すJobInfo では、外部 ID 項目の編集はできません。 Bulk APIのジョブで外部 ID 項目に対して実行できる処理は、更新/挿入のみです。外部ID項目の作成および更新の処理を実行すると、エラーが返されます。

Bulk APIのジョブの有効期限

Salesforceでは、Bulk APIのジョブは作成から24 時間はオープンの状態にありますが、これを超えるとバッチを関連づけることができなくなります。 ジョブの有効期限は、バッチの関連づけが可能な24 時間に加えて、関連づけられたバッチがキューから削除されるまで(「バッチの有効期限」参照)と言えます。バッチが含まれていないジョブは、ジョブの作成日時が基準になります。

Bulk APIのジョブ状況の変更と履歴

Bulk API のジョブの状況を変更できるのは status 項目の値のみで、operation 項目および entity 項目を変更することはできません。また、ジョブの状況とバッチの結果セットの履歴は7 日間保存され、その後は削除されます。

Salesforce のBulk APIの取得ジョブ固有の制限

Bulk APIの取得ジョブには、アップロードできるレコードやバッチの容量などに制限があります。 直近24 時間以内のアップロードされたレコード:150,000,000 バッチを再試行するまでの時間:10 分 バッチのファイルサイズ:10 MB 1 項目あたりの文字数:32,000 1 レコードあたりの項目数:5,000 1 レコードあたりの文字数:400,000 1 バッチあたりのレコード数:10,000 1 バッチあたりの文字数の合計:10,000,000

Salesforce のBulk APIのクエリジョブ固有の制限

Bulk APIのクエリジョブには固有の制限があります。 ・クエリのバッチ処理は10 分ごとに15 回ずつ試行し、15 回を超えるとエラーが返されます。 ・クエリの処理時間が 2 分を超えると、タイムアウトエラーが返されます。 ・クエリの処理で取得できるファイル数は15 個までで、一括バッチサイズは一括クエリには使用できません。 ・クエリの処理の結果の有効期限は7 日です。 ・クエリ処理で取得できるファイルサイズは1 GBまでです。 ・クエリ処理のバッチも、Bulk APIとBulk API 2.0 で処理されるバッチとして、24時間以内のバッチ割り当てとしてカウントされます。

SalesforceでBulk APIを活用するために制限を理解する

SalesforceにおけるBulk APIの機能の概要としくみ、制限について説明しました。 Bulk API は、Salesforceで大量のレコードを一度に処理できる機能ですが、使用にあたっては、リソース独占を起こさないための制限があります。 SalesforceでBulk APIを活用するために、その制限について理解しておきましょう。]]>

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニアAWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。

・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
ITエンジニアの派遣を利用したい企業様へ
ITエンジニアを派遣で採用したい企業様へ
  • 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
  • すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!

当社のITエンジニア派遣サービスは

  • 派遣スピードが速い!(最短即日)
  • 4,500名のエンジニアから貴社にマッチした人材を派遣
  • 正社員雇用も可能

こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。

無料相談のお申し込みはこちら
IT・技術関連の記事一覧へ

カテゴリから記事を探す

すべての記事一覧へ