Configurer un scale-out de modèle sémantique

Vous pouvez activer le scale-out dans le service Power BI ou utiliser les API REST des jeux de données Power BI. Avant de configurer le modèle sémantique, lisez la vue d’ensemble du scale-out du modèle sémantique Power BI.

Activer le scale-out dans le service Power BI

Pour activer le scale-out pour votre modèle sémantique dans le service Power BI, effectuez les étapes suivantes :

  1. Dans le service Power BI, ouvrez l’espace de travail avec le modèle sémantique pour lequel vous voulez activer le scale-out.

  2. Sélectionnez les options supplémentaires du modèle sémantique (...).

  3. Dans le menu, sélectionnez Paramètres.

  4. Dans la page des paramètres, activez le format de stockage de grand modèle sémantique s’il n’est pas déjà activé.

  5. Activez Scale-out des requêtes et sélectionnez Appliquer.

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

Activer le scale-out en utilisant les API REST des jeux de données

Cet article décrit l’utilisation des API REST des jeux de données Power BI pour configurer le scale-out du modèle sémantique.

Obtenir l'ID de l'ensemble de données

Pour obtenir le datasetId, utilisez Get-PowerBIDataset. Vous devez spécifier un workspaceId et un nom de modèle sémantique.

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"

Obtenir la configuration scale-out actuelle

Avant de configurer le scale-out du modèle sémantique, déterminez la configuration actuelle.

###
# 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."
}

Activer le scale-out du modèle sémantique

Pour activer le scale-out du modèle sémantique, définissez maxReadOnlyReplicas sur -1, ou toute autre valeur différente de 0. Une valeur de -1 permet à Power BI de créer autant de réplicas en lecture seule que votre capacité Power BI prend en charge. Vous pouvez également définir explicitement le nombre de répliques sur une valeur inférieure à celle de la capacité maximale. Le réglage maxReadOnlyReplicas sur -1 est recommandé.

###
# 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
        }
     }

Désactiver le scale-out du modèle sémantique

Pour désactiver le scale-out du modèle sémantique, définissez maxReadOnlyReplicas sur 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
        }
     }