ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →CData Syncハンズオン資料
桑島義行
はじめに
本資料はSaaS やデータベースにあるデータをノーコードで別のデータベースに複製(レプリケーション)できるCData Syncのハンズオン資料です。CData Syncは30日ご試用いただける無償評価版のライセンスがございます。是非、実機にてCData Syncが持つシンプル・かつ・高機能な機能を実機にてお試しください。
前提
CData Syncは、マルチプラットフォーム(Windows / MacOS / Linux / AWS AMI版)で動作します。CData Sync製品のシステム要件はこちらからご参照ください。
本手順では以下のソフトウェアを利用しています。
- Windows Server 2016
- CData Sync 22.0.8424.0
- Salesforce Sales Cloud (Salesforce Sales Cloud 開発者アカウント取得)
- MySQL 8.0.18
本ハンズオンで実現するシナリオ
本手順では、Salesforceの取引先や取引先責任者、商談のデータをMySQLデータベースにノーコードでレプリケーションします。
準備
評価版ライセンスの入手
こちらのCData Sync無償評価版の申し込みフォームにアクセスして必要情報を入力してフォームを送信ください。ご登録いただいたメールアドレスに以下のメールが届きます。本メール内にインストーラの入手先、および、評価版ライセンスの記載があります。
CData Sync製品のインストール、初期設定
届いたメール内のリンク「インストーラをダウロード」をクリックしてインストーラをダウンロードします。CDataSync.exeがダウンロードされたら実行してインストーラを起動してウィザードに従いインストールしてください。
「インストールが正常に完了しました。」が表示されればインストールが完了です。ブラウザでCData Syncの製品マニュアルが開きます。
「Run CData Sync」のチェックをONにして「完了」します。コマンドプロンプトの画面が立ち上がり、しばらくするとブラウザが起動して「localhost:8181」にアクセスした以下の画面が表示されます。
※CData Syncの起動・停止はWindowsのサービスから行え、デフォルトでは自動起動の設定となっています。
CData Syncの管理コンソールにアクセス可能なユーザを作成します。ユーザー名とパスワードを入力して「アカウントの作成」ボタンをクリックします。
※パスワードポリシー:6文字以上、アルファベットの大文字小文字混在、1つ以上の数字
作成したユーザでサインインしてください。
「設定」>「ライセンス」画面が開きます。ライセンスが必要な旨のメッセージが表示されるので「新しいライセンスをインストール」ボタンをクリックします。
「プロダクトキー」タブで名前、メールアドレス、プロダクトキー(メールに記載の「トライアル用ライセンスキー」)をセットして、使用許諾契約書を確認&チェックして「更新」します。
評価版ライセンスがセットされればアクティベーション成功です。
ハンズオン手順
CData Syncでは、3ステップ・ノーコードでデータレプリケーション処理を構築することができます。
- データソースとの接続
- 同期先データベースとの接続
- 複製ジョブの設定&実行
Salesforceとの接続
まずはじめにデータソース(同期元)となるSalesforceへの接続設定を行います。左メニュー「接続」を選択し、接続の追加画面が表示されるので「データソース」タブ内のSalesforceを選択します。
「設定」タブが開くので以下の情報をセットします。
- 名前:任意(例:Salesforce)
- Auth Scheme : Basic
- User : Salesforceへのログインユーザ
- Password : Salesforceへのログインユーザのパスワード
- Security Token : Salesforceのセキュリティトークン
Salesforceへの接続方法はOAuthなど複数の方法をサポートしています。詳しくはこちらの製品ヘルプをご参照ください。
「作成およびテスト」ボタンをクリックしてSalesforceへの接続確認を行います。「Salesforceが正常に保存できました。」ダイアログが出れば成功です。
左上の「接続 / 設定」の「接続」リンクをクリックして「接続の追加」画面に戻ります。
MySQLとの接続
次に同期先データベースへの接続を作成します。接続の追加画面で「同期先」タブ内のMySQLを選択します。
「設定」タブが開くので以下の情報をセットします。
- 名前:任意(例:MySQL)
- Server : MySQLのサーバー名、もしくは、IPアドレス(本例では localhost)
- User : MySQLデータベースへのログインユーザ
- Password : MySQLデータベースへのログインユーザのパスワード
- Database : MySQLのデータベース名(本例では handson)
- User SSL : 本ハンズオンではローカルマシン内のMySQLに接続するためFalse
「作成およびテスト」ボタンをクリックしてMySQLへの接続確認を行います。「Salesforceが正常に保存できました。」ダイアログが出れば成功です。
左上の「接続 / 設定」の「接続」リンクをクリックして「接続の追加」画面に戻ります。設定済みの接続にSalesforceとMySQLへの接続情報が追加されていれば成功です。
SalesforceのデータをMySQLに複製するジョブの作成
作成した接続情報を利用してSalesforceのデータをMySQLにレプリケーションするジョブを作成します。
左メニュー「ジョブ」を選択し、「+ジョブを作成」を選択します。
新しいジョブ作成のダイアログが開くので以下の設定を行い「作成」します。
- ジョブ名:任意(本例では Salesforce2MySQL)
- データソース:Salesforce
- 同期先:MySQL
- レプリケーションの種類:標準(個別設定)
作成したジョブの画面が表示されます。ジョブ設定から「+タスクを追加」ボタンをクリックします。
Salesforceのオブジェクトがテーブルリストとして表示されるので検索ボックスを利用して以下3つのテーブルを追加します。
- Account(取引先)
- Contact(取引先責任者)
- Opportunity (商談)
ジョブ設定にテーブルが追加されたことを確認して「変更を保存」ボタンをクリックしてジョブの設定情報を保存します。
ジョブの実行
それでは、作成したジョブを手動で実行してみます。テーブルを全て選択してチェックをオンにして「▶︎実行」ボタンをクリックします。同期処理が開始されてステータス列に同期したレコード数が表示されます。
MySQL WorkBenchなどでMySQL内のデータを参照してみましょう。作成したデータベース(本例ではhandson)内にAccount/Contact/Opportunityという3つのテーブルが作成されています。テーブル内のデータを見てみましょう。Salesforce内のデータが複製して格納されていれば成功です。
作成したジョブは定期サイクルで自動実行することも可能です。ジョブ設定の「Schedule」タブを開いて「スケジュールを有効にする」をオンにします。例えば間隔を「Hourly」、毎時何分を「0」に設定することで1時間間隔でのジョブ実行が可能です。ジョブの設定を変更した場合は「変更を保存」ボタンをクリックして保存してください。
ジョブの差分更新
再度、テーブルを全て選択してチェックをオンにして「▶︎実行」ボタンをクリックしてみましょう。ステータス列をみると「Records affected : 0」と0件で同期されました。
これは2回目以上のジョブは前回との変更差分のみを抽出して同期されるからです。次のジョブ実行のタイミングまでSalesforce側のデータが変更された場合は、変更レコードのみをMySQLに反映します。これによりジョブの実行時間を短くし、かつ、Salesforceなどデータソース側のAPI呼び出し数を削減することが可能となります。
なお、再度、全件取得しなおしたい場合は、ジョブ設定の「Advanced」タブ内の「テーブルを削除」もしくは「テーブルデータの削除」のチェックをオンにしてジョブを実行することで一度MySQL側のテーブル、もしくはテーブルデータを削除してから全データを取得するジョブを実行することができます。
タスクの設定
デフォルト設定ではデータソース側のテーブル名で全フィールドの同期となりますが、同期先側のテーブル名を変更したり、列(フィールド)を絞り込んで同期することも可能です。
ジョブ設定内のテーブル(本例ではAccount)をクリックします。
タスク設定ダイアログが開きます。「一般」タブ内の同期先テーブル情報内のテーブル名の「▼」をクリックして「+新規テーブルを作成」をクリックしてテーブル名を変更(本例では Salesforce_Account)します。本設定により次回のジョブ実行で同期先のMySQLには変更した名称でテーブルが作成されます。
続いて「カラムマッピング」タブを開きます。「ソースカラム」と「同期先カラム」の間の「→」をクリックすると該当列(フィールド)を含まずに同期することが可能です。
これらの設定はGUI上で設定可能ですが、タスク設定画面の下部の「クエリ」 > 「カスタムクエリを記述」から記述することも可能です。
まとめ
本資料ではSalesforceのデータをノーコードでMySQLに複製する手順をご紹介しました。
CData Syncは30日ご試用いただける無償評価版のライセンスがございます。是非、実機にてCData Syncが持つシンプル・かつ・高機能な機能を実機にてお試しください。