💻

Microsoft Dataverse と Azure Synapse Link for Dataverse でデータ分析をはじめる

9 min read

この記事について

この記事では、2021/5/26 〜 2021/5/28 (日本時間) で開催された Microsoft Build 2021 にてパプリックプレビューになった Azure Synapse Link for Dataverse について、実際に環境を構築し、Dataverse から Azure Synapse Analytics へデータがエクスポートされることを確認します。

Azure Synapse Link for Dataverse について

Azure Synapse Link for Dataverse は、以前は Data Lake へのエクスポート と呼ばれていたものであり、Microsoft Build 2021 でのアナウンスによって名称変更が行われたものになります。既に登場していた Azure Data Lake へのエクスポート機能についても、引き続き Azure Synapse Link for Dataverse の中でサポートされるようになります。

Azure Synapse Link for Dataverse が出来ると何がよいのか

Azure Synapse Link for Dataverse のメリットは、Microsoft Dataverse 内のデータを、簡単に、安全に、他のデータと組み合わせて、データ分析など多目的で活用できる点が挙げられると思います。
よく耳にするワードとしては、ビックデータ分析といったところです。Azure Synapse Analytics と組み合わせることで、簡単に、Microsoft Dataverse 内に保存されたデータを機械学習に活用したり、BI (ビジネスインテリジェンス) や分析に活用できるようになります。

近年、Citizen Developer (市民開発者)というワードが広まっているように、これまでの IT チャネル (プログラマーや IT エンジニアなど) 以外でお仕事をされていた方がアプリケーションを開発出来る技術/ツールが注目されています。
その 1 つが Microsoft 社が提供している Power Platform 製品群であり、その中でも、ノーコードビジネスニースにあったカスタムアプリケーションを作成できる Power Apps などは、その代表例です。

通常の Web アプリケーション開発などでは、アプリケーションで利用するデータをデータベースに保存しますが、Power Apps なども同様に、アプリケーション内で使用されるデータを保存する仕組みがあります。それが Microsoft Dataverse です。

Microsoft Dataverse は、以前は Common Data Service と呼ばれていました。

Power Platform 内では、この Microsoft Dataverse を利用することによって、ビジネス アプリケーションによって使用されるデータを安全に保存し、管理することができます。
基本的に、Microsoft Dataverse 内にあるデータは、Power Platform 製品群の中で利用したり、SharePoint Online や OneDrive for Business、OneNote のように他の Office 365 サービスと統合して利用、あるいはデータのエクスポート機能を使用して Microsoft Dataverse 内のデータを外部ファイルにエクスポートする形で利用することができるようになっています。

企業活動の中においては、特にこの 外部ファイルにエクスポート は重宝されますが、機密データなど重要なデータが含まれたりする場合、ファイルの扱いは非常に注意しなければなりません。
Azure Synapse Link for Dataverse を使用することで、外部ファイルが原因で Microsoft Dataverse 内に存在するデータが意図せず流出してしまうリスクを解消しつつ、外部ファイルにエクスポートをする点を省略でき、Azure Synapse Analytics 上でデータの分析業務などをスムーズに実行できるようになります。

公式情報

公式情報については、以下を参照してください。

https://news.microsoft.com/build-2021-book-of-news/#a-131-new-azure-analytics-and-governance-updates-to-improve-integration-and-runtime-capabilities-

https://docs.microsoft.com/ja-jp/powerapps/maker/data-platform/export-to-data-lake

https://docs.microsoft.com/ja-jp/powerapps/maker/data-platform/azure-synapse-link-synapse

https://docs.microsoft.com/ja-jp/azure/synapse-analytics/get-started-create-workspace

環境構築

以下の情報は、2021/6/29 時点で確認できている内容になります。内容は更新される可能性があります。
この環境構築の内容は、公式ドキュメントの内容に従い、Microsoft 365 開発者ライセンスを使って環境構築を行った内容になります。

https://docs.microsoft.com/ja-jp/powerapps/maker/data-platform/azure-synapse-link-synapse

Microsoft 365 開発者ライセンス

今回の検証にあたって、Microsoft Dataverse 環境は Microsoft 365 開発者ライセンスのサブスクリプションを使用しました。

https://developer.microsoft.com/ja-jp/microsoft-365/dev-program

こちらの環境にサンプルデータを作成し、使用しています。

https://docs.microsoft.com/ja-jp/power-platform/admin/add-remove-sample-data

Power Apps ポータルに遷移します。
メニューから Azure Synapse Link を選択し、データ レイク への新しいリンク を選択します。

ストレージアカウントの選択の画面が表示されたら、Microsoft Dataverse 環境が存在しているリージョンを確認します。(下記の図の赤枠部分)
ここで表示されている Azure リージョンに Azure Synapse Analytics ワークスペースを構築することになります。

今回の例だと、 Japan West リージョンが表示されているので、Azure Synapse Analytics ワークスペースは西日本リージョンで作成していきます。

Microsoft Azure

Microsoft 365 開発者ライセンスのアカウントで Azure サブスクリプションを契約します。
開発者ライセンスには Azure サブスクリプションが含まれていないため、Microsoft 365 開発者ライセンスのアカウントで Azure ポータルにログインし、新しくサブスクリプションを作成してください。
私は、従量課金制でサブスクリプションを作成しました。

https://docs.microsoft.com/ja-jp/office/developer-program/microsoft-365-developer-program-faq#does-the-subscription-also-include-a-subscription-to-azure

Azure Synapse Analytics

こちらの公式ドキュメントに従って、環境を作成してください。
環境作成時、Microsoft Dataverse 環境が存在しているリージョン に Azure Data Lake Storage Gen2 を作成するようにします。

https://docs.microsoft.com/ja-jp/azure/synapse-analytics/quickstart-create-workspace

私は、以下のような形で環境を作成しました。

Azure Synapse link for Dataverse

Power Apps ポータルに戻り、Azure Synapse Link for Dataverse の画面に遷移します。
Azure Synapse Analytics workspace への接続 のチェックボックスを選択します。
ストレージ アカウントの選択では、先ほど作成した Azure Synapse Analytics ワークスペースに接続するように、項目を設定します。

リソースグループ名やストレージアカウントについては、ドロップダウンで一覧から選択できるようになっているはずです。

テーブルの追加では、エクスポートするテーブルを選択します。
こちらで選択したテーブルが、Azure Synapse Analytics のテーブルディレクトリに表示されることになり、Azure Synapse Analytics 上でクエリ実行できる対象となります。
今回は特に何もないので、表示されている 88 件すべてのテーブルを選択しておきます。
テーブルを選択したら、上書き保存ボタンを選択し、設定を保存します。

保存が完了したら、以下のような画面が表示されます。
設定した内容を更新したい場合は、対象を選択して、設定を変更することになります。
今回は、このまま Azure Synapse Analytics ワークスペースに遷移したいため、新規作成した項目を選択し、Go to Azure Synapse Analytics workspace に移動を選択します。

Azure Synapse Analytics で Dataverse 内にあるデータをクエリする

Azure Synapse ワークスペース画面に遷移したら、実際にクエリを実行してみます。
表示されている任意のテーブルを右クリックしNew SQL script -> SELECT TOP 100 rows を選択します。

ここまで来たら、あとはクエリを実行するだけです。タブ画面の上部にある Run を選択し、クエリを実行してみます。

正常にクエリ実行が完了できたら、以下のようにテーブル内のデータをクエリした結果が返ってきます。

Azure Synapse Link for Dataverse 対象のデータ

先ほどエクスポートされた Microsoft Dataverse のデータがどうなっているかは、エクスポート時に指定した Azure Data Lake Storage Gen 2 (ADLS v2) をみることで確認できます。

上記のような形で、ADLS v2 上には CSV ファイルの形で保存されているのを確認できます。
もし、CSV ファイルなどを取得したいという場合は、こちらからダウンロードすることも可能になっています。

冒頭で記載していた

既に登場していた Azure Data Lake へのエクスポート機能についても、引き続き Azure Synapse Link for Dataverse の中でサポートされるようになります。

という話ですが、どちらかというと、既存のエクスポート機能に加えて Azure Synapse Analytics 上でエクスポートしたデータを Spark テーブルとして認識させる処理を追加したものが Azure Synapse Link for Dataverse という感じですね。

(2021/7/20 追記)
2021/7/20 現在、Azure Synapse Link for Dataverse で Spark プールを使用する場合、Spark プールのバージョンは 2.4 に設定しておく必要があります。
新しく登場した 3.0 プレビューの Spark プールでは、spark.sql を実行してもエラーになるようです。

まとめ

今回は、Microsoft Dataverse 内にサンプルデータを投入し、Azure Synapse Link for Dataverse を使用して Microsoft Dataverse 内にあるデータを Azure Synapse Analytics に連携し、クエリを実行してデータを取得するまでを行いました。
実際のデータ分析業務などでは、Microsoft Dataverse 以外のデータも Azure Synapse Analytics と連携していくことになると思いますが、Azure Synapse Link for Dataverse を使用することで、Microsoft Dataverse のデータを安全に、簡単に追加することができます。

是非、皆さんも試してみてください。

Discussion

ログインするとコメントできます