CData Connect とは?
さまざまなクラウドサービスのデータをOData、MySQL、SQLServer の3つの規格で接続できるインタフェースが提供されるSaaS 型のサービスです。
例えばOData でしか外部との連携ができないサービスがある場合、CData Connect がデータソースと利用ツール・サービスの間に入ってデータソースへの接続用にODataエンドポイントを作成することで、色々なデータソースをODataでアクセスすることが可能になります。
https://www.cdata.com/cloudhub/
Google Cloud Data Fusion とは?
GCPのノーコードETL サービスとなっていて、画面上で簡単にデータ連携のフローを作成することができます。
以下の記事ではDataFusion でSalesforce → BigQuery の連携をCData JDBC Driver で行っています。DataFusion のインスタンスを作成するところから書いてありますので、ご参考ください。
https://www.cdata.com/jp/blog/2019-08-22-113648
本記事のシナリオ
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/
Dynamics 365(CRM)への接続設定を行います。
CData Connect のユーザー作成
CData Connect 上のユーザーを作成することができます。ここで作成したユーザーは他のサービスからCData Connect へ接続する際に使用します。
「USERS」→「Add」でユーザーを作成します。
Dynamics 365(CRM)のMySQL用エンドポイントとデータベース名の確認
まずは、「ENDPOINTS」をクリックしてください。そこにはOData、MySQL、SQLServer のエンドポイントが表示されていますので、CData Connect へ接続するサービスはこのエンドポイントを使用します。
ただ、データベース名がそれだけでは不明ですので、「DATABASES」をクリックして、Name 列にあるデータベース名を確認します。
作成したデータベースをクリック後、「Privilrgrs」タブより使用するユーザーの権限を付与します。
これで、CData Connect へのMySQL として接続できる準備が整いました。
MySQL WorkBench から接続
この時点でMySQL WorkBench で接続することができますので、テーブル一覧やカラムなどを確認することができます。
接続方法は通常のMySQL へ接続する内容と全く同じです。
- コネクション名:任意の名前
- ホストネーム:CData Connect のポート部分を削ったMySQLエンドポイント
- ポート:上記のポート部分
- ユーザー名:CData Connect で作成したユーザー名
- パスワード:上記ユーザーのパスワード
- スキーマ名:CData Connect の仮想データベース名
接続すると、Dynamics365(CRM)のデータがMySQL のDB のようにWorkBench から参照することができます。
MySQLドライバーのダウンロード
こちらのリンクより、MySQL で公式に出しているJDBC ドライバーをダウンロードしてください。
https://www.mysql.com/jp/products/connector/
ダウンロードした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 にアップロードします。インスタンス作成後フロー画面を表示させ、右上にある+ ボタンをクリックします。
右上のDriver のUpload というボタンをクリックします。
先ほどダウンロードしたMySQL のJDBCドライバーをドラッグアンドドロップでアップロードし、次に進みます。
ドライバー名と、ドライバークラス名(com.mysql.jdbc.Driver)を入力します。バージョンはアップロードしたドライバーのファイル名より自動で設定されます。
設定が終わったら、Finishをクリックします。
これで、Data Fusion でMySQL JDBC ドライバーを使用できるようになりました。
データ連携元の設定
左にあるサイドメニューのSource にあるDatabase をクリックすると、右側にデータベースのコネクタが表示されます。
ここではCData Connect への接続部分を設定します。
コネクタをクリックし、接続情報を以下の赤枠の通りに入力します。Label やReference Name は任意の内容で構いません。
Connection String は以下の形式になります。
jdbc:mysql://CDataConnectのMySQLエンドポイント/データベース名?user=作成したユーザー名&password=作成したユーザーのパスワード
クエリを入力します。今回は以下のクエリを入力しました。
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 ボタンをクリックし、スキーマ情報を取得します。
このようにCData Connect から取得するスキーマ情報が表示されます。
これで、まずはCData Connect への接続部分の設定が完了しました。
BigQuery に事前にテーブルを作成
使用するBigQuery のデータセットで新規でテーブルを作成します。
テーブル定義は先ほど表示されたスキーマ情報をもとにカラム名とデータ型を合わせて作成します。
データ連携先の設定
先ほどのデータ連携元と同じ手順でBigQuery コネクタを選択します。
コネクタ同士を接続した後、BigQuery コネクタをクリックします。
使用するBigQuery のプロジェクトIDとデータセットID、テーブル名を設定します。
入力が完了したら、上にあるValidate ボタンを押してエラーが出ないことを確認します。
作成したデータパイプラインの実行
左上にデータパイプライン名を設定後、右上にあるDeploy ボタンをクリックします。
RUN ボタンをクリックします。
数分後、Status がSucceeded になったら正常に処理が完了したことになります。またコネクタ内にあるOut とIn にある数字はレコード数になり、今回は10件Dynamics 365(CRM)からBigQuery へ連携されたことになります。
それでは、BigQuery のコンソールをみてみましょう。
Data Fusion に表示されていたとおり、10件レコードが登録されていることが確認できました。
おわりに
いかがでしたでしょうか。CData Connect を使用すると、このように規格を合わせて簡単にデータを連携することが可能になります。
今回はDynamics 365(CRM)をデータソースとしましたが、CData で提供しているドライバーであれば接続することができますので、例えばMarketo であったり、SAP であったりとさまざまなデータソースをご利用いただけるようになっております。
関連コンテンツ