Layer2 Cloud Connector でSalesforce データをMySQL に同期する方法:CData JDBC Driver for Salesforce

ドイツのデータ連携(ETL)ツール企業のLayer2 が提供するCloud Connector を使ってみました。

f:id:cdatasoftware:20210409140852p:plain
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

  • Salesforce

  • MySQL 

環境の準備

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」から設定が可能です。

f:id:cdatasoftware:20210409153044p:plain

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)」を設定します。

f:id:cdatasoftware:20210409153408p:plain

どちらも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」をクリックして、保存します。

f:id:cdatasoftware:20210409161610p:plain

マッピング

最後にSalesforce とMySQL のマッピングを設定します。

一番上の「Enable Auto Mapping」で自動でマッピングをしても、手動でマッピングをしてもOKです。

Mapping Settings を開くと、Salesforce Entity、MySQL Entity の両方をクエリして、カラムが表示されます。Salesforce のカラムに対応するMySQL カラム(データを書き込むカラム)をドロップダウンで選択するだけでマッピングが完了します。

マッピング内容を保存します。

f:id:cdatasoftware:20210409161711p:plain

実行

Connection のトップ画面に戻り、「Run Now」ボタンをクリックして手動でSalesforce →MySQL の同期を実行します。 Synchronization successfull! と表示されれば、同期は成功です。

f:id:cdatasoftware:20210409165039p:plain

まとめ

このようにLayer2 Cloud Connector とCData ADO.NET Provider を使うことで、簡単にSaaS データを含むETL ジョブを組むことができました。

CData ADO.NET Provider は、230種類を超えるSaaS やNoSQL に対応しています。お好みのデータ連携をCloud Connector で実現してください。

f:id:cdatasoftware:20210409165705p:plain

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

関連コンテンツ