แชร์ผ่าน


ซิงโครไนซ์แบบจําลองสเกลออก

บทความนี้อธิบายวิธีการซิงโครไนซ์แบบจําลองความหมายแบบปรับมาตราส่วนออกโดยใช้ PowerShell ในบรรทัดคําสั่งหรือโดยสคริปต์

เมื่อคุณกําลังทํางานกับแบบจําลองความหมายแบบอ่าน-เขียนหลัก และผู้ใช้แบบจําลองเชิงความหมายกําลังใช้แบบจําลองแบบอ่านอย่างเดียว คุณสามารถดําเนินการอัปเดตเมตาดาต้าแบบจําลองเชิงความหมายและการรีเฟรชโดยไม่มีผลกระทบต่อแบบจําลองเหล่านั้น อย่างไรก็ตาม การเปลี่ยนแปลงไปยังแบบจําลองความหมายและการรีเฟรชจะเกิดขึ้นในแบบจําลองความหมายหลัก เมื่อต้องการคัดลอกการเปลี่ยนแปลงไปยังแบบจําลองแบบอ่านอย่างเดียว

ตาม autoSyncReadOnlyReplicas ค่าเริ่มต้น พารามิเตอร์ถูกตั้งค่าเป็น true - Power BI จะซิงโครไนซ์แบบจําลองโดยอัตโนมัติ คุณสามารถปิดใช้งานการซิงค์อัตโนมัติตามการตั้งค่าautoSyncReadOnlyReplicasเป็นfalse อย่างไรก็ตาม คุณสามารถเลือกที่จะซิงค์ด้วยตนเองโดยใช้ syncStatus และ sync REST API

เมื่อต้องการตรวจสอบสถานะการซิงค์ของแบบจําลองของคุณ ให้ใช้ 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 ถูกตั้งค่า เป็น "ไม่พร้อมใช้งาน" ให้ลองโหลดแบบจําลองเชิงความหมายของแบบจําลองเชิงความหมายแบบอ่านได้หรือดําเนินการรีเฟรชบนแบบจําลองเพื่อรับสถานะการซิงค์ล่าสุด

เมื่อต้องการเรียนรู้เพิ่มเติม ดู ชุดข้อมูล - รับคิวรีปรับมาตราส่วนออกสถานะการซิงค์ในกลุ่ม ในการอ้างอิง Power BI REST API

ปิดใช้งานการซิงโครไนซ์แบบจําลองโดยอัตโนมัติ

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

Write-Host 'Completed'
$response

เมื่อต้องการเรียนรู้เพิ่มเติม ดู ชุดข้อมูล - ทริกเกอร์คิวรีการปรับมาตราส่วนออกซิงค์ในกลุ่ม ในการอ้างอิง Power BI REST API

ดําเนินการซิงค์แบบจําลองด้วยตนเอง (บรรทัดคําสั่ง)

ทําตามขั้นตอนเหล่านี้เพื่อซิงค์แบบจําลองโดยใช้ Windows PowerShell:

  1. เปิด PowerShell และเข้าสู่ระบบ Power BI โดยการเรียกใช้คําสั่งนี้:

    Login-PowerBI
    
  2. รับ ID พื้นที่ทํางานของคุณ โดยการเรียกใช้คําสั่งด้านล่าง แทนที่ <WorkspaceName> ด้วยชื่อของพื้นที่ทํางานของคุณ

    Get-PowerBIWorkspace -Name "<WorkspaceName>"  # Replace <WorkspaceName> with the name of your workspace
    
  3. รับรหัสแบบจําลองความหมายโดยการเรียกใช้คําสั่งด้านล่าง แทนที่ <WorkspaceId> ด้วย Id ของพื้นที่ทํางานของคุณ

    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 เพื่อดูว่าการซิงค์ใช้เวลาเท่าไหร่

เมื่อต้องการเรียนรู้เพิ่มเติม ดู ชุดข้อมูล - ทริกเกอร์คิวรีการปรับมาตราส่วนออกซิงค์ในกลุ่ม ในการอ้างอิง Power BI REST API