マッピングおよびマッピングタスクでのSalesforce Bulk API
Salesforce Bulk APIとBulk API 2.0を使用すると、Salesforceソースからデータを読み取り、Salesforceターゲットにデータを書き込むことができます。一括ジョブを使用して、最小限の数のAPI呼び出しを生成しながら、大量のSalesforceデータを処理します。
Salesforce Bulk APIを使用する場合、各バッチのサイズはSalesforceによって10MBのデータまたはCSV形式の10,000件のレコードに制限されます。例えば、1,000万レコードを読み取る場合、レコードは1,000個のバッチに分割され、各バッチには10,000件のレコードが含まれます。10,000件のレコードのサイズが10MBを超える場合、バッチはレコード数ではなくサイズに基づいて分割されます。
マッピングタスクによってバッチが作成される際に、テキストを囲む引用符の追加など、データの書式を設定するために必要な文字が追加されます。
Bulk API 2.0の場合、24時間で1億行のデータを処理できます。ファイルの自動バッチ処理は、Salesforce側で手動作業なしで行われます。
Bulk APIとBulk API 2.0を使用してSalesforceターゲットに書き込みが行われるジョブは監視できます。Bulk APIターゲットジョブを監視する場合、マッピングタスクによって行レベルの情報の成功ファイルとエラーファイルが作成されます。Bulk APIの場合、マッピングタスクでバッチを同時にロードするか、順次ロードすることもできます。
注: SalesforceコネクタのすべてのSalesforceBulk 2.0操作には、APIバージョン50以降を使用してください。
一括ジョブを監視する
Bulk APIを使用してSalesforceターゲットに書き込みを行うときは、タスクの監視を有効にします。監視を有効にすると、マッピングタスクにより、Salesforceサービスから各バッチのステータスが要求されます。マッピングタスクは、すべてのバッチが終了するまで10秒間隔で要求を繰り返します。Salesforceサービスからの応答は、マッピングタスクによって[すべてのジョブ]ページとセッションログに書き込まれます。監視を有効にすると、マッピングタスクにより、Bulk APIエラーファイルも生成されます。
デフォルトでは、マッピングタスクでBulk ジョブの監視が許可されます。タスクは、監視せずに実行するよう設定できます。監視しない場合、[すべてのジョブ]ページとセッションログにはバッチの作成に関する情報が含まれますが、バッチ処理に関する詳細や正確なジョブ統計は含まれません。
注: Bulk APIジョブを監視すると、マッピングタスクでは追加のAPI呼び出しが実行されます。マッピングタスクが行うAPI呼び出しの数を減らすには、ジョブの監視を無効にします。バッチ処理の詳細については、セッションログのジョブIDとバッチIDを使用してSalesforce統計情報にアクセスします。
Bulk APIの成功ファイルとエラーファイル
ターゲットジョブの一括処理を監視する場合、マッピングタスクにより、Bulk APIエラーファイルがデフォルトで生成されます。Bulk API成功ファイルを作成するように、タスクを設定できます。成功ファイルおよびエラーファイルは、Salesforceサービスが提供する行レベルの詳細を含むCSVファイルです。
Bulk API成功ファイルとエラーファイルには、ジョブID、バッチID、ID、成功、作成、エラーメッセージ情報が含まれています。これらのファイルは、Bulk APIジョブとBulk API 2.0ジョブの両方に適用できます。
以下の表に、Bulk APIの成功ファイルおよびエラーファイルの場所と命名規則を示します。
ファイルタイプ | 場所 | 命名規則 |
---|
Bulk API成功ファイル | <Secure Agentのインストールディレクトリ>\apps\Data_Integration_Server\data\success | Bulk APIの場合: s_mtt_<TaskID>_TimeStamp_bulk_success.csv Bulk API 2.0の場合: s_mtt_<TaskID>_TimeStamp_bulk_v2_success.csv |
Bulk APIエラーファイル | <Secure Agentのインストールディレクトリ>\apps\Data_Integration_Server\data\error | Bulk APIの場合: s_mtt_<TaskID>_TimeStamp_bulk_error.csv Bulk API 2.0の場合: s_mtt_<TaskID>_TimeStamp_bulk_v2_error.csv |
シリアルモードを有効にする
Bulk APIを使用してデータをSalesforceにロードするときに、パラレルロードまたはシリアルロードを実行するようにマッピングまたはマッピングタスクを設定できます。デフォルトでは、パラレルロードが実行されます。
パラレルロードでは、Salesforceにより複数のバッチが同時にターゲットに書き込まれます。Salesforceは、可能なときに各バッチを処理します。シリアルロードでは、Salesforceは受信した順にバッチをターゲットに書き込みます。各バッチのコンテンツ全体を処理した後で、次のバッチが処理されます。
特定の順序でターゲットにロードする必要がない場合は、パラレルロードを使用してパフォーマンスを向上させます。更新/挿入ロード時など、ターゲットでのロード順序を保持する場合は、シリアルロードを使用します。
Bulk API 2.0の場合、シリアルモード選択は使用できません。バッチ処理は、デフォルトでパラレルロードで行われます。
物理削除
Bulk APIまたはBulk API 2.0を使用する場合は、Salesforceターゲットからデータを完全に削除するようにマッピングを設定できます。
Bulk タスクを使用してSalesforceターゲットからデータを削除すると、マッピングにより、削除した行がごみ箱にコピーされます。削除したデータは一定の時間内であれば回復することができますが、ゴミ箱にデータが複製されるため、ハードディスクの容量が消費されます。
物理削除を使用すると、マッピングはごみ箱を介さずに削除されます。物理削除オプションを使用してデータを削除した場合、そのデータをリカバリすることはできません。
プライマリキーチャンクの有効化
Bulk APIを使用してデータをSalesforceから抽出するときに、プライマリキーチャンクを有効にすることができます。デフォルトでは、Bulk APIではプライマリキーチャンクは使用されません。
マッピングでプライマリキーチャンクを有効にすると、Bulk APIではレコードIDに基づいてデータセットが複数のチャンクに分割され、チャンクごとに抽出クエリが作成されます。すべての抽出クエリが完了すると、Bulk APIはデータを結合します。
Salesforceでは、カスタムオブジェクトと特定の標準オブジェクトでプライマリキーチャンクがサポートされます。Bulk API 2.0は、Salesforce側で自動ファイルバッチ処理が行われるため、マッピング中のPKチャンキングをサポートしていません。プライマリキーチャンクをサポートするオブジェクトの詳細については、Salesforceのマニュアルを参照してください。
注: プライマリキーチャンクは、Salesforce接続でSalesforce APIのバージョン32以降が使用されている場合に有効化できます。デフォルトのチャンクサイズは100000です。