Power PlatformはデータベースにDataverseを利用することが多いですが、Azure SQL Databaseを使うことも可能です。Azure SQL Databaseを使った場合を検討してみます。
Azure SQL Databaseを使う場合、SQL Serverコネクタを利用する方法と仮想テーブルを利用する方法があります。
SQL Serverコネクターを利用してAzure SQL Databaseを使う場合。
仮想テーブルを利用する場合は、Dataverseを経由してAzure SQL Serverへ接続します。
Azure SQL Databaseの準備
Azure SQL Databaseの無料プランを使って準備します。
-
SQL Database サーバーを作成します。今回の認証方法は
Microsoft Entraのみの認証を使用する
を選択します。
-
接続方法は、
パブリック エンドポイント
を選択して、Azure サービスおよびリソースにこのサーバへのアクセスを許可する
をはい
にします。これでPower PlatformのSQL Serverコネクタからアクセスできます。
-
クエリ エディターを使用してテーブルを作成します。
CREATE TABLE Member
(
MemberId INT IDENTITY PRIMARY KEY,
FirstName NVARCHAR(128) NOT NULL,
LastName NVARCHAR(128) NOT NULL,
DateOfBirth DATE
);
CREATE TABLE Team
(
TeamId INT IDENTITY PRIMARY KEY,
GroupName NVARCHAR(128) NOT NULL
);
CREATE TABLE TeamMember
(
TeamMemberId INT IDENTITY PRIMARY KEY,
TeamMemberName NVARCHAR(128),
MemberId INT REFERENCES Member (MemberId),
TeamId INT REFERENCES Team (TeamId),
TeamPoint DECIMAL(5,2) CHECK (TeamPoint >= 0.00 AND TeamPoint <= 100.00)
CONSTRAINT [UQ_TeamMembers] UNIQUE CLUSTERED
(
MemberId, TeamId
)
);
SQL Serverコネクタを利用する場合
SQL Serverコネクターを利用してAzure SQL Databaseを使う場合。
仮想テーブルを利用する場合
仮想テーブルを利用する場合は、Dataverseを経由してAzure SQL Serverへ接続します。
-
仮想テーブルを作成を選択します。
-
SQL Serverコネクタを選択します。
-
Azure SQL Serverを入力します。
- テーブルMemberを選択します。
- 自動的にマッピング情報が生成されます。
- DataverseのテーブルMemberが作成されました。実体はAzure SQL DatabaseのテーブルMemberになります。通常のDataverseのテーブルと同様に利用できます。
例えば、Dataverseの通常テーブルへ仮想テーブルの検索列を追加すれば2つのデータベースを連携することもできます。
注意点としては仮想テーブルを利用する場合、テーブルに文字列型のカラムが1つ以上ないとプライマリーフィールドが設定できないエラーが表示されます。
上記の方法で、Azure SQL Databaseを使ったPower Platformが利用できるようになります。
Azure SQL DatabaseであればAzureを利用して大量データのバッチ処理も作成することができるため、Dataverseのプラグインが2分以上実行できない問題も回避しやすくなります。
一方、Dataverseであれば標準で利用できる、行レベルによるアクセス制御、列レベルのセキュリティルール設定などが利用できなくなります。
DataverseとAzure SQL Databaseを組み合わせて、お互いのメリットを利用するのがいいのではないかと思います。