CData Syncを利用してSalesforceデータを分析データベースVerticaへ定期レプリケーション

はじめに

SaaSなどのアプリケーション, データベース, ファイルなどにあるデータを ノーコードで別のデータストアに複製(レプリケーション)出来るツールです。本記事では、Salesforceの取引先や取引先責任者、商談のデータを分析データベースVerticaにノーコードでレプリケーションする方法をご紹介します。

 

前提

CData Syncは、マルチプラットフォーム(Windows / MacOS / Linux / AWS AMI版)で動作します。
本手順では以下のソフトウェアを利用しています。

 

手順

CData Syncの準備

詳細はこちらの手順をご覧ください。本手順に従って評価版ライセンスの入手、および、CData Sync製品のインストール、初期設定まで進めます。

 

Salesforceとの接続

データソース(同期元)となるSalesforceへの接続設定を行います。CData Syncの管理コンソールにサインインして、左メニュー「接続」を選択し、接続の追加画面が表示されるので「データソース」タブ内のSalesforceを選択します。

「設定」タブが開くので以下の情報をセットします。

  • 名前:任意(例:Salesforce)
  • Auth Scheme : Basic
  • User : Salesforceへのログインユーザ
  • Password : Salesforceへのログインユーザのパスワード
  • Security Token : Salesforceのセキュリティトークン

Salesforceへの接続方法はOAuthなど複数の方法をサポートしています。詳しくはこちらの製品ヘルプをご参照ください。

「作成およびテスト」ボタンをクリックしてSalesforceへの接続確認を行います。「Salesforceが正常に保存できました。」ダイアログが出れば成功です。

左上の「接続 / 設定」の「接続」リンクをクリックして「接続の追加」画面に戻ります。

 

Verticaとの接続

次に同期先データベースへの接続を作成します。接続の追加画面で「同期先」タブ内の Add Moreボタンをクリックします。

追加可能なコネクタリストが表示されるので検索ボックスで「Vertica」と入力してVerticaコネクタを追加します。

追加が完了すると自動でCData Syncサービスが再起動します。再度、接続の追加画面を開き、「同期先」タブ内にVerticaが追加されていることを確認して選択します。

「設定」タブが開くので以下の情報をセットします。

  • 名前:任意(例:Vertica)
  • Server : Verticaのサーバー名、もしくは、IPアドレス
  • Port : Verticaへの接続ポート(例:5433)
  • User : Verticaデータベースへのログインユーザ
  • Password : Verticaデータベースへのログインユーザのパスワード
  • Database : Verticaのデータベース名(本例では test)

「作成およびテスト」ボタンをクリックしてVerticaへの接続確認を行います。「Verticaが正常に保存できました。」ダイアログが出れば成功です。

左上の「接続 / 設定」の「接続」リンクをクリックして「接続の追加」画面に戻ります。設定済みの接続にSalesforceとVerticaへの接続情報が追加されていれば成功です。

 

SalesforceのデータをVerticaに複製するジョブの作成

作成した接続情報を利用してSalesforceのデータをVerticaにレプリケーションするジョブを作成します。

左メニュー「ジョブ」を選択し、「+ジョブを作成」を選択します。

新しいジョブ作成のダイアログが開くので以下の設定を行い「作成」します。

  • ジョブ名:任意(本例では Salesforce2Vertica)
  • データソース:Salesforce
  • 同期先:Vertica
  • レプリケーションの種類:標準(個別設定)

作成したジョブの画面が表示されます。ジョブ設定から「+タスクを追加」ボタンをクリックします。

Salesforceのオブジェクトがテーブルリストとして表示されるので検索ボックスを利用して以下3つのテーブルを追加します。

  • Account(取引先)
  • Contact(取引先責任者)
  • Opportunity (商談)

ジョブ設定にテーブルが追加されたことを確認して「変更を保存」ボタンをクリックしてジョブの設定情報を保存します。

 

ジョブの実行

それでは、作成したジョブを手動で実行してみます。テーブルを全て選択してチェックをオンにして「▶︎実行」ボタンをクリックします。同期処理が開始されてステータス列に同期したレコード数が表示されます。

vsqlなどでVertica内のデータを参照してみましょう。作成したデータベース(本例ではtest)内にAccount/Contact/Opportunityという3つのテーブルが作成されています。テーブル内のデータを見てみましょう。Salesforce内のデータが複製して格納されていれば成功です。

作成したジョブは定期サイクルで自動実行することも可能です。ジョブ設定の「Schedule」タブを開いて「スケジュールを有効にする」をオンにします。例えば間隔を「Hourly」、毎時何分を「0」に設定することで1時間間隔でのジョブ実行が可能です。ジョブの設定を変更した場合は「変更を保存」ボタンをクリックして保存してください。

 

ジョブの差分更新

再度、テーブルを全て選択してチェックをオンにして「▶︎実行」ボタンをクリックしてみましょう。ステータス列をみると「Records affected : 0」と0件で同期されました。

これは2回目以上のジョブは前回との変更差分のみを抽出して同期されるからです。次のジョブ実行のタイミングまでSalesforce側のデータが変更された場合は、変更レコードのみをVerticaに反映します。これによりジョブの実行時間を短くし、かつ、Salesforceなどデータソース側のAPI呼び出し数を削減することが可能となります。
なお、再度、全件取得しなおしたい場合は、ジョブ設定の「Advanced」タブ内の「テーブルを削除」もしくは「テーブルデータの削除」のチェックをオンにしてジョブを実行することで一度Vertica側のテーブル、もしくはテーブルデータを削除してから全データを取得するジョブを実行することができます。

 

まとめ

本資料ではSalesforceのデータをノーコードでVerticaに複製する手順をご紹介しました。
CData Syncは30日ご試用いただける無償評価版のライセンスがございます。是非、実機にてCData Syncが持つシンプル・かつ・高機能な機能を実機にてお試しください。

トライアル・お問い合わせ

関連コンテンツ