NetSuite SuiteAnalyticsとDynamics 365のデータをSQL Serverで集計・分析してDynamics 365に連携する方法(リバースETL)
CData Sync は、400種類以上のSaaS / DB のデータを各種DB・データウェアハウスにノーコードで統合可能なETL / ELT ツールです。CData Sync では、DB / DWH だけでなくDynamics 365 をはじめとする一部SaaS をデータの転送先としてサポートしているため、いわゆるリバースETL 構成のデータパイプラインを構築できます。
本記事では、NetSuite SuiteAnalytics とDynamics 365 のデータをSQL Server に統合、リードスコアを計算・付加した後にDynamics 365 に書き戻す、というリバースETL 構成のパイプラインを作っていきます。
CData Sync とは?
CData Sync は、レポーティング・ダッシュボード、機械学習・AI などで使えるよう、社内のデータを一か所に統合して管理できるデータ基盤をノーコードで構築できるETL ツールで、以下の特徴を持っています。
- NetSuite SuiteAnalytics をはじめとする400種類以上のSaaS / DB データに対応
- 主要なRDB、データレイク、データストア、データウェアハウスにデータを転送
- 業務データのデータ分析基盤へのETL / ELT 機能に特化し、極限まで設定操作をシンプルに
- 主要なSaaS データの差分更新やCDC(Change Data Capture、変更データキャプチャ)のサポート
- フレキシブルなSQL / dbt 連携での取得データの変換
- Dynamics 365 を始めとする一部SaaS へのデータ転送(リバースETL)をサポート
リバースETL とは?
ETL の逆方向のデータ転送手法で、データウェアハウス(DWH)からSaaS へデータを転送することを指します。アプリ間連携のようなEAI とは異なり、ETL のようにバッチ処理での連携を行います。例えば、Dynamics 365とNetSuite SuiteAnalytics のデータをデータウェアハウス内に統合、集計・予測してからDynamics 365に書き戻したい場合、以下の2つの方法があります。
- Dynamics 365 → データウェアハウスで連携
- データウェアハウスで変換されたデータをDynamics 365 に書き戻し
それでは、NetSuite SuiteAnalytics とDynamics 365 のデータを統合して書き戻すための具体的な設定手順を説明していきます。
実現するシナリオ
NetSuite SuiteAnalytics とDynamics 365 の情報を一度SQL Server に統合、統合したデータを使ってリードをスコアリングし、その結果をDynamics 365 に書き戻します。 リバースETL のデータソースとなるDB としてSQL Server を使い、全体のデータの流れは、
Dynamics 365 (Lead)+NetSuite SuiteAnalytics → SQL Server(スコアリング)→ Dynamics 365(Lead)となります。なお、Dynamics 365 のLead オブジェクトにはスコアリング結果を格納するカスタム項目を事前に作成しておきます。
Dynamics 365 とNetSuite SuiteAnalytics への接続を設定
はじめに、Dynamics 365 とNetSuite SuiteAnalytics のデータをSQL Server に転送するための設定を行います。
CData Sync のブラウザ管理コンソールにログインします。CData Sync のインストールをまだ行っていない方は本記事の製品リンクからCData Sync をクリックして、30日の無償トライアルとしてCData Sync をインストールしてください。インストール後にCData Sync が起動して、ブラウザ設定画面が開きます。
それでは、データソースとしてNetSuite SuiteAnalytics を設定していきましょう。左の[接続]タブをクリックします。
- [+接続の追加]ボタンをクリックします。
- [データソース]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、NetSuite SuiteAnalytics を見つけます。
- NetSuite SuiteAnalytics の右側の[→]をクリックして、NetSuite SuiteAnalytics アカウントへの接続画面を開きます。もし、NetSuite SuiteAnalytics のコネクタがデフォルトでCData Sync にインストールされていない場合には、ダウンロードアイコン(コネクタのアップロードアイコン)をクリックし、[ダウンロード]をクリックすると、CData Sync にコネクタがインストールされます。
- 接続プロパティにNetSuite SuiteAnalytics に接続するアカウント情報を入力をします。
前提条件
NetSuite SuiteAnalytics に接続する前に、NetSuite アカウントでSuiteAnalytics Connect を設定する必要があります。
-
Connect Service 機能を有効にします。
-
アカウント管理者がConnect Service 機能を使用するアカウントとロールを有効にしていることを確認します。
-
Setup > Company > Enable Features に移動します。
-
Analytics タブをクリックし、SuiteAnalytics Connect ボックスにチェックを入れます。
-
-
既存のロールにSuiteAnalytics Connect 権限を追加します。
-
Setup > Users/Roles > User Management > Manage Roles に移動します。
-
SuiteAnalytics Connect 権限を追加するロール名の横にあるCustomize をクリックします。
-
Permissions タブの下にあるSetup タブをクリックします。
-
SuiteAnalytics Connect 権限を追加します。
-
Add とSave をクリックします。
-
-
Suite Analytics Connect 権限を確認します。
-
ホームページでSettings ポートレットを見つけ、Set Up SuiteAnalytics Connect をクリックします。
-
Your Configuration をクリックして、サービスホストとアカウントID 情報を表示します。これらの設定はServer とAccount ID 接続プロパティに直接マッピングされます。
-
NetSuite SuiteAnalytics コネクタの追加
Sync でNetSuite SuiteAnalytics のデータを使用するには、まず以下の手順でコネクタを追加します。
-
Sync ダッシュボードのConnections ページを開きます。
-
Add Connection をクリックしてSelect Connectors ページを開きます。
-
Sources タブをクリックし、NetSuite SuiteAnalytics の行を見つけます。
-
その行の末尾にあるConfigure Connection アイコンをクリックしてNew Connection ページを開きます。Configure Connection アイコンが利用できない場合は、Download Connector アイコンをクリックしてNetSuite SuiteAnalytics コネクタをインストールします。新しいコネクタのインストールの詳細については、ヘルプドキュメントのConnections セクションをご参照ください。
NetSuite SuiteAnalytics への認証
コネクタを追加したら、必要なプロパティを設定します。
-
Connection Name:任意の接続名を入力します。
-
Server:前述の手順で確認したService Host の値を入力します。
-
Account Id:前述の手順で確認したAccount Id の値を入力します。
-
Role Id:前述の手順で更新したRole ID を入力します。
-
User:NetSuite アカウントへの認証に使用するユーザー名を入力します。
-
Password:そのアカウントに関連付けられたパスワードを入力します。
-
- [作成およびテスト]をクリックして、正しくNetSuite SuiteAnalytics に接続できているかをテストして保存します。これでレプリケーションのデータソースとしてNetSuite SuiteAnalytics への接続が設定されました。
Dynamics 365 への接続を設定
データソースとしてDynamics 365 を設定します。接続プロパティまでの設定方法は基本的にNetSuite SuiteAnalytics と同じです。
接続には、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
SQL Server への接続を設定
次に、SQL Server への接続を設定します。同じく[接続]タブを開きます。
- [+接続の追加]ボタンをクリックします。
- [同期先]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、SQL Server を見つけます。
- SQL Server の右側の[→]をクリックして、SQL Server データベースへの接続画面を開きます。
- 必要な接続プロパティを入力します。SQL Server との接続には、以下のプロパティが必要です。
- User: SQL Server データベースへの認証用のusername
- Password: SQL Server ユーザーのpassword
- AuthScheme: 使用する認証スキーマ。入力可能な値はPASSWORD、もしくはOKTA
- Account: SQL Server でのアカウント
- URL: SQL Server インスタンスのURL 例: https://myaccount.snowflakecomputing.com
- Warehouse: SQL Server ウェアハウスの名前
- Database: SQL Server データベース名
- Schema: SQL Server データベースのスキーマ
- [作成およびテスト]をクリックして、正しく接続できているかをテストします。
- これで転送先としてSQL Server を設定できました。CData Sync では、SQL Server のデータベース名を指定するだけで、転送するSQL Server に併せたテーブルスキーマを自動的にCREATE TABLE してくれます。同期データに合わせたテーブルを事前に作成するなどの面倒な手順は必要ありません。もちろん、既存テーブルにマッピングを行いデータ同期を行うことも可能です。
Dynamics 365 とNetSuite SuiteAnalytics のデータをSQL Server に統合
CData Sync では、データ転送をジョブ単位で設定します。ジョブは、例えばDynamics 365 → SQL Server といった1データソース対1転送先の単位で設定し、データソースが持つ複数のテーブルを転送できます。データ転送ジョブを設定するには、[ジョブ]タブに進み、[+ジョブを追加]ボタンをクリックします。
すべてのオブジェクトをデータ転送する場合
Dynamics 365 のすべてのオブジェクト / テーブルをデータ転送するには、[種類]で[すべて同期]を選択して、[タスクを追加]ボタンで確定します。
作成したジョブ画面で、右上の[▷実行]ボタンをクリックするだけで、全Dynamics 365 テーブルをSQL Server に転送できます。
オブジェクトを選択してデータ転送する場合
Dynamics 365 から特定のオブジェクト / テーブルを選択してデータ転送を行うには、[種類]で[標準(個別設定)]を選んでください。
次に[ジョブ]画面で、[タスク]タブをクリックし、[タスクを追加]ボタンをクリックします。 
するとCData Sync で利用可能なオブジェクト / テーブルのリストが表示されるので、データ転送を行うオブジェクトにチェックを付けます(複数選択可)。[タスクを追加]ボタンで確定します。
作成したジョブ画面で、[▷実行]ボタンをクリックして(もしくは各タスク毎の実行ボタンを押して)、データ転送ジョブを実行します。 
このようにとても簡単にDynamics 365 からSQL Server への同期を行うことができました。
SQL Server に転送されたテーブルを見てみると、無事にDynamics 365 のデータが転送されていることが確認できます。スコアリング結果を格納するLeadScore_c(カスタム項目)にはまだ何もデータが入っていないので、ここにNetSuite SuiteAnalytics のデータを統合したリードスコアリングの計算結果を追加します。
同じ手順で、NetSuite SuiteAnalytics のお好みのデータをSQL Server に転送できます。今回はAccount テーブルを使用しました。
リードスコアリング
それでは、Dynamics 365 のリードをスコアリングしてSQL Server に反映しましょう。このときにNetSuite SuiteAnalytics のAccount のデータを統合して使います。
CData Sync ではDynamics 365 とNetSuite SuiteAnalytics 以外にも400種類以上のデータソースをサポートしているので、スコアリングに必要なデータ(Webサイト上のアクティビティやメール開封率、ダウンロード履歴など)が他にあれば追加してみてください。
それでは、SQL Server のLead_Reverse_ETL テーブルのLeadScore_c を参照してみましょう。
本記事ではリードスコアリングの方法は省きますが、SQL Server 上でDynamics 365 とNetSuite SuiteAnalytics のデータを使ってスコアリングした結果を、以下のようにLeadScore_c カラムに追加しています。
この更新されたリードデータを、元のリードデータを持つDynamics 365 に書き戻します。
Dynamics 365 への書き戻し
書き戻しを行うには、SQL Server からDynamics 365 へのジョブを作成する必要があります。ただし、作成方法はデータソースと同期先に注意するだけでほとんど同じです。
では、ジョブを追加ボタンをクリックしてジョブを作成していきます。
- データソース:SQL Server
- 同期先:Dynamics 365
- 転送モード:元あるリードデータにスコアリング結果を加えるだけなので、Update を使います
※連携方法は、 Insert、Upsert、Update の3パターンから選択可能です。Upsertの場合は、Dynamics 365 で外部ID として登録している項目のみKey として使用可能
ここでテーブル同士を紐づけます。
次にどの項目をキーにするか、またどのカラム同士をマッピングするかを指定します。今回は LeadScore_c 同士でマッピングしました。
設定は以上で、あとは右上の実行ボタンをクリックするだけです。※運用時はスケジュール設定を行ってください。
実行が完了すると、ステータスや更新した行数が表示されます。
では、最後に Dynamics 365 のLeadオブジェクトを見てみましょう。LeadScore 列にSQL Server でスコアリングした結果が取り込まれました!
Dynamics 365 へのリバースETL 構成をCData Sync で実現
このように、Dynamics 365 とNetSuite SuiteAnalytics のデータを統合して書き戻すリバースETL のような複雑に思える構成でも、CData Sync ならノーコードで簡単に実現できます。
リバースETL にはリードスコアリングの他、マスタデータとの連携やWeb 解析ツールが持つユーザーアクティビティとの連携など、幅広いユースケースがあります。30日間の無償トライアルで、リバースETL パイプラインの構築を手軽にお試しください。
日本のユーザー向けにCData Sync は、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。
もっとユースケースが知りたい!という方は、CData Sync の 導入事例を併せてご覧ください。