Opprette en SQL-database i Microsoft Fabric via REST API
Gjelder for:✅SQL-database i Microsoft Fabric
Fabric-plattformen har et rikt sett med REST-API-er som kan brukes til å distribuere og administrere ressurser. Disse API-ene kan brukes til å distribuere Fabric SQL-databaser. Denne artikkelen og eksempelskriptet viser et grunnleggende PowerShell-skript som kan brukes til å distribuere en Fabric SQL-database og legge til data i den.
Forutsetning
- Du trenger en eksisterende stoffkapasitet. Hvis du ikke gjør det, kan du starte en fabric-prøveversjon.
- Kontroller at du aktiverer SQL-database i Fabric ved hjelp av leierinnstillingene for administrasjonsportalen.
- Opprett et nytt arbeidsområde , eller bruk et eksisterende Fabric-arbeidsområde.
- Du må være medlem av administrator- eller medlemsrollene for arbeidsområdet for å kunne opprette en SQL-database.
- Installer golang-versjonen av SQLCMD. Kjør
winget install sqlcmd
Windows for å installere. Hvis du vil ha andre operativsystemer, kan du se aka.ms/go-sqlcmd. - Az PowerShell-modulen. Kjør
Install-Module az
i PowerShell for å installere.
Opprette en ny SQL-database via REST-API
Dette eksempelskriptet bruker Connect-AzAccount
et alias az login
for å be om legitimasjon. Den bruker deretter legitimasjonen til å hente et tilgangstoken som skal brukes for REST-API-kall. SQLCMD bruker konteksten for kontoen som ble gitt til Connect-AzAccount
.
Skriptet oppretter en database med navnet påloggede brukerens alias og datoen. REST-API-en returnerer for øyeblikket ikke en status, så vi må gjenta og kontrollere at databasen skal opprettes. Når databasen er opprettet, brukes SQLCMD til å opprette noen objekter og deretter spørre etter deres eksistens. Til slutt sletter vi databasen.
Erstatt <your workspace id>
med ID-en for fabric-arbeidsområdet i skriptet nedenfor. Du kan enkelt finne ID-en for et arbeidsområde i nettadressen, det er den unike strengen i to /
tegn etter /groups/
i nettleservinduet. Eksempel: 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
}
Vis databasene i arbeidsområdet for å se den nye SQL-databasen.
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å kjøre skript T-sQL-setninger via SQLCMD- og REST API-kall. I dette neste eksempelskriptet skal vi opprette noen 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
Fjerning av ressurser
Du kan også slette databasen ved hjelp av et REST-API-kall.
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.'