Bulk API 2.0 と Bulk API の制限の重要性について説明し、それぞれの制限と割り当てを比較します。Bulk API 2.0 では、制限が簡略化されており、クライアントが REST API /limits エンドポイントを介して使用できます。
制限の考慮
制限は、すべての顧客のパフォーマンスを最適化し、システムリソースへ��公平なアクセスを実現するために設定されます。各組織が 24 時間の期間内に処理できる API 要求の数は限られています。全体の API 使用量を割り当てて、各インテグレーションが組織に対して何を行うのかを説明します。
制限の計画に役立つ可能性がある質問を次に示します。
- 他にいくつのインテグレーションが組織に API 要求を行っていますか?
- 組織は毎日の要求の制限にどの程度近づいていますか?
- 使用事例およびデータボリュームに対処するために 1 日あたり何件の API 要求が必要になりますか?
- 計画しているジョブを実行できる API について、その制限にはどのような特徴がありますか?
新しい実装が何をしようとしているのかや、ワークロードが中断しないようにするために既存のインテグレーションが何をしているかを検討してください。
バッチ割り当て
24 時間内に送信可能なバッチ数は最大で 15,000 件に制限されています。このバッチ割り当ては Bulk API と Bulk API 2.0 で合計されるため、Bulk API または Bulk API 2.0 で処理されるバッチはすべて、この割り当てに反映されます。
Bulk API 2.0 では、取得ジョブでのみバッチが使用されます。クエリジョブでは使用されません。詳細は、『Bulk API 2.0 開発者ガイド』の「要求の処理方法」を参照してください。
Bulk API 2.0 では、バッチは自動的に作成されます。Bulk API の場合、自分でバッチを作成する必要があります。
全般的な制限
| バッチとジョブの有効期限 |
7 日よりも古いバッチとジョブは、バッチが最終状態 (完了、中止または失敗) にある場合、対応するジョブの状況に関係なくキューから削除されます。この 7 日は、ジョブに関連付けられた最も新しいバッチの作成日時によって判断されます。バッチが含まれていないジョブでは、ジョブの作成日時が基準になります。作成後 24 時間を超えたジョブにバッチを関連付けることはできません。7 日よりも古く最終状態ではないバッチは、対応するジョブで定期的にクリーンアップされます。 |
7 日よりも古い最終状態 (完了、中止、失敗) のジョブは削除されます。7 日よりも古く最終状態ではないジョブは、定期的にクリーンアップされます。 |
| バイナリ型のコンテンツ |
- ファイル名の最大長は 512 バイトです。
- zip ファイルの最大サイズは 10 MB です。
- コンテンツの最大合計サイズは、圧縮解除した状態で 20 MB です。
- 1 つの zip ファイルに含めることができるファイル数は最大で 1,000 ファイルです。ディレクトリはファイル数には反映されません。
|
なし |
| ジョブを Open のままに維持できる最大時間 |
24 時間 |
同じ。(ただし、これは取得ジョブのみに適用されます。クエリジョブには適用されません。) |
取得ジョブ固有の制限
| 24 時間周期でアップロード可能なレコードの最大数 |
150,000,000 (15,000 バッチ x 10,000 レコード (1 つのバッチの最大数)) |
150,000,000 |
| バッチの処理時間 |
バッチはチャンクで処理されます。チャンクサイズは、API バージョンによって異なります。API バージョンが 20.0 以前の場合、チャンクサイズは 100 レコードです。API バージョンが 21.0 以降の場合、チャンクサイズは 200 レコードです。バッチ全体の処理に 10 分以上かかる場合、Bulk API ではバッチの残りがキューに戻され、後で処理されます。その後の処理でも 10 分以内に完了できない場合、バッチがキューに戻され最大 10 回まで処理が試行されます。それでも完了できない場合は、バッチ処理が完全に失敗したとみなされます。 |
Bulk API と同じ |
| バッチを再試行するまでの最大時間 |
10 分 |
再試行は API が自動的に処理します。API の再試行が 10 回を超えたというメッセージを受け取った場合は、より小さいアップロードファイルを使用してもう一度実行してください。 |
| 最大ファイルサイズ |
10 MB |
150 MB |
| 1 項目の最大文字数 |
131072 |
Bulk API と同じ |
| 1 レコードの最大項目数 |
5,000 |
Bulk API と同じ |
| 1 レコードの最大文字数 |
400,000 |
Bulk API と同じ |
| 1 バッチの最大レコード数 |
10,000 |
なし |
| 1 バッチでのすべてのデータの最大文字数 |
10,000,000 |
なし |
クエリジョブ固有の制限
| クエリの試行回数 |
10 分ごとに 15 回、バッチを処���します。クエリの処理時間には 2 分という制限もあります。クエリの試行回数が 15 回を超えると、「Tried more than fifteen times (試行回数が 15 回を超えました)」というエラーメッセージが返されます。クエリの処理時間が 2 分を超えると、QUERY_TIMEOUT エラーが返されます。 |
再試行は API が自動的に処理します。API の再試行が 15 回を超えたというメッセージを受け取った場合は、検索条件を適用してもう一度実行してください。 |
| バッチサイズ |
PK Chunking を有効化していない場合は、1 つのバッチのみが作成されます。PK Chunking を有効化してバッチを作成する場合、バッチはチャンクのレコード数に基づいて分割されます。レコード数の範囲は 100,000 から 250,000 までです。 |
API は「バッチ」管理を自動的に処理します。 |
| 取得されるファイル数 |
15 個。クエリで返されるファイルが 15 個を超える場合は、クエリの検索条件を追加して返されるデータ量を減らす必要があります。一括バッチサイズは、一括クエリには使用されません。 |
なし |
| クエリ結果を取得する場合のタイムアウト |
20 分 |
Bulk API と同じ |
| 結果の有効期限 |
クエリジョブの結果は、ジョブ完了後 7 日以内に取得できます。 |
Bulk API と同じ |
| 最大取得ファイルサイズ |
1 GB。バッチ処理で取得データが 1 GB になると、それらの結果はディスクに保存されます。バッチはキューに戻され、後で再開されます。これも 15 回の再試行回数に反映されます。 |
Bulk API と同じ。 また、API クライアントは locator および maxRecords クエリパラメータを使用することで、結果の完全なセットを操作できます。クライアントはファイルセットにバインドされません。
|
| 24 時間周期で送信可能なクエリジョブの数 |
「バッチ割り当て」を参照してください。 |
10,000 現在の数値は、/vXX.X/limits/ REST API メソッドに対する応答の DailyBulkV2QueryJobs 値で確認できます。
|
| 直近 24 時間に生成可能なクエリ結果の合計数 |
なし |
1 TB。 現在のサイズは、/vXX.X/limits/ REST API メソッドに対する応答の DailyBulkV2QueryFileStorageMB 値で確認できます。
|
| SELECT 句の文字数。 この制限は、SELECT と FROM の間にあるすべての項目に関係します。これには、各項目を分離するカンマと、Salesforce が自動的に各項目を囲む引用符が含まれます。項目間にスペースがある場合は、自動的に削除されます。
たとえば、以下のクエリがあるとします。
SELECT CloseDate,Name,StageName,Amount FROM OpportunitySalesforce は、SELECT 句を以下のように変換します。
"CloseDate","Name","StageName","Amount"この例の場合、文字数は 39 です。
|
なし |
32,000 |
トランザクション単位の Apex 制限
Bulk API および Bulk API 2.0 トランザクションの場合、有効な制限は、同期の制限と非同期の制限のどちらか大きい方です。制限についての詳細は、『Apex 開発者ガイド』の「トランザクション単位の Apex 制限」に記載されています。たとえば、System.enqueueJob によってキューに追加される Bulk Apex ジョブの最大数は、非同期の制限 (1) より大きい同期の制限 (50) です。
最大 CPU 時間の制限
Bulk API および Bulk API 2.0 プロセスは、Salesforce サーバの CPU 時間に関する独自のガバナ制限を消費します。この制限は、最大 CPU 時間に関する一般的なトランザクション単位の Apex 制限とは異なります。
| Bulk API および Bulk API 2.0 における Salesforce サーバの最大 CPU 時間 |
60,000 ミリ秒 |