Power BI セマンティック モデルのスケールアウト

セマンティック モデルのスケールアウトは、レポートやダッシュボードが多数のユーザーによって使用されているときに、Power BI で高速なパフォーマンスを提供するのに役立ちます。 セマンティック モデルのスケールアウトでは、Premium の容量を使用して、プライマリ セマンティック モデルの 1 つ以上の読み取り専用レプリカをホストします。 読み取り専用レプリカはスループットを向上させることで、複数のユーザーが同時にクエリを送信してもパフォーマンスが低下しないようにします。

Power BI は読み取り専用レプリカを作成するときに、それらをプライマリの読み取り/書き込みセマンティック モデルから分離します。 読み取り専用レプリカは Power BI レポートとダッシュボード クエリを処理し、書き込み操作と更新操作が実行されるときに読み取り/書き込みセマンティック モデルが使用されます。 書き込みおよび更新操作中、読み取り専用レプリカは中断されることなくレポートとダッシュボード クエリを提供し続けます。 既定では、読み取り専用セマンティック モデルと読み取り/書き込みセマンティック モデルは自動的に同期されるため、読み取り専用レプリカは最新の状態に保たれます。 ただし、自動同期を無効にして、コマンド ラインまたはスクリプトで手動で同期することを選択できます。

次の表は、Power BI セマンティック モデルのスケールアウトが有効であり、自動同期が無効である場合に、各更新方法に必要な同期を示しています。

Refresh メソッド 同期
OnDemand UI 常に同期
スケジュールされた更新 常に同期
基本的な REST API 手動同期が必要 1
高度な REST API 手動同期が必要 1
XMLA 手動同期が必要 1

1 - queryScaleOutSettingsautoSyncReadOnlyReplicas を false に設定している場合。

レプリカ管理

スケールアウトは、1 つの読み取り/書き込みセマンティック モデル レプリカと、必要な数の読み取り専用レプリカを作成します。 すべての書き込み操作が、読み取り/書き込みレプリカに送信されます。 これには、読み取り/書き込みレプリカを明示的に対象とする、つまり、接続文字列で ?readonly を使用しないセッションに対するクエリが含まれます。 これらのクエリにより、読み取り/書き込みレプリカで対話型の CPU 使用率が高くなる可能性があります。 このような場合、読み取り/書き込みレプリカを対象とするクエリ負荷は読み取り専用レプリカに分散できないため、新しいレプリカが作成されません。

読み取り専用レプリカの数は、クエリによって使用される CPU の量に基づいて決定されます。 レプリカの最大数は、SKU によって異なります。 アクティブな読み取り専用レプリカすべてにわたってセマンティック モデルに対する現在の CPU 使用率が高く、高いままである場合は、新しい読み取り専用レプリカが 1 つ作成されます。 ただし、レプリカを追加すると、容量に対する現在の負荷が、スロットリングを発生させるほど高くなる可能性があります。 スロットリングは、読み取り専用レプリカの追加による継続的な高い CPU 使用率への到達を防止します。 このような場合、新しいスケールアウト読み取り専用レプリカは作成されません。

CPU 使用率が低下し、一貫して低いままになると、レプリカが 1 つ削除されます。

前提条件

既定では、スケールアウトはテナントに対して有効になっていますが、テナント内のセマンティック モデルに対しては有効になっていません。 セマンティック モデルのスケールアウトを有効にするには、Power BI REST API を使用する必要があります。 有効にする前に、次の前提条件を満たす必要があります。

  • テナントの「大規模なセマンティック モデルのスケールアウト クエリ」設定が有効になっていること (既定値)。

  • ワークスペースが Power BI Premium 容量に存在している。

    • Premium Per User (PPU)
    • Power BI Premium P SKUs
    • Power BI Embedded (顧客向けの埋め込みとも呼ばれます) 用の Power BI A SKU。
    • Fabric F SKU
  • 大規模セマンティック モデルの保存形式設定が有効になっています。

  • REST API を使用してセマンティック モデルを管理するには、Power BI 管理コマンドレットを使用します。 管理者モードで PowerShell を開き、次のコマンドを実行してインストールします。

    Install-Module -Name MicrosoftPowerBIMgmt
    
  • 次の (またはそれ以降) のアプリ、ライブラリ、サービスのバージョンは、読み取り専用レプリカへの接続をサポートしています。

    アプリ、ライブラリ、またはサービス バージョン
    Microsoft Analysis Services OLE DB Provider for Microsoft SQL Server (MSOLAP) 16.0.20.201 (2022 年 3 月)
    Microsoft.AnalysisServices.AdomdClient (ADOMD.NET) 19.36.0 (2022 年 3 月)
    Power BI Desktop 2022 年 6 月
    SQL Server Management Studio (SSMS) 19.0
    Tabular Editor 2 2.16.6
    Tabular Editor 3 3.2.3
    DAX Studio 3.0.0

セマンティック モデルのスケールアウトを構成する

セマンティック モデルのスケールアウトを有効または無効にする方法、または PowerShell と REST API を使用してスケールアウト状態を取得する方法については、「セマンティック モデルのスケールアウトを構成する」を参照してください。

特定の種類のセマンティック モデルに接続する

スケールアウトが有効になっている場合、次の接続が保持されます。

  • 既定では、Power BI Desktop は、"読み取り専用" のレプリカに接続します。

  • ライブ接続レポートは読み取り専用レプリカに接続します。

  • XMLA クライアント アプリケーションは、既定で読み取り/書き込みセマンティック モデルに接続します。

  • Power BI サービスで更新し、拡張更新 REST API を使用して更新すると、読み取り/書き込みセマンティック モデルに接続します。

次の文字列のいずれかをセマンティック モデルの URL に追加することで、読み取り専用レプリカまたは読み取り/書き込みセマンティック モデルに接続できます。

  • 読み取り専用 - ?readonly
  • 読み取り-書き込み - ?readwrite

セマンティック モデルのスケールアウトをテナントに対して無効にする

Power BI セマンティック モデルのスケールアウトは、テナントに対して既定で有効になっています。 Power BI テナント管理者は、この設定を無効にすることができます。 テナントのセマンティック モデルのスケールアウトを無効にするには、次の手順を実行します。

  1. テナント設定に移動します。

  2. [スケールアウト設定] で、[大規模なセマンティック モデルのスケールアウト クエリ] を展開します。

  3. スイッチを [無効] に切り替えます。

  4. [適用] を選択します。

    A screenshot showing how to disable the scale out tenant settings in the Power BI admin portal.

考慮事項と制限事項

  • クライアント アプリケーションは、接続文字列で指定されたモードをサポートしている場合、XMLA エンドポイント経由で読み取り専用レプリカに接続できます。 クライアント アプリケーションは、XMLA エンドポイントを使用して読み取り/書き込みインスタンスに接続することもできます。

  • 手動更新とスケジュールされた更新は、読み取り専用レプリカの最新バージョンと常に自動的に同期されます。 REST API の更新では、自動同期構成が尊重されます。 自動同期が無効になっている場合は、手動同期 REST API を使用してセマンティック モデルを読み取り専用レプリカと同期する必要があります。

  • 自動同期が無効になっている場合は、同期 REST API を使用して、XMLA の更新と更新を読み取り専用セマンティック モデルのコピーと同期する必要があります。

  • Power BI スケールアウトのセマンティック モデルを削除し、同じ名前で別のセマンティック モデルを作成する場合は、新しいセマンティック モデルを作成する前に 5 分待ってください。 Power BI がプライマリ セマンティック モデルのレプリカを削除するには、しばらく時間がかかる場合があります。

  • Power BI セマンティック モデルのスケールアウトが有効になっていて、autoSyncReadOnlyReplicas=false のときは、次の機能に対する変更がサポートされません。

    • ロールの追加または削除
    • 任意のロールのロール メンバーシップのセットの更新
    • データ ソースの変更
    • DirectQuery またはデュアル テーブルで使用されるデータ ソースの削除
    • オブジェクト レベルのセキュリティ (OLS) または動的な行レベル セキュリティ (RLS) 式の変更

    これらの機能を変更するには、スケールアウトを無効にし、変更が反映されるまで数分間待ってから再度有効にします。

  • 動的管理ビュー (DMV) の TMSCHEMA_ROLE_MEMBERSHIPS 行セットを使用して、読み取り専用レプリカに対してロール メンバーシップの検出を実行しても結果は返されません。

  • ライブ接続を使用するレポートは、接続文字列が ?readwrite を使用する場合でも、常に読み取り専用レプリカに接続します。 ただし、Power BI Desktop では、?readwrite を使用するライブ接続レポートが読み取り/書き込みレプリカに接続します。

  • 動的管理ビュー (DMV) の行セットである DBSCHEMA_CATALOGS と DISCOVER_XML_METADATA は、接続文字列で ?readonly を使用したときに読み取り/書き込みレプリカ情報を返します。

  • SQL サーバー プロファイラーは、?readonly 接続文字列とは連携して機能しません。

  • 次の操作は、自動同期がオフ (AutoSync=Off) になっているときでも自動同期をトリガーします。

    • ある容量から別のものへのワークスペースの移行。
    • 独自の暗号化キーの使用 (BYOK) に使用されるキーのバージョンの切り替え (または交換)。
    • セマンティック モデルのワークスペースの BYOK を使用しない容量から BYOK を使用する容量への移動。
    • セマンティック モデルのワークスペースの BYOK を使用する容量から BYOK を使用しない容量への移動。
    • パブリック XMLA エンドポイントを使用したセマンティック モデルの復元。
  • [大規模なセマンティック モデルのストレージ形式] を無効にすると、スケールアウトが無効になり、すべての同期情報が失われます。