Partager via


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

Vous pouvez activer le scale-out dans le service Power BI ou à l’aide des 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, procédez comme suit :

  1. Dans le service Power BI, ouvrez l’espace de travail avec le modèle sémantique pour lequel vous souhaitez 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 du paramètre, activez le format de stockage du modèle sémantique volumineux s’il n’est pas activé.

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

    Capture d’écran montrant comment activer le scale-out dans le service Power BI.

Activer la mise à l'échelle à l'aide des API REST des ensembles de données

Cette section 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’identifiant du jeu de données

Pour obtenir le datasetId, utilisez Get-PowerBIDataset. Vous devez spécifier un id d’espace de travail 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 de 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 une valeur non nulle quelconque. Une valeur de -1 permet à Power BI de créer autant de réplicas en lecture seule que votre capacité Power BI le prend en charge. Vous pouvez également définir explicitement le nombre de réplicas sur une valeur inférieure à celle de la capacité maximale. Il est recommandé de configurer maxReadOnlyReplicas sur -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
        }
     }

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

Pour désactiver l'extensibilité 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
        }
     }