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

  • MySQLドライバーのダウンロード
  • Cloud Data Fusion の作成~設定
  • おわりに
  • 目次

    CData Connect とは?

    さまざまなクラウドサービスのデータをOData、MySQL、SQLServer の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 のインスタンスを作成するところから書いてありますので、ご参考ください。

    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/
    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、MySQL、SQLServer のエンドポイントが表示されていますので、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

    先ほどダウンロードしたMySQL のJDBCドライバーをドラッグアンドドロップでアップロードし、次に進みます。
    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

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

     <span class="synStatement">select</span> Id, Address1_Country, Address1_StateOrProvince,
     Address1_City, Address1_Line1, Address1_PostalCode,
     EMailAddress1, Name, NumberOfEmployees, PrimaryContactId_Name, 
     Revenue, Telephone1, WebSiteURL, ModifiedOn
     <span class="synSpecial">from</span> 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 であったりとさまざまなデータソースをご利用いただけるようになっております。

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

    関連コンテンツ