Bagikan melalui


Menyinkronkan replika peluasan skala

Artikel ini menjelaskan cara menyinkronkan replika peluasan skala model semantik dengan menggunakan PowerShell di baris perintah atau berdasarkan skrip.

Saat Anda bekerja melawan model semantik baca-tulis utama, dan pengguna model semantik menggunakan replika baca-saja, Anda dapat melakukan pembaruan dan refresh metadata model semantik tanpa memengaruhinya. Namun, perubahan pada model semantik dan refresh terjadi dalam model semantik utama. Untuk menyalin perubahan ke replika baca-saja, perubahan harus disinkronkan dengan model semantik baca-tulis.

Secara default, autoSyncReadOnlyReplicas parameter diatur ke true - Power BI menyinkronkan replika secara otomatis. Anda dapat menonaktifkan sinkronisasi otomatis dengan mengatur autoSyncReadOnlyReplicas ke false. Namun, Anda dapat memilih untuk menyinkronkan secara manual dengan menggunakan syncStatus DAN sync REST API.

Untuk memeriksa status sinkronisasi replika Anda, gunakan SyncStatus REST API. Artikel ini menjelaskan perintah PowerShell untuk menggunakan API ini.

Memeriksa status sinkronisasi replika

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

Jika API status sinkronisasi mengembalikan respons kosong atau jika scaleOutStatus diatur ke "Tidak Tersedia", coba muat replika baca-tulis model semantik atau lakukan refresh pada model untuk mendapatkan status sinkronisasi terbaru.

Untuk mempelajari selengkapnya, lihat Himpunan Data - Dapatkan Status Sinkronisasi Peluasan Skala Kueri Dalam Grup di referensi Power BI REST API.

Menonaktifkan sinkronisasi replika otomatis

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

Melakukan sinkronisasi replika manual (skrip)

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

Untuk mempelajari selengkapnya, lihat Himpunan Data - Memicu Sinkronisasi Peluasan Skala Kueri Dalam Grup di referensi Power BI REST API.

Melakukan sinkronisasi replika manual (baris perintah)

Ikuti langkah-langkah ini untuk menyinkronkan replika dengan menggunakan Windows PowerShell:

  1. Buka PowerShell dan masuk ke Power BI dengan menjalankan perintah ini:

    Login-PowerBI
    
  2. Dapatkan ID ruang kerja Anda dengan menjalankan perintah di bawah ini. Ganti <WorkspaceName> dengan nama ruang kerja Anda.

    Get-PowerBIWorkspace -Name "<WorkspaceName>"  # Replace <WorkspaceName> with the name of your workspace
    
  3. Dapatkan Id model semantik dengan menjalankan perintah di bawah ini. Ganti <WorkspaceId> dengan Id ruang kerja Anda.

    Get-PowerBIDataset -WorkspaceId "<WorkspaceId>"  # Replace <WorkspaceId> with the Id of your workspace
    
  4. Periksa status sinkronisasi model semantik Anda dengan menggunakan perintah di bawah ini. Ganti nilai <WorkspaceId> dan <DatasetId> yang sesuai.

    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
    

    Dalam output, minActiveReadVersion nilai dan minActiveReadTimestamp merujuk ke replika baca-saja. Nilai commitVersion dan commitTimestamp , lihat model semantik baca-tulis. Perbedaan di antara mereka, menunjukkan replika baca-saja mewakili versi model semantik yang lebih lama.

  5. Sinkronkan model semantik baca-tulis dan replika baca-saja dengan menggunakan perintah berikut. Ganti nilai <WorkspaceId> dan <DatasetId> yang sesuai.

    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
    

    Informasi status sinkronisasi dalam output menunjukkan model semantik baca-tulis dan replika baca-saja tidak sinkron, yang diharapkan karena Anda baru saja memicu sinkronisasi.

  6. Untuk memverifikasi sinkronisasi selesai, jalankan syncStatus perintah di langkah 4 lagi. Anda mungkin perlu menjalankan perintah beberapa kali tergantung pada lamanya waktu yang diperlukan untuk menyinkronkan salinan model semantik. Saat sinkronisasi selesai, periksa nilai syncStartTime dan syncEndTime untuk melihat berapa lama sinkronisasi berlangsung.

Untuk mempelajari selengkapnya, lihat Himpunan Data - Memicu Sinkronisasi Peluasan Skala Kueri Dalam Grup di referensi Power BI REST API.