各製品の資料を入手。
詳細はこちら →SAP ByDesignとSalesforceのデータをPostgreSQLで集計・分析してDynamics 365に連携する方法(リバースETL)
SAP ByDesign とDynamics 365 のデータをPostgreSQL に統合してリードスコアを付加した後に変更後のデータをDynamics 365 連携する、リバースETL 構成のパイプラインを構築します。
最終更新日:2025-01-14
この記事で実現できるSAP ByDesign 連携のシナリオ
こんにちは!プロダクトスペシャリストの宮本です。
CData Sync は、400種類以上のSaaS / DB のデータを各種DB・データウェアハウスにノーコードで統合可能なETL / ELT ツールです。CData Sync では、DB / DWH だけでなくDynamics 365 をはじめとする一部SaaS をデータの転送先としてサポートしているため、いわゆるリバースETL 構成のデータパイプラインを構築できます。
本記事では、SAP ByDesign とDynamics 365 のデータをPostgreSQL に統合、リードスコアを計算・付加した後にDynamics 365 連携する、というリバースETL 構成のパイプラインを作っていきます。
CData Sync とは?

CData Sync は、レポーティング・ダッシュボード、機械学習・AI などで使えるよう、社内のデータを一か所に統合して管理できるデータ基盤をノーコードで構築できるETL ツールで、以下の特徴を持っています。
- SAP ByDesign をはじめとする400種類以上のSaaS / DB データに対応
- 主要なRDB、データレイク、データストア、データウェアハウスにデータを転送
- 業務データのデータ分析基盤へのETL / ELT 機能に特化し、極限まで設定操作をシンプルに
- 主要なSaaS データの差分更新やCDC(Change Data Capture、変更データキャプチャ)のサポート
- フレキシブルなSQL / dbt 連携での取得データの変換
- Dynamics 365 を始めとする一部SaaS へのデータ転送(リバースETL)をサポート
CData Sync を使い始める
CData Sync は、フルマネージド(SaaS)型・オンプレミス型・AWS / Azure でのホスティング、と多様なホスティング環境に対応しています。各オプションで無償トライアルを提供していますので、自社のニーズにフィットするオプションを選択してお試しください。
無償トライアルへまずは製品の概要を知りたい、という方は5分でCData Sync を体験できる製品ツアーをご利用ください。
製品ツアーへリバースETL とは?
ETL の逆方向のデータ転送手法で、データウェアハウス(DWH)からSaaS へデータを転送することを指します。アプリ間連携のようなEAI とは異なり、ETL のようにバッチ処理での連携を行います。例えば、Dynamics 365とSAP ByDesign のデータをデータウェアハウス内に統合、集計・予測してからDynamics 365に書き戻したい場合、以下の2つの方法があります。
- Dynamics 365 → データウェアハウスで連携
- データウェアハウスで変換されたデータをDynamics 365 に書き戻し

それでは、SAP ByDesign とDynamics 365 のデータを統合して書き戻すための具体的な設定手順を説明していきます。
実現するシナリオ
SAP ByDesign とDynamics 365 の情報を一度PostgreSQL に統合して、統合したデータを使ってリードをスコアリング、その結果をDynamics 365 に書き戻します。 リバースETL のデータソースとなるDB としてPostgreSQL を使い、全体のデータの流れは以下のようになります。
Dynamics 365 (Lead) + SAP ByDesign → PostgreSQL(スコアリング)→ Dynamics 365(Lead)なお、Dynamics 365 のLead オブジェクトにはスコアリング結果を格納するカスタム項目を事前に作成しておきます。
Dynamics 365 とSAP ByDesign への接続を設定
はじめに、Dynamics 365 とSAP ByDesign のデータをPostgreSQL に転送するための設定を行います。
CData Sync のブラウザ管理コンソールにログインします。CData Sync のインストールをまだ行っていない方は本記事の製品リンクからCData Sync をクリックして、30日の無償トライアルとしてCData Sync をインストールしてください。インストール後にCData Sync が起動して、ブラウザ設定画面が開きます。
それでは、データソースとしてSAP ByDesign を設定していきましょう。左の[接続]タブをクリックします。
- [+接続の追加]ボタンをクリックします。
- [データソース]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、SAP ByDesign を見つけます。
- SAP ByDesign の右側の[→]をクリックして、SAP ByDesign アカウントへの接続画面を開きます。もし、SAP ByDesign のコネクタがデフォルトでCData Sync にインストールされていない場合には、ダウンロードアイコン(コネクタのアップロードアイコン)をクリックし、[ダウンロード]をクリックすると、CData Sync にコネクタがインストールされます。
- 接続プロパティにSAP ByDesign に接続するアカウント情報を入力をします。
SAP ByDesign に接続するには、次の接続プロパティを設定します。
- Url: SAP ByDesign サイトのURL に設定。例:https://test.sapbydesign.com
- User: アカウントのユーザー名に設定。
- Password: アカウントのパスワードに設定。
- CustomService or AnalyticsService: いずれか一方のみを指定する必要があります。データを取得するカスタムサービスがある場合はCustomService を指定します。アナリティクスサービスのレポートを取得する場合はAnalyticsService を指定します。 どちらも指定されていない場合は、'cc_home_analytics.svc' がAnalyticsService プロパティのデフォルトとして使用されます。指定するサービスがわからない場合は、Services ビューをクエリして利用可能なサービスを一覧表示できます。
- [作成およびテスト]をクリックして、正しくSAP ByDesign に接続できているかをテストして保存します。これでレプリケーションのデータソースとしてSAP ByDesign への接続が設定されました。
Dynamics 365 への接続を設定
データソースとしてDynamics 365 を設定します。接続プロパティまでの設定方法は基本的にSAP ByDesign と同じです。
接続には、Edition およびOrganizationUrl 接続プロパティが必須です。Dynamics 365 コネクタは、以下のエディションへの接続をサポートしています。
- CustomerService
- FieldService
- FinOpsOnline
- FinOpsOnPremise
- HumanResources
- Marketing
- ProjectOperations
- Sales
Dynamics 365 Business Central については、Dynamics 365 Business Central ドライバーを使用してください。
OrganizationUrl は、Dynamics 365 組織へのURL です。例えば、https://orgcb42e1d0.crm.dynamics.com
PostgreSQL への接続を設定
次に、PostgreSQL への接続を設定します。同じく[接続]タブを開きます。
- [+接続の追加]ボタンをクリックします。
- [同期先]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、PostgreSQL を見つけます。
- PostgreSQL の右側の[→]をクリックして、PostgreSQL データベースへの接続画面を開きます。
- 必要な接続プロパティを入力します。PostgreSQL との接続には、通常のUser / Password での認証の他にSSH を利用してよりセキュアに接続することもできますので、併せてご紹介します。
SSH なしの接続には、Server、Port(デフォルトは5432)、Database、およびUser、Password のプロパティを設定します。Database プロパティが設定されない場合には、User のデフォルトデータベースに接続します。
パスワード方式によるSSH 接続
パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Password"
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHPassword: SSH パスワード
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=postgresql-server;Port=5432;UseSSH=true;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;
公開鍵認証方式によるSSH 接続
公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Public_Key"
- SSHClientCertType: キーストアの種類
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHClientCert: 秘密鍵ファイルのパス
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=PostgreSQL-server;Port=5432;UseSSH=true;SSHClientCertType=PEMKEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;
- 接続設定が完了したら、[作成およびテスト]をクリックして、正しく接続できているかをテストします。
- これで転送先としてPostgreSQL を設定できました。CData Sync では、PostgreSQL のデータベース名を指定するだけで、転送するPostgreSQL に合わせたテーブルスキーマを自動的にCREATE TABLE してくれます。同期データに合わせたテーブルを事前に作成するなどの面倒な手順は必要ありません。もちろん、既存テーブルにマッピングを行いデータ同期を行うことも可能です。
Dynamics 365 とSAP ByDesign のデータをPostgreSQL に統合
CData Sync では、データ転送をジョブ単位で設定します。ジョブは、例えばDynamics 365 → PostgreSQL といった1データソース対1転送先の単位で設定し、データソースが持つ複数のテーブルを転送できます。データ転送ジョブを設定するには、[ジョブ]タブに進み、[+ジョブを追加]ボタンをクリックします。
すべてのオブジェクトをデータ転送する場合
Dynamics 365 のすべてのオブジェクト / テーブルをデータ転送するには、[種類]で[すべて同期]を選択して、[タスクを追加]ボタンで確定します。
作成したジョブ画面で、右上の[▷実行]ボタンをクリックするだけで、全Dynamics 365 テーブルをPostgreSQL に転送できます。
オブジェクトを選択してデータ転送する場合
Dynamics 365 から特定のオブジェクト / テーブルを選択してデータ転送を行うことが可能です。[種類]では[標準(個別設定)]を選んでください。
次に[ジョブ]画面で、[タスク]タブをクリックし、[タスクを追加]ボタンをクリックします。
するとCData Sync で利用可能なオブジェクト / テーブルのリストが表示されるので、データ転送を行うオブジェクトにチェックを付けます(複数選択可)。[タスクを追加]ボタンで確定します。

作成したジョブ画面で、[▷実行]ボタンをクリックして(もしくは各タスク毎の実行ボタンを押して)、データ転送ジョブを実行します。
このようにとても簡単にDynamics 365 からPostgreSQL への同期を行うことができました。
PostgreSQL に転送されたテーブルを見てみると、Dynamics 365 のデータが転送されていることが確認できます。スコアリング結果を格納するLeadScore_c(カスタム項目)にはまだ何もデータが入っていないので、ここにSAP ByDesign のデータを統合したリードスコアリングの計算結果を追加します。

同じ手順で、SAP ByDesign のお好みのデータをPostgreSQL に転送できます。今回は[Inventory Balance] テーブルを使用しました。
リードスコアリング
それでは、Dynamics 365 のリードをスコアリングしてPostgreSQL に反映しましょう。このときにSAP ByDesign の[Inventory Balance] データを統合して使います。
CData Sync ではDynamics 365 とSAP ByDesign 以外にも400種類以上のデータソースをサポートしているので、スコアリングに必要なデータ(Webサイト上のユーザーアクティビティやメール開封率、ダウンロード履歴など)が他にあれば追加してみてください。
それでは、PostgreSQL のLead_reverse テーブルのLeadScore_c を参照してみましょう。
本記事ではリードスコアリングの方法は省きますが、PostgreSQL 上でDynamics 365 とSAP ByDesign のデータを使ってスコアリングした結果は以下のようにLeadScore__c カラムに追加しています。

この更新されたリードデータを、元のリードデータを持つDynamics 365 に書き戻します。
Dynamics 365 への書き戻し
書き戻しを行うには、PostgreSQL からDynamics 365 へのジョブを作成する必要があります。ただし、作成方法はデータソースと同期先に注意するだけでほとんど同じです。
では、ジョブを追加ボタンをクリックしてジョブを作成していきます。
- データソース:PostgreSQL
- 同期先:Dynamics 365
- 転送モード:元あるリードデータにスコアリング結果を加えるだけなので、Update

※連携方法は、 Insert、Upsert、Update の3パターンから選択可能です。Upsertの場合は、Dynamics 365 で外部ID として登録している項目のみKey として使用可能
ここでテーブル同士を紐づけます。

次にどの項目をキーにするか、またどのカラム同士をマッピングするかを指定します。今回は LeadScore_c 同士でマッピングしました。

設定は以上で、あとは右上の実行ボタンをクリックするだけです。※運用時はスケジュール設定を行ってください。

実行が完了すると、ステータスや更新した行数が表示されます。

では、最後に Dynamics 365 のLeadオブジェクトを見てみましょう。LeadScore 列にPostgreSQL でスコアリングした結果が取り込まれました!

Dynamics 365 へのリバースETL 構成をCData Sync で実現
このように、Dynamics 365 とSAP ByDesign のデータを統合して書き戻すリバースETL のような複雑に思える構成でも、CData Sync ならノーコードで簡単に実現できます。
リバースETL にはリードスコアリングの他、マスタデータとの連携やWeb 解析ツールが持つユーザーアクティビティとの連携など、幅広いユースケースがあります。30日間の無償トライアルで、リバースETL パイプラインの構築を手軽にお試しください。
日本のユーザー向けにCData Sync は、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。
もっとユースケースが知りたい!という方は、CData Sync の 導入事例を併せてご覧ください。