CData Software Blog

クラウド連携のCData Software の技術ブログです。

Salesforce の取引先責任者データをMySQLにレプリケート・バックアップ:CDataSync

こんにちは。CData リードエンジニアの杉本です。

今回はお客様からよく受ける相談トピックの一つ、CDataSync による Salesforce データをデータベースにレプリケート・バックアップする方法をご紹介します。

www.youtube.com

CData Sync における Salesforce のバックアップ・レプリケートアプローチ

CDataSync はポイント&クリック操作でSalesforceはもちろん、SaasデータやNoSQL DBなどのデータを各種データベースに複製を作成するサーバー製品です。

f:id:sugimomoto:20190826094130p:plain

独自のスケジューリング機能のもと、Salesforce 側で変更が生じたデータのみレプリケートが行われます。

f:id:sugimomoto:20190826094135p:plain

Salesforce 自身も標準で各種バックアップ機能を提供していますが、もっとも大きな違いはバックアップ・レプリケート先となるDB・サービスの種類の多さです。

MySQLSQL ServerOracleといったRDBを対象にすることも可能ですし、Amazon S3やAzure Blob StorageにCSVとしてデータをレプリケートすることも可能ですし、HadoopやSnowflase、Cassandraといったビッグデータ処理のサービスに接続することもできます。

f:id:sugimomoto:20190826094142p:plain

RDBに保持されてしまえば、API利用コストやネットワークの遅延などが軽減できますので、BIツールで使ったり、DWHとして利用したりといった用途にも活用できます。お客様の中にはマスタデータだけスムーズに他のアプリケーションから参照できるようにしたい、といった用途で使っていただいていることもあります。

制限としては、DBへのデータ登録のみが機能として提供されており、Salesforceへのデータ復元機能は保持していない、という点になります。ですので、どうしても保持したデータをSalesforceに登録し直したい、といった場合は別途API連携の開発やCData Salesfroce DriverやExcel Addinを使った処理が必要となりますので、ご注意ください。

今回の記事のシナリオ

この記事では、Salesforceの取引先責任者(Contact)データをオンプレのMySQLにレプリケート・バックアップを行います。

基本的な手順は以下のGIF動画でも確認できます。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/cdatasync.gif

予めSalesforceのアカウント取得およびMySQLの環境は構築しておきましょう。なお、今回はローカルマシンのMySQLですが、例えばAzure MySQLAmazon RDSのMySQLGCPの CloudSQLのMySQLに接続することも可能です。

CData Sync製品のダウンロードおよびインストール

まずはCDataSync製品をダウンロード・インストールします。

こちらのCData Sync製品のページにアクセスして「DOWNLOAD」ボタンをクリックします。ダウンロードに必要な情報(メールアドレス必須)を登録してダウンロードします。

f:id:sugimomoto:20190826094150p:plain

setup.exeがダウンロードされるので、レプリケートを実行するマシン上にインストールします。インストーラを起動して、EURAを確認し、ウィザードに従いインストールします。

f:id:sugimomoto:20190826094157p:plain

途中、管理者のパスワードの設定が必要となりますので、任意のパスワードを入力します。インストーラを最後まで進むと「Run CData Data Sync」にチェックがついていることを確認して終了します。

f:id:sugimomoto:20190826094202p:plain

Windowsのステータスバーに、CData Data Syncのアイコンが表示されて、しばらくたつとブラウザが起動します。

f:id:sugimomoto:20190826094209p:plain

ライセンスのアクティベーション

Login画面が表示されるので、User(admin), Passwordはインストール時に指定したパスワードを入力してSign inします。

f:id:sugimomoto:20190826094215p:plain

ログイン後、Licenseのアクティベーションを行います。「30日の評価版をアクティベート」ボタンをクリックします。

f:id:sugimomoto:20190826094221p:plain

名前とEmailを入力して、使用許諾契約書の同意確認を行い、「評価版をアクティベートする」を実行すればOKです。

f:id:sugimomoto:20190826094226p:plain

接続コネクションの設定

次にデータの取得元とバックアップ・レプリケート先のDBそれぞれの接続情報を設定します。

まず、Salesforceの接続を構成しましょう。

「接続」タブをクリックし、データソース一覧の中から「Salesforce」を選択します。

f:id:sugimomoto:20190826094233p:plain

Salesforceへ接続するためのアカウントとなるユーザーのIDとPassword、そしてAPI接続に必要となるSecutrity Tokenを入力し、接続テストで確認の上、変更を保存します。

f:id:sugimomoto:20190826094241p:plain

セキュリティトークンの取得はこちらのHelpを参考にしてみてください。

実行ジョブの設定

最後に実行ジョブを構成します。

「ジョブ」タブに移り、「+ジョブを追加...」ボタンをクリックします。

f:id:sugimomoto:20190828110654p:plain

ジョブに任意な名称を付け、Source(Salesforce)とDestinationMySQL)を選択し、Salesforce内のどのオブジェクト(テーブル)のレプリケーションを作成するかを選択するために「+テーブルを追加」ボタンをクリックします。

f:id:sugimomoto:20190828110706p:plain

Salesforce内のオブジェクト(テーブル)の一覧が表示されるので、今回はContact(取引先責任者)を追加します。

f:id:sugimomoto:20190828110713p:plain

以下のようにテーブルが追加されたら「変更を保存」をクリックします。

f:id:sugimomoto:20190828110719p:plain

追加されたテーブルを選択して、「Run」ボタンをクリックして実行してみましょう。「The job started runnnning...」というメッセージが表示されて実行されます。

f:id:sugimomoto:20190828110732p:plain

実行が正常に完了すると「The job [job name] has completed.」といったメッセージが表示されます。

f:id:sugimomoto:20190828110740p:plain

レプリケート先のMySQLの管理コンソール(MySQL Workbench)からアクセスすると、テーブルが作成されていることを確認できます。試しにContactテーブルのデータをSELECT文で取得して確認してみます。Salesforce内のデータのレプリカが出来ていますね。

f:id:sugimomoto:20190828110748p:plain

作成したJobを10分間隔で実行するといったスケジュール実行の設定も可能です。設定したら「Save Changes」してください。

f:id:sugimomoto:20190828110757p:plain

Salesforce側でデータを追加してみてください。本スケジュールされたJobは追加・変更されたレコードのみ処理の対象をするので、スケジュールされたジョブでは、追加・変更されたレコードのみ処理されたことを確認できます。追加・変更がなけば下記のように「Records affects:0」となります。

おわりに

CDataSyncではMySQL以外にも、OracleSQL Server、BigQueryなど様々なデータベースへのレプリケートが可能です。

https://www.cdata.com/jp/sync/#destinations

是非試してみてください。