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
- Du har brug for en eksisterende Fabric-kapacitet. Hvis du ikke gør det, skal du starte en Fabric-prøveversion.
- Sørg for, at du aktiverer SQL-database i Fabric ved hjælp af lejerindstillingerne for administrationsportalen.
- Opret et nyt arbejdsområde, eller brug et eksisterende Fabric-arbejdsområde.
- Du skal være medlem af rollerne Administrator eller Medlem for arbejdsområdet for at oprette en SQL-database.
- Installér golangversionen af SQLCMD. Kør
winget install sqlcmd
på Windows for at installere. Du kan se andre operativsystemer under aka.ms/go-sqlcmd. - Az PowerShell-modulet. Kør
Install-Module az
i PowerShell for at installere.
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.'