はじめに
Direct Lake セマンティック モデルは Power BI サービス/Fabric (クラウド側) で保存され .pbix 形式での保存ができません。ローカルに保存するには Power BI プロジェクト形式 (.pbip) にエクスポートすることになります。
開発環境と本番環境を分ける場合、1つのテナントでワークスペースを分けることが多いのですが、テナントが分かれる場合もあるかと思います。Fabric/Power BI の開発では、ゲスト ユーザーは Power BI Desktop からの「発行」操作ができないなど、一部の機能に制限があるため、各テナントのユーザーとして作業するのが望ましいです。今回は開発者用の Power BI Pro ライセンスを開発テナントだけに用意して、招待された本番テナントに持ち込むという事情を考慮しています。Fabric アイテムの作成においては有償のユーザー ライセンスは不要なので、本番テナントにも開発者用のアカウントを用意することをお勧めします。
今回は、開発テナントで作成した Direct Lake セマンティック モデルをローカルに保存して、 本番テナントに反映する方法について手順を示します。
前提事項
- 開発テナントのユーザーは本番テナントにゲスト招待され、本番ワークスペースのメンバー ロールを付与されている。
- 本番テナントでは、テナント設定で以下の2つを有効化
-
ゲスト ユーザーによる Microsoft Fabric へのアクセスが可能
B2B 機能そのものを可能にする設定です。 -
ゲスト ユーザーは Fabric コンテンツを閲覧およびアクセスできます
ゲスト ユーザーは、Power BI サービス (Fabric ポータル) 左側のナビゲーション ウィンドウを使用して閲覧エクスペリエンスにフル アクセスすることができます。この設定が無効だと、共有されたアイテムへの直接アクセスしかできないため、デプロイ作業を行う場合には有効化が必要となります。
-
ゲスト ユーザーによる Microsoft Fabric へのアクセスが可能
-
Power BI Desktop の [ファイル] > [オプションと設定] > [オプション] > [プレビュー機能] に移動し、以下の2つの設定を有効化
- Power BI プロジェクト (.pbip) 保存オプション
- TMDL 形式を使用してセマンティック モデルを保存する
-
OneLake (レイクハウス) への Direct Lake であり、SQL 分析エンドポイントへの Direct Lake ではない。
SQL 分析エンドポイントへの Direct Lake の場合、下記手順4. で確認すべき
idが異なります。(以降の手順における内容も未確認です。)
-
開発環境と本番環境では、レイクハウス、テーブル、列の名前は同じ
名前が異なる場合は、手順5. の編集対象がぐっと増えると思われます。
-
VS Code で Microsoft Fabric の拡張機能をインストール済み

VS Code 用 Microsoft Fabric 拡張機能を使用すると、VS Code 内で Fabric ワークスペースにアクセスし、表示し、管理することができます。
セマンティック モデルの移行手順
-
Power BI Desktop で開発テナントのレイクハウスに Direct Lake 接続するセマンティックモデルを作成
-
Power BI プロジェクト (.pbip) としてエクスポート
-
VS Code で Microsoft Fabric 拡張機能 (左側の帯の「F」アイコン) を開き、開発環境のアカウントでサインイン
-
VS Code でコマンド
fabric: Switch tenantを実行するか [テナントの切り替え] ボタンをクリックし、本番テナントに切り替え、Direct Lake セマンティック モデルのデータソースとなるレイクハウスのworkspaceIdとidをメモする

-
VS Code で .pbip エクスポート時に開いたフォルダーを開き、
.SemanticModel/definition/expressions.tmdl を編集し、Source を本番環境のworkspaceIdとidに変更するソース = AzureStorage.DataLake("https://onelake.dfs.fabric.microsoft.com/<workspaceId>/<id>", [HierarchicalNavigation=true])さらに、lineageTag を行ごと削除して、ファイルを保存します。
ファイルはテキスト エディターなどで編集しても構いません。
既定では以下に保存されています。
C:\Users\<Username>\Microsoft Fabric\repos\<WorkspaceName>\ -
VS Code で Microsoft Fabric 拡張機能を開き、 Fabric 本番テナントのワークスペースに同期する

-
Fabric ポータル (Web 版) で本番テナントに切り替え、同期されたセマンティック モデルを開いて [編集] モードにし、[更新] する
更新が終わると、各テーブルに表示されている赤い [!] アイコンが消えます。
まとめ
Direct Lake セマンティック モデルのテナント間移行は、Power BI プロジェクト形式 (.pbip) と VS Code の Microsoft Fabric 拡張機能を組み合わせることで実現できます。ポイントは以下の3つです。
- 事前準備の重要性:ゲストアクセス設定やプレビュー機能の有効化を忘れない
- TMDL ファイル編集:データソースの workspaceId と Id を正しく更新する
- VS Code での同期:Fabric 拡張機能を活用し、本番テナントにモデルを反映
このプロセスを理解すれば、開発環境と本番環境が異なるテナントでも、効率的にセマンティック モデルを移行できます。





