【ノーコード・リバースETL】SharePoint Excel Services のデータをSnowflake に連携、分析結果をDynamics 365 に連携してみよう

宮本航太
宮本航太
プロダクトスペシャリスト
「リバースETL」がデータ分析結果をネクストアクションに繋げるために注目されています。この記事ではSharePoint Excel Services データをSnowflake に統合・分析後、ノーコードでDynamics 365 に連携する方法を紹介。ノンプログラミングでデータパイプライン構築を実現。



CData Sync は、400種類以上のSaaS / DB のデータを各種DB・データウェアハウスにノーコードで統合可能なETL / ELT ツールです。CData Sync では、DB / DWH だけでなくDynamics 365 をはじめとする一部SaaS をデータの転送先としてサポートしているため、いわゆるリバースETL 構成のデータパイプラインを構築できます

本記事では、SharePoint Excel Services とDynamics 365 のデータをSnowflake に統合、リードスコアを計算・付加した後にDynamics 365 連携する、というリバースETL 構成のパイプラインを作っていきます。

CData Sync とは?

CData Sync の概要画像

CData Sync は、レポーティング・ダッシュボード、機械学習・AI などで使えるよう、社内のデータを一か所に統合して管理できるデータ基盤をノーコードで構築できるETL ツールで、以下の特徴を持っています。

  1. SharePoint Excel Services をはじめとする400種類以上のSaaS / DB データに対応
  2. 主要なRDB、データレイク、データストア、データウェアハウスにデータを転送
  3. 業務データのデータ分析基盤へのETL / ELT 機能に特化し、極限まで設定操作をシンプルに
  4. 主要なSaaS データの差分更新やCDC(Change Data Capture、変更データキャプチャ)のサポート
  5. フレキシブルなSQL / dbt 連携での取得データの変換
  6. Dynamics 365 を始めとする一部SaaS へのデータ転送(リバースETL)をサポート
他にもパワフルな機能を搭載しています。

リバースETL とは?

ETL の逆方向のデータ転送手法で、データウェアハウス(DWH)からSaaS へデータを転送することを指します。アプリ間連携のようなEAI とは異なり、ETL のようにバッチ処理での連携を行います。例えば、Dynamics 365とSharePoint Excel Services のデータをデータウェアハウス内に統合、集計・予測してからDynamics 365に書き戻したい場合、以下の2つの方法があります。

  1. Dynamics 365 → データウェアハウスで連携
  2. データウェアハウスで変換されたデータをDynamics 365 に書き戻し
②の構成がリバースETL に当たります。

リバースETL の構成例

それでは、SharePoint Excel Services とDynamics 365 のデータを統合して書き戻すための具体的な設定手順を説明していきます。

実現するシナリオ

SharePoint Excel Services とDynamics 365 の情報を一度Snowflake に統合、統合したデータを使ってリードをスコアリングし、その結果をDynamics 365 に書き戻します。 リバースETL のデータソースとなるDB としてSnowflake を使い、全体のデータの流れは、

Dynamics 365 (Lead)+SharePoint Excel Services → Snowflake(スコアリング)→ Dynamics 365(Lead)

となります。なお、Dynamics 365 のLead オブジェクトにはスコアリング結果を格納するカスタム項目を事前に作成しておきます。

Dynamics 365 とSharePoint Excel Services への接続を設定

はじめに、Dynamics 365 とSharePoint Excel Services のデータをSnowflake に転送するための設定を行います。

CData Sync のブラウザ管理コンソールにログインします。CData Sync のインストールをまだ行っていない方は本記事の製品リンクからCData Sync をクリックして、30日の無償トライアルとしてCData Sync をインストールしてください。インストール後にCData Sync が起動して、ブラウザ設定画面が開きます。

それでは、データソースとしてSharePoint Excel Services を設定していきましょう。左の[接続]タブをクリックします。

  1. [+接続の追加]ボタンをクリックします。 コネクションの追加。
  2. [データソース]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、SharePoint Excel Services を見つけます。
  3. SharePoint Excel Services の右側の[→]をクリックして、SharePoint Excel Services アカウントへの接続画面を開きます。もし、SharePoint Excel Services のコネクタがデフォルトでCData Sync にインストールされていない場合には、ダウンロードアイコン(コネクタのアップロードアイコン)をクリックし、[ダウンロード]をクリックすると、CData Sync にコネクタがインストールされます。 データソースの追加。
  4. 接続プロパティにSharePoint Excel Services に接続するアカウント情報を入力をします。

    ワークブックへの接続

    どちらのSharePoint エディションをお使いでも、File を Excel ワークブックに設定してください。このパスは以下のプロパティからの相対パスになります。

    • Library:デフォルトではShared Documents ライブラリが使用されます。このプロパティを使って、組織内の別のドキュメントライブラリを指定してみてください。例えば、OneDrive for Business に接続する場合は、このプロパティを"Documents" に設定します。
    • Folder:このプロパティを使って、ライブラリ内のサブフォルダへのパスを指定できます。パスはLibrary で指定されたライブラリ名に関連します。

    テーブルとしてのスプレッドシートデータへの接続

    CData 製品では、基底API で利用可能なオブジェクトに基づいて、使用可能なテーブルを検出していきます。

    API では異なるAPI オブジェクトを表示します。スプレッドシートの構成とSharePoint のバージョンに基づいてAPI を選択しましょう。

    • OData: OData API を使用すると、Excel で[挿入]->[テーブル]をクリックして作成されたExcel テーブルオブジェクト(範囲やスプレッドシートではありません)から定義されたテーブルにアクセスできます。OData API に接続する際、ワークブックにテーブルオブジェクトが定義されていない場合は、CData 製品がテーブルを返さないことがあります。テーブルとしてスプレッドシートまたは範囲に接続するには、UseRESTAPI をtrue に設定してください。
    • REST: REST API を使用すると、Excel テーブルオブジェクト、範囲、およびスプレッドシートから定義されたテーブルへアクセスできます。これがデフォルトの API です。範囲およびスプレッドシートから多数の行をリクエストすることは REST API によって制限されており、CData 製品では返される行数をデフォルトで 100 に制限しています。また CData 製品では、デフォルトで1行目からカラム名を検出します。これを無効にするには、Header を設定してください。

    DefineTables を追加設定すると、Excel の範囲の構文を使用して、範囲に基づいてテーブルを定義できます。大きすぎる範囲は、API によって制限されます。

    SharePoint オンプレミスへの接続

    URL をサーバー名もしくはIP アドレスに設定しましょう。さらに、SharePointVersion と認証値を設定します。

    SharePoint OnPremises を認証するには、AuthScheme を認証タイプに設定し、必要に応じてUserPassword を設定してください。

    Note:SharePoint On-Premises 2010 に接続する場合は、 UseRESTAPI をtrue に設定する必要があります。

      Windows(NTLM)

      最も一般的な認証タイプです。CData 製品では NTLM をデフォルトとして使用するよう事前設定されています。Windows のUserPassword を設定して接続してください。

      その他の認証方法については、ヘルプドキュメントの「はじめに」をご覧ください。

      データソースの追加。
    • [作成およびテスト]をクリックして、正しくSharePoint Excel Services に接続できているかをテストして保存します。これでレプリケーションのデータソースとしてSharePoint Excel Services への接続が設定されました。

Dynamics 365 への接続を設定

データソースとしてDynamics 365 を設定します。接続プロパティまでの設定方法は基本的にSharePoint Excel Services と同じです。

接続には、Edition およびOrganizationUrl 接続プロパティが必須です。Dynamics 365 コネクタは、以下のエディションへの接続をサポートしています。

  • CustomerService
  • FieldService
  • FinOpsOnline
  • FinOpsOnPremise
  • HumanResources
  • Marketing
  • ProjectOperations
  • Sales

Dynamics 365 Business Central については、Dynamics 365 Business Central ドライバーを使用してください。

OrganizationUrl は、Dynamics 365 組織へのURL です。例えば、https://orgcb42e1d0.crm.dynamics.com

Snowflake への接続を設定

次に、Snowflake への接続を設定します。同じく[接続]タブを開きます。

  1. [+接続の追加]ボタンをクリックします。
  2. [同期先]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、Snowflake を見つけます。
  3. Snowflake の右側の[→]をクリックして、Snowflake データベースへの接続画面を開きます。 Snowflake をDestination に選択
  4. 必要な接続プロパティを入力します。Snowflake との接続には、以下のプロパティが必要です。
    • User: Snowflake データベースへの認証用のusername
    • Password: Snowflake ユーザーのpassword
    • AuthScheme: 使用する認証スキーマ。入力可能な値はPASSWORD、もしくはOKTA
    • Account: Snowflake でのアカウント
    • URL: Snowflake インスタンスのURL 例: https://myaccount.snowflakecomputing.com
    • Warehouse: Snowflake ウェアハウスの名前
    • Database: Snowflake データベース名
    • Schema: Snowflake データベースのスキーマ
  5. [作成およびテスト]をクリックして、正しく接続できているかをテストします。 同期先接続のテスト
  6. これで転送先としてSnowflake を設定できました。CData Sync では、Snowflake のデータベース名を指定するだけで、転送するSnowflake に併せたテーブルスキーマを自動的にCREATE TABLE してくれます。同期データに合わせたテーブルを事前に作成するなどの面倒な手順は必要ありません。もちろん、既存テーブルにマッピングを行いデータ同期を行うことも可能です。

Dynamics 365 とSharePoint Excel Services のデータをSnowflake に統合

CData Sync では、データ転送をジョブ単位で設定します。ジョブは、例えばDynamics 365 → Snowflake といった1データソース対1転送先の単位で設定し、データソースが持つ複数のテーブルを転送できます。データ転送ジョブを設定するには、[ジョブ]タブに進み、[+ジョブを追加]ボタンをクリックします。 ジョブの追加

すべてのオブジェクトをデータ転送する場合

Dynamics 365 のすべてのオブジェクト / テーブルをデータ転送するには、[種類]で[すべて同期]を選択して、[タスクを追加]ボタンで確定します。

作成したジョブ画面で、右上の[▷実行]ボタンをクリックするだけで、全Dynamics 365 テーブルをSnowflake に転送できます。

オブジェクトを選択してデータ転送する場合

Dynamics 365 から特定のオブジェクト / テーブルを選択してデータ転送を行うことが可能です。[種類]では[標準(個別設定)]を選んでください。

次に[ジョブ]画面で、[タスク]タブをクリックし、[タスクを追加]ボタンをクリックします。 ジョブへのタスク追加。

するとCData Sync で利用可能なオブジェクト / テーブルのリストが表示されるので、データ転送を行うオブジェクトにチェックを付けます(複数選択可)。[タスクを追加]ボタンで確定します。

タスク選択。

作成したジョブ画面で、[▷実行]ボタンをクリックして(もしくは各タスク毎の実行ボタンを押して)、データ転送ジョブを実行します。 作成したジョブの実行(Dynamics 365 の例)。

このようにとても簡単にDynamics 365 からSnowflake への同期を行うことができました。

Snowflake に転送されたテーブルを見てみると、Dynamics 365 のデータが転送されていることが確認できます。スコアリング結果を格納するLeadScore_c(カスタム項目)にはまだ何もデータが入っていnaino、ここにSharePoint Excel Services のデータを統合したリードスコアリングの計算結果を追加します。

Snowflake への転送結果

同じ手順で、SharePoint Excel Services のお好みのデータをSnowflake に転送できます。今回はAccount テーブルを使用しました。

リードスコアリング

それでは、Dynamics 365 のリードをスコアリングしてSnowflake に反映しましょう。このときにSharePoint Excel Services のAccount データを統合して使います。

CData Sync ではDynamics 365 とSharePoint Excel Services 以外にも400種類以上のデータソースをサポートしているので、スコアリングに必要なデータ(Webサイト上のアクティビティやメール開封率、ダウンロード履歴など)が他にあれば追加してみてください。

それでは、Snowflake のLead_reverse テーブルのLeadScore_c を参照してみましょう。

本記事ではリードスコアリングの方法は省きますが、Snowflake 上でDynamics 365 とSharePoint Excel Services のデータを使ってスコアリングした結果は以下のようにLeadScore_c カラムに追加しています。

スコアリングを算出してLeadScore_c カラムに追加

この更新されたリードデータを、元のリードデータを持つDynamics 365 に書き戻します。

Dynamics 365 への書き戻し

書き戻しを行うには、Snowflake からDynamics 365 へのジョブを作成する必要があります。ただし、作成方法はデータソースと同期先に注意するだけでほとんど同じです。

では、ジョブを追加ボタンをクリックしてジョブを作成していきます。

  • データソース:Snowflake
  • 同期先:Dynamics 365
  • 転送モード:元あるリードデータにスコアリング結果を加えるだけなので、Update
ジョブ追加画面ではUpdateを選択

※連携方法は、 Insert、Upsert、Update の3パターンから選択可能です。Upsertの場合は、Dynamics 365 で外部ID として登録している項目のみKey として使用可能

ここでテーブル同士を紐づけます。

Snowflake のLead_reverse テーブルをDynamics 365 のLead テーブルに同期する設定

次にどの項目をキーにするか、またどのカラム同士をマッピングするかを指定します。今回は LeadScore_c 同士でマッピングしました。

カラムのマッピングを設定

設定は以上で、あとは右上の実行ボタンをクリックするだけです。※運用時はスケジュール設定を行ってください。

右上の実行ボタンをクリック

実行が完了すると、ステータスや更新した行数が表示されます。

ステータスがSuccessfulになっていることを確認

では、最後に Dynamics 365 のLeadオブジェクトを見てみましょう。LeadScore 列にSnowflake でスコアリングした結果が取り込まれました!

Snowflake とDynamics 365 のテーブルを紐づけ

Dynamics 365 へのリバースETL 構成をCData Sync で実現

このように、Dynamics 365 とSharePoint Excel Services のデータを統合して書き戻すリバースETL のような複雑に思える構成でも、CData Sync ならノーコードで簡単に実現できます。

リバースETL にはリードスコアリングの他、マスタデータとの連携やWeb 解析ツールが持つユーザーアクティビティとの連携など、幅広いユースケースがあります。30日間の無償トライアルで、リバースETL パイプラインの構築を手軽にお試しください。

日本のユーザー向けにCData Sync は、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。

もっとユースケースが知りたい!という方は、CData Sync の 導入事例を併せてご覧ください。

はじめる準備はできましたか?

詳細はこちら、または無料トライアルにお申し込みください:

CData Sync お問い合わせ