CData Software Blog

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

Google Cloud Data Fusion のSaaS 連携をCData Connect で拡張:Dynamics 365(CRM)編

こんにちは、CDataでエンジニアをしてます宮本です。

今回はGCP上のノーコードETLサービス Google Cloud Data Fusion と、CData が提供するSaaS 型のデータハブサービス「CData Connect」をつないで、Dynamics 365(CRM)のデータをBigQuery に連携する方法をご紹介します。 f:id:sennanvolar44:20201020231804p:plain

CData Connect とは?

さまざまなクラウドサービスのデータをOData、MySQLSQLServer の3つの規格で接続できるインタフェースが提供されるSaaS 型のサービスです。
例えばOData でしか外部との連携ができないサービスがある場合、CData Connect がデータソースと利用ツール・サービスの間に入ってデータソースへの接続用にODataエンドポイントを作成することで、色々なデータソースをODataでアクセスすることが可能になります。

https://www.cdata.com/cloudhub/
f:id:sennanvolar44:20201020163116p:plain

Google Cloud Data Fusion とは?

GCPのノーコードETL サービスとなっていて、画面上で簡単にデータ連携のフローを作成することができます。
以下の記事ではDataFusion でSalesforce → BigQuery の連携をCData JDBC Driver で行っています。DataFusion のインスタンスを作成するところから書いてありますので、ご参考ください。

www.cdatablog.jp

本記事のシナリオ

CData Connect にてDynamics 365(CRM)へのMySQL インタフェースを作成後、DataFusion からは普通のMySQL データベースへ接続する感覚でCData Connect に接続し、Dynamics 365(CRM)のデータをBigQuery に連携するデータパイプラインを作成・実行します。

必要なもの

  • CData Coonect のアカウント
    (トライアルはこちら
  • Dynamics 365(CRM) のアカウント
  • Cloud Data Fusion
  • BigQuery
  • MySQL の公式JDBC ドライバー

手順

利用するサービスなどがいくつかありますが、どれもやることは少ないので、一つずつみていきましょう。

CData Connect でDynamics 365(CRM)への接続設定とエンドポイントの作成

Dynamics 365(CRM)への接続設定

CData Connect のアカウントでログイン後、「DATABASE」→Dynamics 365(CRM)のアイコンをクリックします。
※CDataConnect のアカウントがない場合は、以下のリンクよりトライアル申請を行ってください。

https://www.cdata.com/cloudhub/
f:id:sennanvolar44:20201020173609p:plain

Dynamics 365(CRM)への接続設定を行います。
f:id:sennanvolar44:20201020174149p:plain

CData Connect のユーザー作成

CData Connect 上のユーザーを作成することができます。ここで作成したユーザーは他のサービスからCData Connect へ接続する際に使用します。
「USERS」→「Add」でユーザーを作成します。
f:id:sennanvolar44:20201020174946p:plain

Dynamics 365(CRM)のMySQL用エンドポイントとデータベース名の確認

まずは、「ENDPOINTS」をクリックしてください。そこにはOData、MySQLSQLServer のエンドポイントが表示されていますので、CData Connect へ接続するサービスはこのエンドポイントを使用します。
f:id:sennanvolar44:20201020175740p:plain ただ、データベース名がそれだけでは不明ですので、「DATABASES」をクリックして、Name 列にあるデータベース名を確認します。
f:id:sennanvolar44:20201020175431p:plain

作成したデータベースをクリック後、「Privilrgrs」タブより使用するユーザーの権限を付与します。
f:id:sennanvolar44:20201020215804p:plain

これで、CData Connect へのMySQL として接続できる準備が整いました。

MySQL WorkBench から接続

この時点でMySQL WorkBench で接続することができますので、テーブル一覧やカラムなどを確認することができます。
接続方法は通常のMySQL へ接続する内容と全く同じです。

  • コネクション名:任意の名前
  • ホストネーム:CData Connect のポート部分を削ったMySQLエンドポイント
  • ポート:上記のポート部分
  • ユーザー名:CData Connect で作成したユーザー名
  • パスワード:上記ユーザーのパスワード
  • スキーマ名:CData Connect の仮想データベース名

f:id:sennanvolar44:20201021112605p:plain

接続すると、Dynamics365(CRM)のデータがMySQL のDB のようにWorkBench から参照することができます。
f:id:sennanvolar44:20201021113733p:plain

MySQLドライバーのダウンロード

こちらのリンクより、MySQL で公式に出しているJDBC ドライバーをダウンロードしてください。

https://www.mysql.com/jp/products/connector/ f:id:sennanvolar44:20201020181430p:plain

ダウンロードしたjdbcドライバーは、あとでData Fusion にアップロードします。

Cloud Data Fusion の作成~設定

ではここからData Fusion の作成に入ります。
Data Fusion のインスタンス作成については、以下の記事を参照してください。
Cloud Data Fusion で Salesforce から BigQuery へデータ連携 - CData Software Blog

MySQL JDBC Driver のアップロード

ここではMySQL JDBC ドライバーをData Fusion にアップロードします。インスタンス作成後フロー画面を表示させ、右上にある+ ボタンをクリックします。
f:id:sennanvolar44:20201020181657p:plain

右上のDriver のUpload というボタンをクリックします。
f:id:sennanvolar44:20201020181915p:plain

先ほどダウンロードしたMySQLJDBCドライバーをドラッグアンドドロップでアップロードし、次に進みます。
f:id:sennanvolar44:20201020213137p:plain

ドライバー名と、ドライバークラス名(com.mysql.jdbc.Driver)を入力します。バージョンはアップロードしたドライバーのファイル名より自動で設定されます。
設定が終わったら、Finishをクリックします。
f:id:sennanvolar44:20201020213703p:plain

これで、Data Fusion でMySQL JDBC ドライバーを使用できるようになりました。

データ連携元の設定

左にあるサイドメニューのSource にあるDatabase をクリックすると、右側にデータベースのコネクタが表示されます。
f:id:sennanvolar44:20201020214158p:plain

ここではCData Connect への接続部分を設定します。 コネクタをクリックし、接続情報を以下の赤枠の通りに入力します。Label やReference Name は任意の内容で構いません。
Connection String は以下の形式になります。

jdbc:mysql://CDataConnectのMySQLエンドポイント/データベース名?user=作成したユーザー名&password=作成したユーザーのパスワード

f:id:sennanvolar44:20201020223938p:plain

クエリを入力します。今回は以下のクエリを入力しました。

 select Id, Address1_Country, Address1_StateOrProvince,
 Address1_City, Address1_Line1, Address1_PostalCode,
 EMailAddress1, Name, NumberOfEmployees, PrimaryContactId_Name, 
 Revenue, Telephone1, WebSiteURL, ModifiedOn
 from DynamicsCRM1.Account;

入力後、GET SCHEMA ボタンをクリックし、スキーマ情報を取得します。
f:id:sennanvolar44:20201020224350p:plain

このようにCData Connect から取得するスキーマ情報が表示されます。
f:id:sennanvolar44:20201020224631p:plain

これで、まずはCData Connect への接続部分の設定が完了しました。

BigQuery に事前にテーブルを作成

使用するBigQuery のデータセットで新規でテーブルを作成します。
テーブル定義は先ほど表示されたスキーマ情報をもとにカラム名とデータ型を合わせて作成します。
f:id:sennanvolar44:20201020230443p:plain

データ連携先の設定

先ほどのデータ連携元と同じ手順でBigQuery コネクタを選択します。
f:id:sennanvolar44:20201020230653p:plain

コネクタ同士を接続した後、BigQuery コネクタをクリックします。
f:id:sennanvolar44:20201020230918p:plain

使用するBigQuery のプロジェクトIDとデータセットID、テーブル名を設定します。
入力が完了したら、上にあるValidate ボタンを押してエラーが出ないことを確認します。
f:id:sennanvolar44:20201020232359p:plain

作成したデータパイプラインの実行

左上にデータパイプライン名を設定後、右上にあるDeploy ボタンをクリックします。
f:id:sennanvolar44:20201020234512p:plain

RUN ボタンをクリックします。
f:id:sennanvolar44:20201020234645p:plain

数分後、Status がSucceeded になったら正常に処理が完了したことになります。またコネクタ内にあるOut とIn にある数字はレコード数になり、今回は10件Dynamics 365(CRM)からBigQuery へ連携されたことになります。
f:id:sennanvolar44:20201021000135p:plain

それでは、BigQuery のコンソールをみてみましょう。

Data Fusion に表示されていたとおり、10件レコードが登録されていることが確認できました。
f:id:sennanvolar44:20201021000555p:plain

おわりに

いかがでしたでしょうか。CData Connect を使用すると、このように規格を合わせて簡単にデータを連携することが可能になります。
今回はDynamics 365(CRM)をデータソースとしましたが、CData で提供しているドライバーであれば接続することができますので、例えばMarketo であったり、SAP であったりとさまざまなデータソースをご利用いただけるようになっております。