ドイツのデータ連携(ETL)ツール企業のLayer2 が提供するCloud Connector を使ってみました。
Layer2 Cloud Connector でSalesforce データをMySQL に同期
Layer2 はドイツのデータ連携ツールベンダーです。元々はSharePoint とファイル・ドキュメントやDB データの連携ツールを提供していましたが、Cloud Connector というクラウドデータ・DB・ファイルをまとめてETL 操作できるツールもあります。
www.layer2solutions.com
今回は、Layer2 Cloud Connector を使って、Saleasforce のデータをMySQL に同期します。Layer2 Cloud Connect にはネイティブではSalesforce 用のコネクタがないので、CData ADO.NET Data Provider for Salesforce を使うことで解決しています。
使用する環境
Layer2 Cloud Connector (試用版あり)
Registration for Cloud Connector
CData ADO.NET Provider for Salesforce (試用版あり)
Salesforce ADO.NET Provider - ADO.NET | ADO.NET Provider | LINQ | EF | Entity Framework | Dataset
環境の準備
Layer2 Cloud Connector のインストール
はじめにLayer2 Cloud Connector をインストールします。
無償のトライアル版があるのでこちらをインストールしました。
www.layer2solutions.com
ダウンロードした.zip を展開して、setup.msi ファイルをダブルクリックして、インストーラーを起動してインストールします。
インストール後に「Start Cloud Connector Manager」をクリックして、サービスを起動します。
CData ADO.NET Provider for Salesforce のインストール
Cloud Connector では、外部のADO.NET Provider が使えるようになっています。Salesforce データを扱うために、CData ADO.NET Provider for Salesforce をCloud Connector と同じマシンにインストールします。
www.cdata.com
MySQL の同期先DB
MySQL には同期に使用するテーブルを用意します。
以上がツールの準備になります。
Layer2 Cloud Connector の設定
ここからは、実際にLayer2 Cloud Connector を使っていきましょう。
プロジェクト作成
Cloud Connector では、二つのシステムを同期させるワンセットの処理をConnection と呼んでいます。
「Create New Connection」を右ペインでクリックして、新しい連携Connection を作成します。
Connection Title には、任意の名前をつけます。
Synchronization Direction では、どちらの方向に連携を行うかをラジオボタンで指定します。今回は左から右の片方向連携にします。
連携の自動設定も「Interval」から設定が可能です。
Salesforce 側Data Entity の設定
次に、左のConnection Manager から、新規作成したConnection を選び、「Data Entities」の指定を行います。
一つ目のData Entity にSalesforce を設定していきます。
Data Entity Title には任意の名前を付けます。Salesforce としましょう。
Data Provider 選択で、ドロップダウンで「CData ADO.NET Provider for Salesforce 20xxJ」が表示されているはずです。
これを選択します。
Connection String には、Salesforce に接続するための接続文字列を入力します。
User="MyUserName";SecurityToken="MySecurityToken";
Password 欄にSalesforce のパスワードを入力します。
ここまでを入力して、Connection String の「Verify Connection String」の文字をクリックして、Salesforce への接続が正しいかを確認します。問題がなければ、「Verification succeeded」と表示されます。
次に「Select Statement」にデータを取得するクエリを記入します。CData ADO.NET Provider では、Salesforce のAPI をテーブルデータにモデル化していますので、標準のSQL でクエリを行うことができます。Cloud Connector の試用版は10レコードしか使えないので、以下のようなクエリにしました。
SELECT Id, Name, AnnualRevenue From Account Limit 10
クエリを入力したら、「Primary Key(s)」を設定します。
どちらもVerify をクリックして、確認を行いましょう。ここまでできたら右ペインで「Save Changes」をクリックしてSalesforce の接続情報とクエリ情報を保存します。
MySQL 側のData Entity の設定
次に、Data Entity で二つ目のものを選んで、MySQL に接続を設定していきます。こちらはSalesforce のデータが書き込まれる側になります。
Data Entity Tile は任意。
Data Provider は、.NET Framework Data Provider for MySQL。
Connection String は、「Server="localhost";Database="layer2";Uid="root";」のような感じです。Database 名は事前に準備したデータベースを入れます。Password にMySQL データベースのパスワードを入れます。ここまで入力して、Verification を行いましょう。
次にSelect Statement ですが、データを書き込む側ですが、Cloud Connector としてカラム等をマッピングするためにSelect 文を入れる必要があるようです。
なのでデータを書き込むテーブルとPrimary Key を指定します。ここでVerification を行っておきます。
登録したMySQL 側の内容を「Save Changes」をクリックして、保存します。
マッピング
最後にSalesforce とMySQL のマッピングを設定します。
一番上の「Enable Auto Mapping」で自動でマッピングをしても、手動でマッピングをしてもOKです。
Mapping Settings を開くと、Salesforce Entity、MySQL Entity の両方をクエリして、カラムが表示されます。Salesforce のカラムに対応するMySQL カラム(データを書き込むカラム)をドロップダウンで選択するだけでマッピングが完了します。
マッピング内容を保存します。
実行
Connection のトップ画面に戻り、「Run Now」ボタンをクリックして手動でSalesforce →MySQL の同期を実行します。
Synchronization successfull! と表示されれば、同期は成功です。
まとめ
このようにLayer2 Cloud Connector とCData ADO.NET Provider を使うことで、簡単にSaaS データを含むETL ジョブを組むことができました。
CData ADO.NET Provider は、230種類を超えるSaaS やNoSQL に対応しています。お好みのデータ連携をCloud Connector で実現してください。
関連コンテンツ