CData Sync とは
CData Sync は、各種クラウドサービス(SaaS)データをRDB やクラウドデータストアにレプリケーションできるデータパイプラインツールです。各SaaS のAPI コーディングが不要で400種類を超えるデータソースに対応して、主要なRDB やクラウドストアへのETL/ETL ジョブを作成、実行できます。
この記事では、Microsoft Dynamics 365 Sales (Dynamics CRM)のデータをMicrosoft SQL Server とGoogle BigQuery にレプリケーションする手順を説明します。
CData Sync のインストールとログイン
こちらのリンクからCData Sync をダウンロードし、インストールを行います。CData Sync には、Windows 版、マルチプラットフォーム(Java)版、およびAWS のAMI 版があります。
この記事ではWindows マシンにWindows 版をインストールします。
ダウンロードした.exe ファイルを実行して、デフォルトでインストールをすすめます。途中でコンソールへのログインパスワードを設定するところがあるので任意のパスワードを設定します。
CData Sync はウェブサーバーを内蔵しているので、インストールが終わるとSync サーバーが起動されます。ブラウザ管理コンソールにログインします。
User: Admin
Password: 先ほど設定したパスワード
これでCData Sync が使えるようになりました。
Dynamics 365 からSQL Server にレプリケーション
早速、Dynamics 365 データをSQL Server に複製してみましょう。
Dynamics 365 アカウントをCData Sync のデータソースに設定
まずは、Sync の「接続」タブを開きます。次に「データソース」タブを開きます。データソースは、元々複製するデータが入っているサービスのことです。
Dynamics 365 Sales はデフォルトで入っているコネクタではないので、並んでいるロゴの一番下の「+ Add More」をクリックします。
追加コネクタのダウンロード画面が開くので、検索バーで「Dynamics 365」を探して、クリックします。
Dynamics 365 Sales Connector のインストール画面が開くので、「ダウンロード&インストール」をクリックして、インストールを行います。
無事にインストールされました。Sync は一度再起動されますので、再度ログインします。
これで「接続」タブ→「データソース」に「Dynamics 365 Sales」のアイコンが出てきました。このアイコンをクリックします。
接続設定画面に移るので、Dynamics 365 に接続するためのプロパティを入力して、「次の接続D365 Sales」ボタンをクリックして認証します。
Organization URL: Dynamics 365 のURL
Azure Tenant: 必要なら入力
ブラウザが開き、Microsoft の認証画面が開くので、Dynamics 365 の管理者のユーザー・パスワードでサインインしてデータへのアクセスを許可します。
CData Sync のブラウザ管理コンソールに戻り、接続が「Success!」であることを確認して、「変更を保存」します。これでDynamics 365 への接続が確立できました。
SQL Server をCData Sync の同期先に設定
次にCData Sync の同期先としてMicrosoft SQL Server を接続します。今回はローカルホストのSQL Server ですが、ネットワーク内、もしくはクラウド上のSQL Server にもSSH で接続することが可能です。
では、先ほどと同様に「接続」タブからはじめます。次の「同期先」のタブを開きます。
SQL Server のアイコンを選択します。
接続設定画面でSQL Server に接続します。
Authentication: 認証方式、SQL Server 認証か、Windows 認証を選択
Server: 接続するSQL Server のロケーション
Database: 同期先のデータベース名(テーブルを事前に作る必要はありません)
User: ユーザー
Password: パスワード
「接続のテスト」をクリックするとSQL Server への接続を確認できます。成功したら「変更を保存」します。
Dynamics 365 からSQL Server にデータを同期するジョブを作成
次に「ジョブ」画面に移って、Dynamics 365 からSQL Server へのレプリケーションジョブを作成します。「ジョブを追加」をクリックします。
新しいジョブの作成を行います。
ジョブ名: 任意の名前
ソース: Dynamics 365 の接続名を選択
同期先:SQL Server の接続名を選択
「作成」をクリック。
ジョブ設定を続けて行います。「テーブルを追加」でレプリケーションするDynamics 365 内のオブジェクトを選択します。
Dynamics 365 内のオブジェクトがテーブル形式でリストされます。カスタムオブジェクトなども動的にスキーマ取得してくれます。
レプリケーションで使うテーブルにチェックを入れてテーブルを追加します。
テーブルが追加できました。
Dynamics 365 からSQL Server への同期ジョブを実行
一番シンプルな使い方としては、追加したテーブルをクリックして、手動で気「▶実行」ボタンをクリックします。問題がなければ、レプリケーションジョブが実行され、Dynamics 365 からテーブルスキーマとデータが取得され、SQL Server 側にテーブルが作成され、データが挿入されます。
8件のDynamics 365 のレコードすべてがSQL Server に複製されました。
実際にSQL Server を見ると新しいテーブルが作成され、データが同期されています。
Dynamics 365 からGoogle BigQuery にレプリケーション
次の例では、人気のクラウドDWH のGoogle BigQuery にDynamics 365 データをコピーしていきます。
データソース側の設定は先ほどの例と同じなので省略します。
Google BigQuery のプロジェクトを同期先に設定
Google BigQuery をデータの同期先として設定します。
「接続」タブから「同期先」をクリックして、デフォルトで存在する「Google BigQuery」のアイコンをクリックします。
接続設定画面でGoogle BigQuery への接続情報を入力します。CData Sync はすでにOAuth アプリとして登録されており、面倒なGoogle 側でのOAuth アプリ作成を行わなくても、Dataset id とProject id を設定するだけて、ブラウザ認証が可能です。
Dataset Id: BigQuery のDataset Id
Project Id: BigQuery のProject Id
Google アカウントでサインインして、接続を許可します。
これで「変更を保存」して、Google BigQuery への接続を確立します。
「接続Google BigQuery」をクリックするとブラウザが開いて、認証ができます。
Dynamics365 からBigQuery へのレプリケーションジョブを設定
では、Dynamics 365 からBigQuery へのレプリケーションジョブを作りましょう。データソースはD365 Sales、同期先はGoogleBigQuery の接続です。
同期するDynamics 365 のテーブルを指定します。
Dynamics 365 からGoogle BigQuery にSync を実行
作成したジョブを実行します。
BigQuery にスキーマおよびデータが登録されています。
Sync の機能の紹介
ここからはSync の機能をいくつか紹介していきます。
ジョブのテーブルをクリックするとカスタマイズが可能になります。
定期実行のスケジューリング
上記では手動でレプリケーションジョブを実行しましたが、もちろんSync ではスケジュール実行が可能です。スケジュールタブで、スケジューラをクリックして有効にし、実行間隔を設定します。
差分更新
Dynamics 365 データソースでは、差分更新がデフォルトでサポートされています。
一度目にSQL Server へのレプリケーションを実行した後に、Dynamics 365 のリードに1レコードを追加します。
レコード追加後にSync のジョブを再度実行します。最初の実行では8件のレコードがすべて同期されましたが、次は元々のレコードはレプリケーションされずに、新規で追加されたレコード1件だけのレプリケーションとして実行されました。差分更新で効率的にデータを複製することができます。
SQL Server 側では、8件に新しいレコードが1件追加されています。
カスタムクエリ
CData Sync では、SQL 形式で、各種カスタムクエリを設定することができます。カスタムクエリを記述するをクリックし、92-SQL でフィルタリングやJOIN までが可能になっています。
既存テーブルへのマッピング
CData Sync では、基本的には新規でCREATE TABLE してくれますが、既存のテーブルに対してデータをレプリケーションすることも可能です。「同期先テーブル情報」から「既存のテーブルにマップ」を選択するだけです。
カラムマッピング
全カラムを同期しない場合や、既存テーブルへのマッピングなどの場合にはカスタムでカラムマッピングをビジュアルで行うことが可能です。さらにSQL関数を使って、Dynamics365 のデータから計算したカラムを作成してDB に書き込むことも可能です。
プレビュー
もちろん実際にDB にデータをレプリケートする前に同期するカスタマイズしたデータをプレビューすることが可能です。
まとめ
このようにノーコードでDynamics 365 データを分析しやすいテーブル形式のデータとしてDB やクラウドデータストアにレプリケーションできました。
CData Sync では、Dynamics 365 以外に400種類以上のSaaS やアプリケーションをサポートしています。
是非、CData Sync をお試し下さい。