今回はMicorsoft Power Platformで提供されている共通基盤データベース「Dataverse(データバース)」をテーマに、その概要やテーブル作成をはじめとする基本的な利用方法についてご紹介いたします。
Microsoft Dataverseとは
「Microsoft Dataverse」とは「Microsoft Power Platform」の共通基盤データベースサービスです。「Power Platform」サービス内の「Power Apps」、「Power Automate」などで、アプリ作成に活用できるほか、Web API機能もあるので、既存システムのデータソースとしても活用できます。今回の記事では、「Dataverse」でのテーブル作成方法についてご紹介いたします。
事前準備
今回は「Power Apps」の開発者向けプランを使用します。事前準備として開発者向けプランのアカウントの準備をしてください。また、こちらに今回の記事内で使用するサンプルデータを用意しています。ダウンロード後、解凍してご使用ください。
テーブルの作成
テーブルの作成はPower Appsアプリの作成と同様でhttps://make.powerapps.com/より行います。作成対象となる環境を選択後、左側のナビゲーションメニュー「テーブル」から作成します。
それでは、実際にテーブルを作成していきます。
「テーブル」を選択すると、次のページへ遷移します。「新しいテーブル」を選択し、右側に表示されたサイドパネルより、テーブルを作成します。プロパティタブで、テーブルの「表示名」、「複数形の名前」、プライマリ列タブでプライマリ列の「表示名」を入力します。
必要項目を入力するとテーブルが作成され、次のように「テーブル設定画面」が表示されます。
列の作成
続いて作成したテーブルに列を追加していきます。作成できる列の種類は28種類です。
「テーブル設定画面」にある「スキーマ」エリアの「列」を選択して列追加画面を開きます。
「+新しい列」を選択し、列を追加していきます。
同様の手順で、次の表の項目を列に追加していきます。
表示名 | データの種類 | 書式 | 動作 | 必須 | 備考 |
---|---|---|---|---|---|
LastName | 1行テキスト | テキスト | シンプル | 任意 | ※ 前の手順で追加済み |
FirstName | 1行テキスト | テキスト | シンプル | 任意 | |
Division | 1行テキスト | テキスト | シンプル | 任意 | |
BirthDate | 日付と時刻 | 日付のみ | シンプル | 任意 | ※ 前の手順で追加済み |
HireDate | 日付と時刻 | 日付のみ | シンプル | 任意 | |
Address | 複数行テキスト | テキスト | シンプル | 任意 | |
City | 1行テキスト | テキスト | シンプル | 任意 | |
Region | 1行テキスト | テキスト | シンプル | 任意 | |
PostalCode | 1行テキスト | テキスト | シンプル | 任意 | |
Country | 1行テキスト | テキスト | シンプル | 任意 | |
HomePhone | 1行テキスト | テキスト | シンプル | 任意 |
データをインポート
ここまでの手順で、テーブルの作成が終わりましたので、データを登録したいと思います。
画面上からデータの登録も可能ですが、今回はEXCELファイルのデータをインポートしていきます。つぎの手順で、インポート対象となる、Excelファイルの指定を行います。
※ 使用するサンプルデータ:リンク先のzipファイルをダウンロード後解凍し、nwinddata内のnwind.xlsxを使用。
- インポート→データをインポート
- 「Excelブック」を選択
- 対象のExcelファイルの指定
ファイルの指定後、次の手順でデータのインポート設定を行います。
- データ選択画面
- Excelファイルより対象データの指定
- クエリ編集画面
- 対象データの確認、加工(今回はデフォルトのまま)
- マップテーブル画面
- 読込の設定、「既存のテーブルに読込」を選択
- 読み込みテーブル、作成済みの「cr4ff_Employees」を選択
- 列マッピング、「自動マップ」ボタンを押して、自動でマッピング
- 設定の更新
- 公開ボタンを押し、インポートを開始する
インポートを実行すると、「データフロー」が作成されます。「データフロー」はExcelのファイルからDataverseのテーブルへのインポート処理をバックグラウンドで行うものです。
次の画像にある「最終更新」の項目に、タイムスタンプが設定されるとインポート処理が完了します。
インポート処理が完了すると、以下のようにデータが登録されます。
テーブルの作成と、データのインポートをまとめて行う
テーブル作成からデータの登録の一連の流れを実施しましたが、手順が多く、複数のテーブルを作成する場合は、非常に時間が掛かってしまいます。さきほどデータの登録で使用した「データのインポート」では、テーブルの作成も一緒に行うことができますので、この機能を使用して他のテーブルの作成も行いたいと思います。
先ほど実施した「データのインポート」と同じ手順で、取り込まなかったテーブルを選択します。
※ Power Queryエディタのデータ選択時、Excelのテーブルとシートそれぞれ読み込まれますが、重複するデータとなりますので、テーブルに該当する部分のみ選択してください。
続いて、クエリ編集画面ですが、次のようにIDに該当する列の型を「テキスト」へ変更します。
上記画像の手順で、次の表の「テーブル」、「列」についても同様に「テキスト」に変更します。
テーブル | 列 |
---|---|
Customers | CustomerID |
Orders | OrderID、CustomerID、EmployeeID |
Order_Details | OrderID、ProductID |
Products | ProductID、SupplierID、CategoryID |
Supplier | SupplierID |
Shipper | ShipperID |
マップテーブル画面では、読み込みの設定を「新しいテーブルに読み込む」とすることで、「列マッピング」エリア内の、「列(宛先の列)」が自動的に作成されます。また「列マッピング」ではテーブル作成時に必須である「プライマリ列」をどのデータとマッピングするかも指定することが可能です。
今回は、画像の下の表に基づいて設定します。
クエリ | 読み込みの設定 | 列マッピング | ||||
読み込みの設定 | テーブル名 | テーブル表示名 | 一意のプライマリ列名 | 代替キー列 | 列名 | |
Customers | 新しいテーブルに読み込む | Customers | Customers | CustomerID | なし | – |
Orders | 新しいテーブルに読み込む | Orders | Orders | OrderID | なし | – |
Order_Details | 新しいテーブルに読み込む | Order_Details | Order_Details | 自動生成 | なし | SEQ |
Products | 新しいテーブルに読み込む | Products | Products | ProductID | なし | – |
Supplier | 新しいテーブルに読み込む | Suppliers | Suppliers | SupplierID | なし | – |
Shipper | 新しいテーブルに読み込む | Shippers | Shippers | ShipperID | なし | – |
インポートを実行するとデータフローが作成され、バックグラウンド処理終了後には、次のようにテーブルとデータのインポートが正しく行われました。元となるテーブルやデータが予め用意されている場合などは、こちらの方法を利用することでより早い作業が可能になります。
さいごに
今回の記事では、「Power Platform」の共通基盤データベースサービス「Dataverse」でのテーブルの作成方法とExcelからのインポートについてご紹介しました。次回の記事ではテーブルのリレーション設定についてご紹介していきたいと思いますので、そちらも是非ご覧ください。
弊社では「Dataverse」をはじめとした、SaaSサービスのWeb APIと連携可能なJavaScriptライブラリを提供しています。SaaSサービスのデータを利用した高機能なWebアプリケーションを作成したい方は、是非Webサイトをご確認ください。
JavaScript帳票ライブラリ「ActiveReportsJS(アクティブレポートJS)」と「Dataverse」の連携についてはこちらの記事でご紹介。