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

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

それでは、IBM Cloud Data Engine とSalesforce のデータを統合して書き戻すための具体的な設定手順を説明していきます。
実現するシナリオ
IBM Cloud Data Engine とSalesforce の情報を一度PostgreSQL に統合して、統合したデータを使ってリードをスコアリング、その結果をSalesforce に書き戻します。 リバースETL のデータソースとなるDB としてPostgreSQL を使い、全体のデータの流れは以下のようになります。
Salesforce (Lead) + IBM Cloud Data Engine → PostgreSQL(スコアリング)→ Salesforce(Lead)なお、Salesforce のLead オブジェクトにはスコアリング結果を格納するカスタム項目を事前に作成しておきます。
Salesforce とIBM Cloud Data Engine への接続を設定
はじめに、Salesforce とIBM Cloud Data Engine のデータをPostgreSQL に転送するための設定を行います。
CData Sync のブラウザ管理コンソールにログインします。CData Sync のインストールをまだ行っていない方は本記事の製品リンクからCData Sync をクリックして、30日の無償トライアルとしてCData Sync をインストールしてください。インストール後にCData Sync が起動して、ブラウザ設定画面が開きます。
それでは、データソースとしてIBM Cloud Data Engine を設定していきましょう。左の[接続]タブをクリックします。
- [+接続の追加]ボタンをクリックします。
- [データソース]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、IBM Cloud Data Engine を見つけます。
- IBM Cloud Data Engine の右側の[→]をクリックして、IBM Cloud Data Engine アカウントへの接続画面を開きます。もし、IBM Cloud Data Engine のコネクタがデフォルトでCData Sync にインストールされていない場合には、ダウンロードアイコン(コネクタのアップロードアイコン)をクリックし、[ダウンロード]をクリックすると、CData Sync にコネクタがインストールされます。
- 接続プロパティにIBM Cloud Data Engine に接続するアカウント情報を入力をします。
IBM Cloud Data Engine は、OAuth およびHMAC 認証標準を使います。詳細はヘルプドキュメントを参照してください。
- [作成およびテスト]をクリックして、正しくIBM Cloud Data Engine に接続できているかをテストして保存します。これでレプリケーションのデータソースとしてIBM Cloud Data Engine への接続が設定されました。
Salesforce への接続を設定
データソースとしてSalesforce を設定します。接続プロパティまでの設定方法は基本的にIBM Cloud Data Engine と同じです。
Salesforce への接続には通常のログインの他、OAuth やSSO を利用できます。ログイン方式では、ユーザー名、パスワード、セキュリティトークンを使って接続します。Salesforce セキュリティトークンの取得についてはこちらの記事をご確認ください。
ユーザー名、パスワードを使用しない、またはできない場合、OAuth 認証を利用できます。
SSO (シングルサインオン) は、SSOProperties、SSOLoginUrl、TokenUrl プロパティを設定することでID プロバイダー経由で利用できます。詳細はヘルプドキュメントの「はじめに」を参照してください。
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 してくれます。同期データに合わせたテーブルを事前に作成するなどの面倒な手順は必要ありません。もちろん、既存テーブルにマッピングを行いデータ同期を行うことも可能です。
Salesforce とIBM Cloud Data Engine のデータをPostgreSQL に統合
CData Sync では、データ転送をジョブ単位で設定します。ジョブは、例えばSalesforce → PostgreSQL といった1データソース対1転送先の単位で設定し、データソースが持つ複数のテーブルを転送できます。データ転送ジョブを設定するには、[ジョブ]タブに進み、[+ジョブを追加]ボタンをクリックします。
すべてのオブジェクトをデータ転送する場合
Salesforce のすべてのオブジェクト / テーブルをデータ転送するには、[種類]で[すべて同期]を選択して、[タスクを追加]ボタンで確定します。
作成したジョブ画面で、右上の[▷実行]ボタンをクリックするだけで、全Salesforce テーブルをPostgreSQL に転送できます。
オブジェクトを選択してデータ転送する場合
Salesforce から特定のオブジェクト / テーブルを選択してデータ転送を行うことが可能です。[種類]では[標準(個別設定)]を選んでください。
次に[ジョブ]画面で、[タスク]タブをクリックし、[タスクを追加]ボタンをクリックします。
するとCData Sync で利用可能なオブジェクト / テーブルのリストが表示されるので、データ転送を行うオブジェクトにチェックを付けます(複数選択可)。[タスクを追加]ボタンで確定します。

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

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

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

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

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

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

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

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

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