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

Power BI サービスで、あるいは Power BI データセット REST API を使用することでスケールアウトを有効にできます。 セマンティック モデルを構成する前に、Power BI セマンティック モデルのスケールアウトの概要を確認してください。

Power BI サービスでスケールアウトを有効にする

Power BI サービスでセマンティック モデルのスケールアウトを有効にするには、次の手順に従います。

  1. Power BI サービスで、スケールアウトを有効にするセマンティック モデルでワークスペースを開きます。

  2. セマンティック モデルの [その他のオプション] (...) を選択します。

  3. メニューから、[設定] を選択します。

  4. 設定のページで、[大規模なセマンティック モデルのストレージ形式] が有効になっていない場合は有効にします。

  5. [クエリのスケールアウト] を有効にし、[適用] を選択します。

    A screenshot showing how to enable scale out in Power BI service.

データセット REST API を使用してスケールアウトを有効にする

このセクションでは、Power BI データセット REST API を使用してセマンティック モデルのスケールアウトを構成する方法について説明します。

datasetId の取得

datasetId を取得するには、Get-PowerBIDataset を使用します。 workspaceId とセマンティック モデル名を指定する必要があります。

Login-PowerBI | Out-Null

$workspaceId = '<enter workspaceId>'

$datasetId = Get-PowerBIDataset -WorkspaceId $workspaceId `
    | Where{$_.Name -match "<enter semantic model name>"} `
    | Select-Object -ExpandProperty Id -First 1 `
    | ForEach-Object {$_.Guid}

Write-Host
Write-Host "Workspace Id: $workspaceId"
Write-Host "Dataset Id: $datasetId"

現在のスケールアウト構成を取得する

セマンティック モデルのスケールアウトを構成する前に、現在の構成を決定します。

###
# Get current scale-out configuration
###
Login-PowerBI | Out-Null

$workspaceId = '<enter workspaceId>'

$datasetId = Get-PowerBIDataset -WorkspaceId $workspaceId `
    | Where{$_.Name -match "<enter semantic model name>"} `
    | Select-Object -ExpandProperty Id -First 1 `
    | ForEach-Object {$_.Guid}

$response = Invoke-PowerBIRestMethod -Url "groups/$workspaceId/datasets/$datasetId" -Method Get | ConvertFrom-Json

$response.queryScaleOutSettings | Format-List

if ($response.queryScaleOutSettings.maxReadOnlyReplicas -eq -1 `
    -or $response.queryScaleOutSettings.maxReadOnlyReplicas -gt 0)
{
    Write-Host "Semantic model scale-out is enabled."
}
else
{
    Write-Host "Semantic model scale-out is disabled."
}

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

セマンティック モデルのスケールアウトを有効にするには、maxReadOnlyReplicas-1 に設定するか、0 以外の値を設定します。 -1 の値を指定すると、Power BI では、Power BI 容量でサポートされているものと同じ数の読み取り専用レプリカを作成できます。 レプリカ数を容量の最大値より小さい値に明示的に設定することもできます。 maxReadOnlyReplicas-1 に設定することをお勧めします。

###
# Enable scale-out
###
Login-PowerBI | Out-Null

$workspaceId = '<enter workspaceId>'

$datasetId = Get-PowerBIDataset -WorkspaceId $workspaceId `
    | Where{$_.Name -match "<enter semantic model name>"} `
    | Select-Object -ExpandProperty Id -First 1 `
    | ForEach-Object {$_.Guid}

Invoke-PowerBIRestMethod -Url "groups/$workspaceId/datasets/$datasetId" `
    -Method Patch -Body '{ "queryScaleOutSettings": { "maxReadOnlyReplicas": -1 }}'

Invoke-PowerBIRestMethod -Url "groups/$workspaceId/datasets/$datasetId" -Method Get `
    | ConvertFrom-Json | Select-Object -ExpandProperty queryScaleOutSettings `
    | ForEach { 
        if($_.maxReadOnlyReplicas -eq -1)
        { 
            Write-Host "Success! Semantic model scale-out has been enabled."
        } else
        {
            Write-Host "Something went wrong! Semantic model scale-out is still disabled." -ForegroundColor Red
        }
     }

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

セマンティック モデルのスケールアウトを無効にするには、maxReadOnlyReplicas0 に設定します。

###
# Disable scale-out
###
Login-PowerBI | Out-Null

$workspaceId = '<enter workspaceId>'

$datasetId = Get-PowerBIDataset -WorkspaceId $workspaceId `
    | Where{$_.Name -match "<enter semantic model name>"} `
    | Select-Object -ExpandProperty Id -First 1 `
    | ForEach-Object {$_.Guid}

Invoke-PowerBIRestMethod -Url "groups/$workspaceId/datasets/$datasetId" `
    -Method Patch -Body '{ "queryScaleOutSettings": { "maxReadOnlyReplicas": 0 }}'

Invoke-PowerBIRestMethod -Url "groups/$workspaceId/datasets/$datasetId" -Method Get `
    | ConvertFrom-Json | Select-Object -ExpandProperty queryScaleOutSettings `
    | ForEach { 
        if($_.maxReadOnlyReplicas -eq 0)
        { 
            Write-Host "Success! Semantic model scale-out has been disabled."
        } else
        {
            Write-Host "Something went wrong! Semantic model scale-out is still enabled." -ForegroundColor Red
        }
     }