Share via


Συγχρονισμός ρεπλίκων κλιμάκωσης

Αυτό το άρθρο περιγράφει τον τρόπο συγχρονισμού ρεπλίκων κλιμάκωσης μοντέλου σημασιολογίας χρησιμοποιώντας το PowerShell στη γραμμή εντολών ή μέσω δέσμης ενεργειών.

Όταν εργάζεστε με το κύριο σημασιολογικό μοντέλο ανάγνωσης-εγγραφής και οι χρήστες μοντέλου σημασιολογίας χρησιμοποιούν τις αναπαραστάσεις μόνο για ανάγνωση, μπορείτε να εκτελείτε ενημερώσεις και ανανεώσεις σημασιολογικών μοντέλων χωρίς να επηρεάζονται. Ωστόσο, αλλαγές στο μοντέλο σημασιολογικού μοντέλου και ανανεώσεις πραγματοποιούνται στο πρωτεύον μοντέλο σημασιολογίας. Για να αντιγράψετε τις αλλαγές στις ρεπλίκες μόνο για ανάγνωση, πρέπει να συγχρονιστούν με το σημασιολογικό μοντέλο ανάγνωσης-εγγραφής.

Από προεπιλογή, η autoSyncReadOnlyReplicas παράμετρος έχει οριστεί σε true - Το Power BI συγχρονίζει αυτόματα τις αναπαραστάσεις. Μπορείτε να απενεργοποιήσετε τον αυτόματο συγχρονισμό, ορίζοντας το autoSyncReadOnlyReplicas σε false. Ωστόσο, μπορείτε να επιλέξετε να συγχρονίσετε με μη αυτόματο τρόπο, χρησιμοποιώντας syncStatus τα API REST και sync .

Για να ελέγξετε την κατάσταση συγχρονισμού των ρεπλίκων σας, χρησιμοποιήστε το SyncStatus REST API. Αυτό το άρθρο περιγράφει τις εντολές του PowerShell για τη χρήση αυτού του API.

Έλεγχος κατάστασης συγχρονισμού αναπαραγωγής

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

Εάν το API κατάστασης συγχρονισμού επιστρέψει μια κενή απόκριση ή εάν η scaleOutStatus έχει οριστεί σε "Δεν είναι διαθέσιμη", δοκιμάστε να φορτώσετε την αναπαραγωγή ανάγνωσης-εγγραφής του μοντέλου σημασιολογίας ή εκτελέστε μια ανανέωση στο μοντέλο για να λάβετε την πιο πρόσφατη κατάσταση συγχρονισμού.

Για να μάθετε περισσότερα, ανατρέξτε στο θέμα Σύνολα δεδομένων - Λήψη κλίμακας ερωτημάτων Κατάσταση συγχρονισμού σε ομάδα στην αναφορά API REST του Power BI.

Απενεργοποίηση αυτόματου συγχρονισμού ρεπλίκας

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

Εκτέλεση μη αυτόματου συγχρονισμού ρεπλίκας (δέσμη ενεργειών)

###
# 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/dataset/$datasetId/queryScaleOut/syncStatus" -Method Get | ConvertFrom-Json 
}

Write-Host 'Completed'
$response

Για να μάθετε περισσότερα, ανατρέξτε στο θέμα Σύνολα δεδομένων - Ενεργοποίηση συγχρονισμού κλιμάκωσης ερωτημάτων σε ομάδα στην αναφορά REST API του Power BI.

Εκτέλεση μη αυτόματου συγχρονισμού ρεπλίκας (γραμμή εντολών)

Ακολουθήστε αυτά τα βήματα για να συγχρονίσετε τις ρεπλίκες χρησιμοποιώντας το Windows PowerShell:

  1. Ανοίξτε το PowerShell και συνδεθείτε στο Power BI εκτελώντας αυτήν την εντολή:

    Login-PowerBI
    
  2. Λάβετε τα αναγνωριστικά του χώρου εργασίας σας εκτελώντας την παρακάτω εντολή. Αντικαταστήστε <WorkspaceName> το με το όνομα του χώρου εργασίας σας.

    Get-PowerBIWorkspace -Name "<WorkspaceName>"  # Replace <WorkspaceName> with the name of your workspace
    
  3. Λάβετε το αναγνωριστικό μοντέλου σημασιολογίας εκτελώντας την παρακάτω εντολή. Αντικαταστήστε <WorkspaceId> το με το αναγνωριστικό του χώρου εργασίας σας.

    Get-PowerBIDataset -WorkspaceId "<WorkspaceId>"  # Replace <WorkspaceId> with the Id of your workspace
    
  4. Ελέγξτε την κατάσταση συγχρονισμού του μοντέλου σημασιολογίας χρησιμοποιώντας την παρακάτω εντολή. Αντικαταστήστε τις τιμές και <WorkspaceId><DatasetId> αντίστοιχα.

    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
    

    Στην έξοδο, οι minActiveReadVersion τιμές και minActiveReadTimestamp αναφέρονται στην αναπαραγωγή μόνο για ανάγνωση. Οι commitVersion τιμές και commitTimestamp , ανατρέξτε στο σημασιολογικό μοντέλο ανάγνωσης-εγγραφής. Μια διαφορά μεταξύ τους, υποδεικνύει ότι η αναπαραγωγή μόνο για ανάγνωση αντιπροσωπεύει μια παλαιότερη έκδοση του μοντέλου σημασιολογίας.

  5. Συγχρονίστε το σημασιολογικό μοντέλο ανάγνωσης-εγγραφής και ρεπλίκες μόνο για ανάγνωση, χρησιμοποιώντας την ακόλουθη εντολή. Αντικαταστήστε τις τιμές και <WorkspaceId><DatasetId> αντίστοιχα.

    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
    

    Οι πληροφορίες κατάστασης συγχρονισμού στην έξοδο υποδεικνύουν το σημασιολογικό μοντέλο ανάγνωσης-εγγραφής και οι ρεπλίκες μόνο για ανάγνωση είναι εκτός συγχρονισμού, το οποίο αναμένεται επειδή μόλις ενεργοποιήσατε τον συγχρονισμό.

  6. Για να επαληθεύσετε ότι ο συγχρονισμός ολοκληρώθηκε, εκτελέστε ξανά την syncStatus εντολή στο βήμα 4 . Ίσως χρειαστεί να εκτελέσετε την εντολή μερικές φορές, ανάλογα με το χρονικό διάστημα που απαιτείται για το συγχρονισμό των αντιγράφων μοντέλου σημασιολογίας. Όταν ολοκληρωθεί ο συγχρονισμός, ελέγξτε τις τιμές του syncStartTime και syncEndTime για να δείτε πόσος χρόνος διήρκεσε ο συγχρονισμός.

Για να μάθετε περισσότερα, ανατρέξτε στο θέμα Σύνολα δεδομένων - Ενεργοποίηση συγχρονισμού κλιμάκωσης ερωτημάτων σε ομάδα στην αναφορά REST API του Power BI.