設定語意模型向外延展

你可以在 Power BI 服務中啟用擴展功能,或使用 Power BI Datasets REST API。 在配置語意模型前,請閱讀 Power BI 語意模型 擴展概述。

在 Power BI 服務中啟用擴展功能

要在 Power BI 服務中啟用語意模型的擴展,請遵循以下步驟:

  1. 在 Power BI 服務中,開啟擁有您想要啟用水平擴展的語義模型的工作區。

  2. 選擇語意模型的 更多選項...)。

  3. 從選單中選擇 設定

  4. 如果尚未啟用,在設定頁面中啟用大型語意模型儲存格式

  5. 啟用 查詢擴展 並選擇 套用

    一張顯示如何在 Power BI 服務中啟用水平擴展的截圖。

啟用使用 Datasets REST API 的擴展功能

本節說明使用 Power BI Datasets REST API 來配置語意模型擴展。

取得資料集ID

要取得 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 建立最多與其容量限制相符的唯讀副本。 你也可以明確設定複本數量低於容量上限的數值。 建議設定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
        }
     }