Aracılığıyla paylaş


Fabric REST API ile SQL veritabanı yansıtmasını başlatma ve durdurma

Şunlar için geçerlidir:Microsoft Fabric'te SQL veritabanı

Bir SQL veritabanından Fabric'de OneLake'e yansıtmayı başlatmak ve durdurmak için Fabric REST API'sini kullanabilirsiniz. Bu makalede ve örnek betikte, PowerShell kullanarak Fabric REST API çağrısı yaparak yansıtmayı başlatmanın veya durdurmanın nasıl yapılacağı gösterilmektedir.

OneLake'e yansıtan SQL veritabanı varsayılan olarak her zaman çalışır. Fabric üzerinde SQL veritabanı yansıtmasının durdurulmasının gerekebileceği senaryolar vardır. Örneğin, yansıtma çalışırken oluşturulamayan mevcut bir tabloda kümelenmiş sütun dizinleri oluşturmayı etkinleştirmek için.

Önkoşullar

SQL veritabanını Fabric'te OneLake'e yansıtmayı durdurun

Aşağıdaki PowerShell örnekleri, Fabric içinde bir SQL veritabanını OneLake'e yansıtmayı durdurur.

Bu örnek betik, kimlik bilgilerini istemek için Connect-AzAccount, az login'ın bir takma adı olarak kullanır. REST API çağrıları için kullanılacak bir erişim belirteci almak için bu kimlik bilgilerini kullanır. SQLCMD, Connect-AzAccount'e verilen hesabın bağlamını kullanır.

Aşağıdaki betikte çalışma alanı kimliğini ve veritabanı kimliğini sağlamanız gerekir. Her ikisi de URL'de bulunabilir. https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. URL'deki ilk dize Doku çalışma alanı kimliği, ikinci dize ise SQL veritabanı kimliğidir.

  • <your workspace id> ifadesini Fabric çalışma alanı kimliğiniz ile değiştirin. Url'de bir çalışma alanının kimliğini kolayca bulabilirsiniz. Bu, tarayıcı pencerenizde iki / karakterden sonra /groups/ gelen benzersiz dizedir.
  • Fabric veritabanı kimliğindeki <your database id> öğesini SQL veritabanınızla değiştirin. Veritabanı öğesinin kimliğini URL'de kolayca bulabilirsiniz. Bu, tarayıcı pencerenizde iki / karakterden sonra /sqldatabases/ gelen benzersiz dizedir.

Bu skript şunu tanımlar:

  1. Get-AzAccessToken kullanarak bir erişim belirteci alın ve bunugüvenli bir dizgeden dönüştürün. PowerShell 7 kullanıyorsanız ConvertFrom-SecureString de bir seçenektir.
  2. API çağrısını derleme.
  3. API çağrısını çağır.
Import-Module Az.Accounts

az login

$workspaceid = '<your workspace id>' # Find in the URL
$databaseid = '<your database id>' # Find in the URL

$headers = $null

# 1. Get the access token and add it to the headers

$access_token = (Get-AzAccessToken -AsSecureString -ResourceUrl https://api.fabric.microsoft.com)

$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($access_token.Token)

try {
$headers = @{ 
       Authorization = $access_token.Type + ' ' + ([System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr))
    }

$access_token.UserId -match('^[^@]+') | Out-Null

$stopMirroringUri = "https://api.fabric.microsoft.com/v1/workspaces/$workspaceid/sqlDatabases/$databaseid/stopMirroring"

$parameters = @{
        Method="Post"
        Headers=$headers
        Uri = $stopMirroringUri
    }

Invoke-RestMethod @parameters -ErrorAction Stop

 } finally {
    # The following lines ensure that sensitive data is not left in memory.
    $headers = [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
}

SQL veritabanının Fabric'te OneLake'e yansıtılmasını başlat

Aşağıdaki PowerShell örnekleri, SQL veritabanının Fabric içinde OneLake'e yansıtılmasına başlar.

Bu örnek betik, kimlik bilgilerini istemek için Connect-AzAccount, az login'ın bir takma adı olarak kullanır. REST API çağrıları için kullanılacak bir erişim belirteci almak için bu kimlik bilgilerini kullanır. SQLCMD, Connect-AzAccount'e verilen hesabın bağlamını kullanır.

Aşağıdaki betikte <your workspace id> ifadesini Doku çalışma alanı kimliğinizle değiştirin. Url'de bir çalışma alanının kimliğini kolayca bulabilirsiniz. Bu, tarayıcı pencerenizde iki / karakterden sonra /groups/ gelen benzersiz dizedir. Örneğin, 11aa111-a11a-1111-1abc-aa1111aaaa içinde https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.

Bu skript şunu tanımlar:

  1. Get-AzAccessToken kullanarak bir erişim belirteci alın ve bunugüvenli bir dizgeden dönüştürün. PowerShell 7 kullanıyorsanız ConvertFrom-SecureString de bir seçenektir.
  2. API çağrısını derleme.
  3. API çağrısını çağır.
Import-Module Az.Accounts

az login

$workspaceid = '<your workspace id>' # Find in the URL
$databaseid = '<your database id>' # Find in the URL

$headers = $null

# 1. Get the access token and add it to the headers

$access_token = (Get-AzAccessToken -AsSecureString -ResourceUrl https://api.fabric.microsoft.com)

$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($access_token.Token)

try {
$headers = @{ 
       Authorization = $access_token.Type + ' ' + ([System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr))
    }

$access_token.UserId -match('^[^@]+') | Out-Null

$startMirroringUri = "https://api.fabric.microsoft.com/v1/workspaces/$workspaceid/sqlDatabases/$databaseid/startMirroring"

$parameters = @{
        Method="Post"
        Headers=$headers
        Uri = $startMirroringUri
    }

Invoke-RestMethod @parameters -ErrorAction Stop

 } finally {
    # The following lines ensure that sensitive data is not left in memory.
    $headers = [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
}