Del via


Opret en SQL-database i Microsoft Fabric via REST API

Gælder for:SQL-database i Microsoft Fabric

Fabric-platformen har et omfattende sæt REST API'er, der kan bruges til at udrulle og administrere ressourcer. Disse API'er kan bruges til at installere Fabric SQL-databaser. Denne artikel og eksempelscript demonstrerer et grundlæggende PowerShell-script, der kan bruges til at udrulle en Fabric SQL-database og føje data til den.

Forudsætninger

Opret en ny SQL-database via REST API

Dette eksempelscript bruger Connect-AzAccount, som er et alias az login for til at bede om legitimationsoplysninger. Den bruger derefter legitimationsoplysningerne til at hente et adgangstoken, der bruges til REST API-kald. SQLCMD bruger konteksten for den konto, der blev givet til Connect-AzAccount.

Scriptet opretter en database med navnet på den bruger, der er logget på, og datoen. REST-API'en returnerer i øjeblikket ikke en status, så vi skal løkke og kontrollere, om databasen er oprettet. Når databasen er oprettet, bruges SQLCMD til at oprette nogle objekter og derefter forespørge om deres eksistens. Endelig sletter vi databasen.

I følgende script skal du erstatte <your workspace id> med dit Fabric-arbejdsområde-id. Du kan nemt finde id'et for et arbejdsområde i URL-adressen. Det er den entydige streng inden for to / tegn efter /groups/ i browservinduet. I f.eks 11aa111-a11a-1111-1abc-aa1111aaaa . i https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.

Import-Module Az 
Connect-AzAccount 
$access_token = (Get-AzAccessToken -ResourceUrl https://analysis.windows.net/powerbi/api) 
$headers = @{ 
   Authorization = $access_token.Type + ' ' + $access_token.Token 
   } 
$workspaceid = '<your workspace id>' 
$databaseid = $null 
$responseHeaders = $null 
$access_token.UserId -match('^[^@]+') | Out-Null 
$body = @{ 
   displayName = $matches[0] + (Get-Date -Format "MMddyyyy") 
   type = "SQLDatabase" 
   description = "Created using public api" 
   } 

$parameters = @{ 
   Method="Post" 
   Headers=$headers 
   ContentType="application/json" 
   Body=($body | ConvertTo-Json) 
   Uri = 'https://api.fabric.microsoft.com/v1/workspaces/' + $workspaceid + '/items' 
   } 

Invoke-RestMethod @parameters -ErrorAction Stop 
$databases = (Invoke-RestMethod -Headers $headers -Uri https://api.fabric.microsoft.com/v1/workspaces/$($workspaceid)/SqlDatabases).value 
$databaseid = $databases.Where({$_.displayName -eq $body.displayName}).id 
While($databaseid -eq $null) 
   { 
   Write-Host 'Waiting on database create.' 
   Start-Sleep 30 
   $databases = (Invoke-RestMethod -Headers $headers -Uri https://api.fabric.microsoft.com/v1/workspaces/$($workspaceid)/SqlDatabases).value 
   $databaseid = $databases.Where({$_.displayName -eq $body.displayName}).id 
   } 

Nu skal du angive databaserne i arbejdsområdet for at se den nye SQL-database.

Write-Host 'Listing databases in workspace.' 

Invoke-RestMethod -Headers $headers -Uri https://api.fabric.microsoft.com/v1/workspaces/$($workspaceid)/items?type=SQlDatabase | select -ExpandProperty Value | ft 

$databaseProperties = (Invoke-RestMethod -Headers $headers -Uri https://api.fabric.microsoft.com/v1/workspaces/$($workspaceid)/SqlDatabases/$($databaseid) | select -ExpandProperty Properties) 

Du kan også køre scripts T-sQL-sætninger via SQLCMD- og REST API-kald. I dette næste eksempelscript opretter vi nogle tabeller.

Write-Host '...Creating a table.' 

# this script requires the golang version of SQLCMD. Run 'winget install sqlcmd' on a Windows desktop to install. For other operating systems, visit aka.ms/go-sqlcmd 

sqlcmd.exe -S $databaseProperties.ServerFqdn -d $databaseProperties.DatabaseName -G -Q 'create table test2 
   ( 
   id int 
   )' 

Write-Host '...Query sys.tables to confirm create.' 

sqlcmd.exe -S $databaseProperties.ServerFqdn -d $databaseProperties.DatabaseName -G -Q 'SELECT * FROM sys.tables' 

Invoke-RestMethod -Headers $headers -Uri https://api.fabric.microsoft.com/v1/workspaces/$($workspaceid)/items?type=SQlDatabase | select -ExpandProperty Value | ft 

Fjerne ressourcer

Du kan også slette databasen ved hjælp af et REST API-kald.

Write-Host 'Deleting database.' 

$parameters = @{ 

Method="Delete" 

Headers=$headers 

ContentType="application/json" 

Body=($body | ConvertTo-Json) 

Uri = 'https://api.fabric.microsoft.com/v1/workspaces/' + $workspaceid + '/items/' + $databaseid 

} 

Invoke-RestMethod @parameters 

Write-Output 'Deleted database.'