Jaa


Skaalausreplikoiden synkronointi

Tässä artikkelissa kerrotaan, miten voit synkronoida semanttisen mallin skaalattavat replikat käyttämällä PowerShelliä komentorivillä tai komentosarjan mukaan.

Kun käsittelet ensisijaisen luku/kirjoitus-semanttisen mallin kanssa ja semanttisen mallin käyttäjät käyttävät vain luku -replikoita, voit suorittaa semanttisten mallien metatietojen päivityksiä ja päivityksiä vaikuttamatta niihin. Semanttisen mallin ja päivitysten muutokset tehdään kuitenkin ensisijaisessa semanttisessa mallissa. Jos haluat kopioida muutokset vain luku -replikoihin, se on synkronoitava semanttisen luku- ja kirjoitusmallin kanssa.

Parametrin autoSyncReadOnlyReplicas oletusasetuksena true on – Power BI synkronoi replikot automaattisesti. Voit poistaa automaattisen synkronoinnin käytöstä määrittämällä kohteen autoSyncReadOnlyReplicas false. Voit kuitenkin synkronoida manuaalisesti käyttämällä - syncStatus ja sync REST-ohjelmointirajapintoja.

Voit tarkistaa replikoiden synkronoinnin tilan REST-ohjelmointirajapinnalla SyncStatus . Tässä artikkelissa kuvataan PowerShell-komennot tämän ohjelmointirajapinnan käyttöä varten.

Tarkista replikoinnin synkronoinnin tila

###
# Check the scale-out replica sync status
###
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/queryScaleOut/syncStatus" -Method Get | ConvertFrom-Json 
$response | Format-List

if ($response.commitVersion -eq $response.minActiveReadVersion)
{
    Write-Host "Semantic model read-write and read-only replicas are in sync."
}
else
{
    Write-Host "Semantic model read-write and read-only replicas are not in sync." -ForegroundColor Red
}

Jos synkronoinnin tilan ohjelmointirajapinta palauttaa tyhjän vastauksen tai jos scaleOutStatus-asetuksena on "Ei käytettävissä", yritä ladata semanttisen mallin luku/kirjoitus -replikointi tai suorita mallissa päivitys, jotta saat uusimman synkronoinnin tilan.

Lisätietoja on artikkelissa Tietojoukot – Hae kyselyn skaalaus ulossynkronoinnin tila ryhmässä power BI REST -ohjelmointirajapinnan viittauksessa.

Automaattisen replikoinnin synkronoinnin poistaminen käytöstä

###
# Disable automatic scale-out replica sync
###
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": { "autoSyncReadOnlyReplicas": false }}'

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

Manuaalisen replikasoinnin synkronointi (komentosarja)

###
# Perform a manual replica sync
###
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/queryScaleOut/sync" -Method Post -Body "" | ConvertFrom-Json

Write-Host 'Synchronizing the scale-out replicas...' -NoNewLine

while ($response.commitVersion -ne $response.minActiveReadVersion)
{
    Write-Host '.' -NoNewLine
    Start-Sleep -Seconds 10

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

Write-Host 'Completed'
$response

Lisätietoja on power BI REST -ohjelmointirajapinnan viitteen kohdassa Tietojoukot – Käynnistä kyselyn skaalaus ulossynkronointi ryhmässä .

Manuaalisen replikasoinnin synkronointi (komentorivi)

Synkronoi replikot Windows PowerShellin avulla seuraavasti:

  1. Avaa PowerShell ja kirjaudu Power BI:hin suorittamalla tämä komento:

    Login-PowerBI
    
  2. Hae työtilan tunnukset suorittamalla alla oleva komento. Korvaa <WorkspaceName> työtilasi nimellä.

    Get-PowerBIWorkspace -Name "<WorkspaceName>"  # Replace <WorkspaceName> with the name of your workspace
    
  3. Hae semanttinen mallin tunnus suorittamalla alla oleva komento. Korvaa <WorkspaceId> työtilasi tunnuksella.

    Get-PowerBIDataset -WorkspaceId "<WorkspaceId>"  # Replace <WorkspaceId> with the Id of your workspace
    
  4. Tarkista semanttisen mallin synkronointitila alla olevan komennon avulla. Korvaa kohteen arvot <WorkspaceId> ja <DatasetId> vastaavasti.

    Invoke-PowerBIRestMethod -Url 'groups/<WorkspaceId>/datasets/<DatasetId>/queryScaleOut/syncStatus' -Method Get | ConvertFrom-Json | Format-List  # Replace <WorkspaceId> with the Id of your workspace and <DatasetId> with the Id of your semantic model
    

    Ja -arvot viittaavat tulosteessa minActiveReadVersion minActiveReadTimestamp vain luku -replikaan. - ja commitTimestamp -commitVersionarvot viittaavat luku/kirjoitus -semanttiseen malliin. Niiden välinen ero on se, että vain luku -replika edustaa semanttisen mallin vanhempaa versiota.

  5. Synkronoi semanttinen luku-ja kirjoitus -malli ja vain luku -replikot käyttämällä seuraavaa komentoa. Korvaa kohteen arvot <WorkspaceId> ja <DatasetId> vastaavasti.

    Invoke-PowerBIRestMethod -Url 'groups/<WorkspaceId>/datasets/<DatasetId>/queryScaleOut/sync' -Method Post -Body "" | ConvertFrom-Json | Format-List  # Replace <WorkspaceId> with the Id of your workspace and <DatasetId> with the Id of your semantic model
    

    Tulosteen synkronoinnin tilatiedot osoittavat, että semanttinen luku-ja kirjoitus -malli ja vain luku -replikot eivät ole synkronoituja, mikä on odotettavissa, koska käynnistit juuri synkronoinnin.

  6. Jos haluat varmistaa, että synkronointi on valmis, suorita syncStatus komento vaiheessa 4 uudelleen. Joudut ehkä suorittamaan komennon muutaman kerran sen mukaan, kuinka kauan semanttisen mallin kopioiden synkronointiin kuluu. Kun synkronointi on valmis, tarkista -arvot syncStartTime ja syncEndTime katso, kuinka kauan synkronointi kesti.

Lisätietoja on power BI REST -ohjelmointirajapinnan viitteen kohdassa Tietojoukot – Käynnistä kyselyn skaalaus ulossynkronointi ryhmässä .