Dataverseを使ってみよう(1)テーブルを作成する

普段のお仕事に役立つ普遍的なプログラミングTIPSや、業界で注目度が高い最新情報をお届けする「編集部ピックアップ」。
今回は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/より行います。作成対象となる環境を選択後、左側のナビゲーションメニュー「テーブル」から作成します。

Power Apps Dataverseテーブルの作成

それでは、実際にテーブルを作成していきます。
「テーブル」を選択すると、次のページへ遷移します。「新しいテーブル」を選択し、右側に表示されたサイドパネルより、テーブルを作成します。プロパティタブで、テーブルの「表示名」、「複数形の名前」、プライマリ列タブでプライマリ列の「表示名」を入力します。

新しいテーブルの追加
テーブル名の設定
プライマリ列の設定

必要項目を入力するとテーブルが作成され、次のように「テーブル設定画面」が表示されます。

テーブル設定画面

列の作成

続いて作成したテーブルに列を追加していきます。作成できる列の種類は28種類です。
「テーブル設定画面」にある「スキーマ」エリアの「列」を選択して列追加画面を開きます。

列の作成画面

「+新しい列」を選択し、列を追加していきます。

1行テキスト列の追加
日付のみ列の追加

同様の手順で、次の表の項目を列に追加していきます。

表示名データの種類書式動作必須備考
LastName1行テキストテキストシンプル任意※ 前の手順で追加済み
FirstName1行テキストテキストシンプル任意
Division1行テキストテキストシンプル任意
BirthDate日付と時刻日付のみシンプル任意※ 前の手順で追加済み
HireDate日付と時刻日付のみシンプル任意
Address複数行テキストテキストシンプル任意
City1行テキストテキストシンプル任意
Region1行テキストテキストシンプル任意
PostalCode1行テキストテキストシンプル任意
Country1行テキストテキストシンプル任意
HomePhone1行テキストテキストシンプル任意

データをインポート

ここまでの手順で、テーブルの作成が終わりましたので、データを登録したいと思います。
画面上からデータの登録も可能ですが、今回はEXCELファイルのデータをインポートしていきます。つぎの手順で、インポート対象となる、Excelファイルの指定を行います。
使用するサンプルデータ:リンク先のzipファイルをダウンロード後解凍し、nwinddata内のnwind.xlsxを使用。

データをインポートする手順
  1. インポート→データをインポート
  2. 「Excelブック」を選択
  3. 対象のExcelファイルの指定

ファイルの指定後、次の手順でデータのインポート設定を行います。

データをインポートする手順2
  1. データ選択画面
    • Excelファイルより対象データの指定
  2. クエリ編集画面
    • 対象データの確認、加工(今回はデフォルトのまま)
  3. マップテーブル画面
    • 読込の設定、「既存のテーブルに読込」を選択
    • 読み込みテーブル、作成済みの「cr4ff_Employees」を選択
    • 列マッピング、「自動マップ」ボタンを押して、自動でマッピング
  4. 設定の更新
    • 公開ボタンを押し、インポートを開始する

インポートを実行すると、「データフロー」が作成されます。「データフロー」はExcelのファイルからDataverseのテーブルへのインポート処理をバックグラウンドで行うものです。
次の画像にある「最終更新」の項目に、タイムスタンプが設定されるとインポート処理が完了します。

データフロー確認画面

インポート処理が完了すると、以下のようにデータが登録されます。

インポート処理完了

テーブルの作成と、データのインポートをまとめて行う

テーブル作成からデータの登録の一連の流れを実施しましたが、手順が多く、複数のテーブルを作成する場合は、非常に時間が掛かってしまいます。さきほどデータの登録で使用した「データのインポート」では、テーブルの作成も一緒に行うことができますので、この機能を使用して他のテーブルの作成も行いたいと思います。

先ほど実施した「データのインポート」と同じ手順で、取り込まなかったテーブルを選択します。
※ Power Queryエディタのデータ選択時、Excelのテーブルとシートそれぞれ読み込まれますが、重複するデータとなりますので、テーブルに該当する部分のみ選択してください。

テーブルと、データのインポート

続いて、クエリ編集画面ですが、次のようにIDに該当する列の型を「テキスト」へ変更します。

テーブルとデータのインポート、型の変更

上記画像の手順で、次の表の「テーブル」、「列」についても同様に「テキスト」に変更します。

テーブル
CustomersCustomerID
OrdersOrderID、CustomerID、EmployeeID
Order_DetailsOrderID、ProductID
ProductsProductID、SupplierID、CategoryID
SupplierSupplierID
ShipperShipperID

マップテーブル画面では、読み込みの設定を「新しいテーブルに読み込む」とすることで、「列マッピング」エリア内の、「列(宛先の列)」が自動的に作成されます。また「列マッピング」ではテーブル作成時に必須である「プライマリ列」をどのデータとマッピングするかも指定することが可能です。

今回は、画像の下の表に基づいて設定します。

マップテーブル
クエリ読み込みの設定列マッピング
読み込みの設定テーブル名テーブル表示名一意のプライマリ列名代替キー列列名
Customers新しいテーブルに読み込むCustomersCustomersCustomerIDなし
Orders新しいテーブルに読み込むOrdersOrdersOrderIDなし
Order_Details新しいテーブルに読み込むOrder_DetailsOrder_Details自動生成なしSEQ
Products新しいテーブルに読み込むProductsProductsProductIDなし
Supplier新しいテーブルに読み込むSuppliersSuppliersSupplierIDなし
Shipper新しいテーブルに読み込むShippersShippersShipperIDなし

インポートを実行するとデータフローが作成され、バックグラウンド処理終了後には、次のようにテーブルとデータのインポートが正しく行われました。元となるテーブルやデータが予め用意されている場合などは、こちらの方法を利用することでより早い作業が可能になります。

テーブルとデータのインポートの結果

さいごに

今回の記事では、「Power Platform」の共通基盤データベースサービス「Dataverse」でのテーブルの作成方法とExcelからのインポートについてご紹介しました。次回の記事ではテーブルのリレーション設定についてご紹介していきたいと思いますので、そちらも是非ご覧ください。

弊社では「Dataverse」をはじめとした、SaaSサービスのWeb APIと連携可能なJavaScriptライブラリを提供しています。SaaSサービスのデータを利用した高機能なWebアプリケーションを作成したい方は、是非Webサイトをご確認ください。

JavaScript帳票ライブラリ「ActiveReportsJS(アクティブレポートJS)」と「Dataverse」の連携についてはこちらの記事でご紹介。

\  この記事をシェアする  /