はじめに
デプロイパイプラインで、 Direct Lake のセマンティックモデル(サービス上で作成したもの)を別環境に送ることができなかったので、覚書
なるべく開発者ツールを使わずに、一般に企業で許可されているSSMS(SQL Server Management Studio)でやります。
注意:2024/01 時点の情報です。(デプロイパイプラインが対応したらこの手順は不要になるかと)
2024/6/27 追記
- この方式でguid が異なる場合には同じ名前の別のセマンティックモデルが発生することがあることに注意ください
- デプロイパイプラインで Direct Lake セマンティックモデルが対応されました
https://blog.fabric.microsoft.com/en-us/blog/microsoft-fabric-may-2024-update?ft=All
参考
前提条件
容量の設定から XMLA エンドポイントでの書き込みを許可してください。
手順
準備
まずは、ウェアハウスを開発ワークスペースと本番ワークスペースに同名で作っておきます。
次に dev ワークスペースでセマンティックモデルを作成します。
この、 SM_taxi_warehouse を Prod 環境に移送します。
開発環境のセマンティックモデルの定義を取得
-
SSMS を起動し、Analysis Service 接続画面から、サーバー名に先ほど取得したURLを入力します。ユーザー名は Microsoft Fabric (Power BI Service) で使用しているアカウントのID、というかメールアドレスを使用します。
3. 接続が成功すると、ワークスペースのセマンティックモデルが表示されます。
4. 対象のセマンティックモデルを右クリックして、CREATE OR REPLACE のスクリプトを出力します。
5. 内容をコピーして、保存しておきましょう。git とか使っておくのもよいと思います。
本番環境に XMLA を発行
データベースの向き先変更
-
まずは、ウェアハウスへの接続文字列を取得します。ウェアハウスの横の・・・から、SQL接続文字列をコピーするを選択します。
-
次にウェアハウスのIDを取得します。対象のウェアハウスを開いた際のURLから取得可能です。app.powerbi.com/groups/{ワークスペースのID}/datawarehouses/{ウェアハウスのID}/dataView?experience=data-factoryとなっています。
-
ただ、この時、更新のスケジューリング設定にて確認可能なセマンティックモデルの資格情報はリセットされるので、資格情報の編集で再設定してあげましょう。参考(データソースへの認証をシングルサインオン以外にする)
Web 画面で編集ができない?
このようにデプロイした場合、セマンティックモデルの画面で、データモデルを開くがグレーアウトされていることがわかります。
今までは、XMLA エンドポイントからデプロイしたセマンティックモデルは Web 上で編集できませんでしたが、ワークスペース設定を変更することで対応可能となりました。
- ワークスペース設定にて、ユーザーはPower BI サービスでデータ モデルを編集できます (プレビュー) をオンにしましょう。既定ではオフになってます。
2.データモデルを開くが選択可能になっています。
(Opion) Web 上でデータモデルを編集するにはテナント設定も必要です。(既定で有効のはずです)