Compartir a través de


Iniciar y detener la creación de reflejo de la base de datos SQL con la API REST de Fabric

Se aplica a :base de datos SQL en Microsoft Fabric

Puede usar la API REST de Fabric para iniciar y detener la creación de reflejo desde una base de datos SQL a OneLake en Fabric. En este artículo y script de ejemplo se muestra cómo usar PowerShell para llamar a la API REST de Fabric iniciar o detener la creación de reflejo.

El reflejo de base de datos SQL en OneLake siempre está activo, por defecto. Hay escenarios en los que puede ser necesario detener el reflejo de la base de datos SQL en Fabric. Por ejemplo, para habilitar la creación de índices de columnas agrupados en una tabla existente, que no se pueden crear cuando el reflejo está activo.

Prerrequisitos

Detener el reflejo de la base de datos SQL en OneLake en Fabric

Los siguientes ejemplos de PowerShell detienen el reflejo de una base de datos SQL hacia el OneLake en Fabric.

En este script de ejemplo se usa Connect-AzAccount, un alias de az login para solicitar credenciales. Usa esas credenciales para obtener un token de acceso que se usará para las llamadas a la API REST. SQLCMD usa el contexto de la cuenta que se ha proporcionado a Connect-AzAccount.

En el script siguiente, debe proporcionar el identificador del área de trabajo y el identificador de base de datos. Ambos se pueden encontrar en la dirección URL. https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. La primera cadena de la dirección URL es el identificador del área de trabajo de Fabric y la segunda cadena es el identificador de base de datos SQL.

  • Reemplace por <your workspace id> el identificador del área de trabajo de Fabric. Puede encontrar fácilmente el identificador de un área de trabajo en la dirección URL, es la cadena única dentro de dos / caracteres después /groups/ en la ventana del explorador.
  • Reemplace <your database id> con la base de datos SQL en el identificador de base de datos de Fabric. Puede encontrar fácilmente el identificador del elemento de la base de datos en la dirección URL, es la cadena única entre dos caracteres / después de /sqldatabases/ en la ventana del navegador.

Este script muestra lo siguiente:

  1. Recupere un token de acceso utilizando Get-AzAccessToken y conviértalo de una cadena segura. Si usa PowerShell 7, convertFrom-SecureString también es una opción.
  2. Ensamblar la llamada API.
  3. Hacer una llamada a la API.
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)
}

Inicio del reflejo de la base de datos SQL en OneLake dentro de Fabric

Los siguientes ejemplos de PowerShell inician el reflejo de una base de datos SQL en OneLake en Fabric.

En este script de ejemplo se usa Connect-AzAccount, un alias de az login para solicitar credenciales. Usa esas credenciales para obtener un token de acceso que se usará para las llamadas a la API REST. SQLCMD usa el contexto de la cuenta que se ha proporcionado a Connect-AzAccount.

En el script siguiente, reemplace por <your workspace id> el identificador del área de trabajo de Fabric. Puede encontrar fácilmente el identificador de un área de trabajo en la dirección URL, es la cadena única dentro de dos / caracteres después /groups/ en la ventana del explorador. Por ejemplo, 11aa111-a11a-1111-1abc-aa1111aaaa en https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.

Este script muestra lo siguiente:

  1. Recupere un token de acceso utilizando Get-AzAccessToken y conviértalo de una cadena segura. Si usa PowerShell 7, convertFrom-SecureString también es una opción.
  2. Ensamblar la llamada API.
  3. Ejecute la llamada API.
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)
}