Skip to main content
従来のETL(抽出、変換、ロード)処理は、分析およびレポーティング用にソースシステムから集中データストアにデータをコピーします。リバースETL はその逆で、中央リポジトリから運用システムにデータを戻します。リバースETL は、データ分析の結果を使って業務プロセスを改善し、カスタマーエクスペリエンスを向上し、意思決定を促進します。 リバースETL の基本的なプロセスは次のとおりです。
  • 分析目的でデータが集計および変換された中央データウェアハウスやデータレイクから、データを抽出します。
  • 抽出したデータを、システムでの利用に適した形に変換します。変換には、データの再フォーマット、フィルタリング、エンハンスが含まれます。
  • 変換されたデータを、さまざまな目的(レコードの更新やワークフローのトリガーなど)に使用可能な運用データベース、アプリケーション、またはその他のシステムにロードします。
では、以下のデータソースでリバースETL 機能がサポートされています。
リバースETL 機能に使用できるソースデータベースは、デルタスナップショットレプリケーションタイプが実装されているデータベース(つまり、SQL EXCEPT ステートメントを許容するソースデータベース)に制限されます。
では、この機能は次の同期先でのみサポートされます(これらの同期先で使用できるレプリケーションの種類はリバースETL だけです)。

リバースETL 処理について

リバースETL は、データウェアハウスに変更をクエリし、そのクエリの結果を同期先に書き込むことで機能します。リバースETL ジョブを初めて実行すると、アプリケーションはデータウェアハウスのソーステーブルの初期スナップショットを作成し、その結果を同期先にロードします。以降の実行では、 が新しいスナップショットを作成し、前回のスナップショットと比較して変更を取り込みます。その後、これらの変更が同期先にロードされます。 デルタスナップショット機能を使用して、 は正しく挿入あるいは更新されない行を記録するエラーテーブルを保持し、行レベルで個々のエラーを確認できるようにします。この機能は、前回のスナップショットで失敗した行もクリーンアップします。 リバースETL を使用すると、データの転送方法を4つのモードから選択できます。
  • Insert: データソースに新しいレコードを挿入する場合は、このモードを選択します。Insert モードでは、ソーステーブルに一意のプライマリキーが必要です。新しいスナップショットを作成するたびに、そのキーによって は新しい識別子(Id)を挿入していることを確認することができます。
  • Upsert: データソースの既存のレコードを更新し、新しいレコードを挿入する場合は、このモードを選択します。Upsert モードでは、ソーステーブルから同期先テーブルにレコードを一致させるキーを定義する必要があります。 Upsert モードでジョブを実行すると、ジョブ > ジョブ名 > 高度な設定 > レプリケートオプションを編集 > 削除の挙動に移動して削除の挙動設定を構成することもできます。これらの設定は、前回のスナップショットには存在していたが最新のスナップショットでは欠落しているレコードを がどのように処理するかを制御します。
    • Skip Deleted(デフォルト): 同期先に変更は加えられません。
    • Soft Delete: は、プライマリキーではないすべてのフィールドをNULL に設定することで、同期先のレコードを更新します。
    • Hard Delete: は、同期先からレコードを完全に削除します。
    は失敗した削除操作を後続の実行で再試行するため、同期先はソーススナップショットと一致した状態を維持します。
  • Update: データソースの既存のレコードを更新する場合は、このモードを選択します。Update モードは、Salesforce ID またはMicrosoft Dynamics 365 代替キーを使用してソーステーブルと同期先テーブルのレコードを一致させます。Salesforce ID またはDynamics 365 代替キーにマッピングするソースカラムを選択する必要があります。
  • Delete: 同期先からレコードを削除するには、このモードを選択します。Delete モードを使用してリバースETL ジョブを実行すると、 は最新のスナップショットと以前のスナップショットを比較し、スナップショットの結果に表示される同期先レコードを削除します。

リバースETL ジョブの作成

リバースETL ジョブを作成するには、ジョブパラメータを定義し、次に必須カラムとオプションカラム、および必要なキーを以下のようにマッピングする必要があります。
  1. ジョブ > ジョブを追加 > 新しいジョブを追加を選択します。この手順により、ジョブを追加ダイアログボックスが開きます。
  2. ジョブ名を入力します。
  3. まず同期先(Salesforce またはMicrosoft Dynamics 365)を選択します。次に、この例に示すようにデータソースを選択します。 リバースETL 用ジョブを追加ダイアログボックス データソースおよび同期先を入力すると、ジョブを追加ダイアログボックスが展開し、上で示すように種類セクションと転送モードセクションが表示されます。種類セクションは、ジョブがリバースETL であることを示し、転送モードセクションでは、実行するデータ転送の種類を選択できます。転送モードについて詳しくは、リバースETL 処理についてを参照してください。
  4. 次へをクリックします。
  5. テーブルを設定ダイアログボックスで、スキーマ、データソーステーブル、および同期先テーブルを選択します。 テーブルを設定ダイアログボックス
  6. 次へをクリックします。
  7. マッピングを設定ダイアログボックスで、次のようにカラムとキーを設定します。
    1. キーを選びます(Upsert およびUpdateモードの場合のみ)。
    2. 必須カラムをマッピングします。
    3. ダイアログボックスの下部にあるカラムを追加をクリックして、必要なカラムを追加します。
  8. ジョブを追加をクリックして、新しいジョブを作成します。ジョブが作成されると、以下に示すように、カラムマッピングタブにテーブルマッピングが表示されます。 ジョブ作成後のカラムマッピングタブ
ジョブ作成後は、次のセクションで説明するとおりジョブを管理できます。

ジョブの管理

リバースETL ジョブを追加したら、 のほかのジョブと同様に、ジョブページから実行および管理することができます。アプリケーションでジョブをクリックすると、 は標準タブ(概要カラムマッピングジョブ履歴イベント高度な設定)を含むジョブページを開きます。次のセクションでは、概要タブ、カラムマッピングタブ、および高度な設定タブで、リバースETL ジョブの設定とマッピングを管理する方法について説明します。

ジョブの概要

ジョブの概要タブは、ジョブの種類や転送モードなど、設定の概要を表示します。以下の例は、ジョブの種類がリバースETL、転送モードがInsertMode です。 リバースETL ジョブの概要タブ 設定を編集するには、編集ボタンをクリックします。設定を編集ダイアログボックスで行うことができる唯一の変更は、ログファイルに対して異なる詳細レベルを選択することです。

カラムのマッピング

先述したように、新しいジョブを追加すると、 は自動的にカラムマッピングタブを開きます。このページには、必須カラムとオプションカラムの両方に関する、データソースとSalesforce 同期先間のマッピングが表示されます。さらに、このページにはInsert モードのキーのマッピングが表示されます。 ソースと同期先のマッピングを表示するカラムマッピングタブ 「リバースETL ジョブの作成」のステップ7 で前述したように、カラムを手動でマップできます。また、 アプリケーションのオートマッピング機能を使用することもできます。これは、カラムフィールドが多数ある場合に特に便利です。 ジョブ作成後、カラムのマッピングとデータソースおよび同期先テーブルの両方を編集できます。次のセクションでは、カラムをオートマッピングする方法と、カラムマッピングとテーブルを編集する方法について説明します。

カラムのオートマッピング

ジョブを作成し、マッピングを設定ダイアログボックスでカラムをマッピングすると、オートマッピングボタンが無効になっていることがわかります。このボタンは、以下に示すように、データソースと同期先の両方に使用するキーカラムを選択すると有効になります: オートマッピングボタンが有効になったマッピングを設定ダイアログボックス 上記の例では、ダイアログボックスの必須セクションには2つのマッピングしか表示されていません。これらは手動で簡単にマッピングできます。しかし、カラム数が多い場合、手動でのカラムマッピングは時間がかかることがあります。そのような場合は、オートマッピング機能を使用すると、ソースカラムとターゲットカラムを素早くマッピングできるため処理が高速化されます。また、オートマッピングを使用すると、カラムの誤ったマッピングによる人為的なミスも軽減されます。
キーまたは必須カラムがないテーブルでは、オートマッピングボタンは無効になります。ボタンを有効にするには、手動でカラムを追加する必要があります。
オートマッピング機能を使用するには:
  1. オートマッピングボタンをクリックします(キーカラム選択後)。ボタンをクリックすると、 はマッピングされていないすべてのソースカラム(必須およびオプション)をスキャンし、大文字小文字を区別せずに、同じ名前の同期先カラムに自動的に一致させます。 オートマッピング後のマッピングを設定ダイアログボックス
  2. ジョブを追加をクリックして、新しいジョブを作成します。ジョブが作成されると、カラムマッピングタブにテーブルマッピングが表示されます。

カラムマッピングとテーブルの編集

マッピングを編集するには:
  1. 編集 > マッピングを編集を選択します。 マッピングを編集オプション
  2. 新しいカラムを追加するか、必要なカラムとキーを変更します。
  3. 保存をクリックして変更を保存し、カラムマッピングページに戻ります。
ソーステーブルまたは同期先テーブルを編集するには:
  1. 編集 > テーブルを編集を選択します。これにより、テーブルを編集ダイアログボックスに戻ります。 テーブルを編集ダイアログボックス
  2. ソーステーブルまたは同期先テーブルを更新します。例えば、同期先とデータソースの両方でUser を選択します。次へをクリックします。
  3. マッピングを編集ダイアログボックスで、ジョブのカラムマッピングを再構築します。
  4. 保存をクリックして変更を保存し、カラムマッピングページに戻ります。

高度な設定オプション

高度な設定タブには、ジョブの高度なレプリケーションオプションが含まれています。現在、リバースETL ジョブでは、タブにはReset Strategy というオプションが1つ含まれています。 は、主キーを使用してテーブル内の行がいつ追加、変更、削除されたかを識別します。リバースETL ジョブでは、Reset Strategy レプリケーションオプションは、クエリでキーが変更された状況をどのように管理するかを定義します。 高度な設定タブのReset Strategy オプション このオプションには2つの設定があります:
  • Full Reset: この設定を使用すると、 は、以前に複製された行を含むソーステーブルの完全な複製でスナップショットテーブルを置き換えます。重複エントリを作成する可能性があるため、Insert モードでこのオプションを使用することは避けてください。
  • Sparse Reset: この設定では、 は既存の行を変更したりエントリを複製したりせずに、スキーマの変更に合わせてスナップショットテーブルを更新します。そのため、Sparse ResetInsert モードでの使用に適したオプションです。
また、Reset Strategy ドロップダウンリストの下にある追加オプションテキストボックスに、レプリケーションオプションのカンマ区切りのリストを入力することもできます。