你可以在 Power BI 服務中啟用擴展功能,或使用 Power BI Datasets REST API。 在配置語意模型前,請閱讀 Power BI 語意模型 擴展概述。
在 Power BI 服務中啟用擴展功能
要在 Power BI 服務中啟用語意模型的擴展,請遵循以下步驟:
在 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
}
}
停用語意模型擴展功能
要停用語意模型縮放,請設 maxReadOnlyReplicas 為 0。
###
# 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
}
}