この度、日本マイクロソフト社の「Microsoft Top Partner Engineer Award」にて、Business Applicationsを受賞させていただきました。
その際に、アドベントカレンダー企画にお誘い頂き、参加することになりました。本投稿はMicrosoft Top Partner Engineer's Advent Calendarの22日目の記事になります。
プロジェクトでPower Platformを導入する際につきまとう「データ連携」や「データ移行」など、現行システムの情報を新システムに移し替えることは重要な課題となることが多いです。
本記事では、データフローを用いることで、ローコード*1でより簡単にこれらを実現する方法を紹介していきたいと思います。
概要
データフロー*2は、Power Queryを用いた「データの取り込み」「変換」「読み込み」をクラウドベースで実行できるサービスです。
Power Platformにデータフローを構築することで、「SharePoint上のExcel」や「Azure上に構築されたSQL Server」などをデータソースとして、Power Platform上に構築された Dataverseへデータの連携を簡単に行うことができます。
特徴
Power Platformに構築するデータフローの特徴として、以下の3つがあげられます。
- ローコードによるデータの連携が可能です。
- Dataverseに搭載されている一般的なインポート機能に比べて、高速かつ複雑な処理を実現できます。
- 手動/自動の切り替えが可能で、人の手を解さないシステムの構築が可能です。
データフローの利用準備
それでは、データフローの利用準備に移っていきます。
Power Platformにデータフローを構築するには、Power Appsの有償ライセンス*3が必要になります。
今回は、Power Platform環境は構築済みの状態を前提に、SharePoint上のExcelブックをDataverseに連携するデータフローの準備手順を解説していきます。
- 以下のURLに遷移し、データフローでデータを投入する先のテーブルを、Dataverse上に作成します。
https://make.powerapps.com/ - データフロー側でレコードを一意に判断するための代替キーを、作成したテーブルに設定します。
- 左のメニューから「データフロー」を選択し「新しいデータフロー」をクリックします。
- 名前を設定し作成をクリックします。
- データソースを選択します。今回はExcelブックを選択します。
- 「ファイルパスまたはURL」にExcelのパスを設定します。
今回は、ChatGPTを利用して生成した架空の商品マスタ(20万件)をもとに作成したExcelブックを指定します。
- 「認証の種類」を組織アカウントに変更し、サインインを実施します。
- 「次へ」をクリックします。
- 連携したいデータが含まれるシートを選択し、「作成」をクリックします。
- そのまま「次へ」をクリックします。
データの変換などを行う場合は、上部のメニューやPower Queryを記述することで、より複雑な連携を行うことができます。
- 「既存のテーブルに読み込む」を選択し、事前に作成した投入先のテーブルを設定します。
- 「キーの選択」に事前に作成した代替キーを設定し、宛先の列ごとに、データ連携したいExcelの列をソース列に設定します。
- 「公開」をクリックすると、データフローが登録され、初回の連携が開始されます。
- 連携が完了し、Dataverse側を確認すると、Excelのデータが連携されています。
データフローの実行
以降は、「最新の情報に更新」をクリックすることで、データフローを手動実行することができます。
また、実行の履歴や途中の状況は「更新履歴の表示」から確認ができます。
今回の手順では20万件の商品マスタサンプルを連携しましたが、Dataverseの標準インポートでは2時間程度かかるのに対して、データフローでは12分程度でデータの投入ができました。
手動実行以外にも、あらかじめスケジュールし、自動で実行することができます。「更新設定を編集する」から周期実行や特定の日時にスケジュールすることができます。
データソースの選択肢
データフローではMicrosoft製品以外を含め、様々なデータソースを選択できます。
Dataverseのテーブル同士を選択することも可能なのでPower Queryを用いた一括処理バッチのような処理を構築することもできます。
また、オンプレミスデータゲートウェイを利用することで、クラウド上ではない端末に含まれるExcelブックをデータソースにすることもでき、旧システムからのデータ移行時に役立たせることも可能です。
まとめ
-
データフローとは、ノーコード/ローコードでプログラム知識がなくても、定期的なデータの連携や大規模データの取込を行うことができるサービスです。
-
様々なコンポーネントと連携するための設定が用意されているため、簡潔に幅広くデータ連携の仕組みを構築することができます。
以上、本記事ではPower Platformにデータフローを構築し、実際の動作を確認してみました。
*1:ローコードとは? ローコード プラットフォーム ガイド | Microsoft Power Apps
*2:Microsoft Power Platform でのデータフローの作成と使用 - Power Query | Microsoft Learn
*3:Power Appsの有償ライセンスについて、詳細はライセンスガイドラインを参照してください。
山崎 善久(日本ビジネスシステムズ株式会社)
Dynamics 365 / Power Platformの導入をメインに活動。FY23 Microsoft Top Partner Engineer Award - Business Applicationsを受賞。
担当記事一覧