SQL-tietokannan luominen Microsoft Fabricissa REST-ohjelmointirajapinnan kautta
Koskee Microsoft Fabricin SQL-tietokantaa✅
Fabric-ympäristössä on runsaasti REST-ohjelmointirajapintoja, joita voidaan käyttää resurssien käyttöönottoon ja hallintaan. Näitä ohjelmointirajapintoja voidaan käyttää Fabric SQL -tietokantojen käyttöönottoon. Tässä artikkelissa ja mallikomentosarjassa esitellään PowerShell-peruskomentosarja, jonka avulla voidaan ottaa käyttöön Fabric SQL -tietokanta ja lisätä siihen tietoja.
Edellytykset
- Tarvitset olemassa olevan Fabric-kapasiteetin. Aloita Fabric-kokeilu, jos et tee niin.
- Varmista, että otat SQL-tietokannan käyttöön Fabricissa hallintaportaalin vuokraaja-asetusten avulla.
- Luo uusi työtila tai käytä aiemmin luotua Fabric-työtilaa.
- Jotta voit luoda SQL-tietokannan, sinun on oltava työtilan järjestelmänvalvoja- tai jäsenroolien jäsen.
- Asenna SQLCMD:n golang-versio. Suorita
winget install sqlcmd
Windowsissa asentaaksesi. Katso muut käyttöjärjestelmät kohdasta aka.ms/go-sqlcmd. - Az PowerShell -moduuli. Asenna suorittamalla
Install-Module az
PowerShellissä.
Uuden SQL-tietokannan luominen REST-ohjelmointirajapinnan kautta
Tässä esimerkissä käytetään Connect-AzAccount
-aliasta az login
tunnistetietojen kysymiseen. Sen jälkeen se käyttää tunnistetietoja saadakseen käyttöoikeustietueen, jota käytetään REST-ohjelmointirajapinnan kutsuissa. SQLCMD käyttää -palvelulle annetun tilin kontekstia Connect-AzAccount
.
Komentosarja luo tietokannan, jonka nimi sisältää kirjautuneen käyttäjän aliaksen ja päivämäärän. Tällä hetkellä REST-ohjelmointirajapinta ei palauta tilaa, joten meidän täytyy silmukalla ja tarkistaa, luodaanko tietokanta. Kun tietokanta on luotu, SQLCMD:llä luodaan objekteja ja tehdään kysely niiden olemassaololle. Lopuksi poistetaan tietokanta.
Korvaa <your workspace id>
seuraavassa komentosarjassa Fabric-työtilatunnuksellasi. Työtilan tunnus löytyy helposti URL-osoitteesta. Se on yksilöivä merkkijono kahden /
merkin /groups/
sisällä selainikkunassa. Esimerkiksi 11aa111-a11a-1111-1abc-aa1111aaaa
kohdassa 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
}
Luettele työtilan tietokannat, jotta näet uuden SQL-tietokannan.
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)
Voit suorittaa komentosarjoja T-sQL-lausekkeita myös SQLCMD- ja REST-ohjelmointirajapintakutsujen kautta. Tässä seuraavassa mallikomentosarjassa luomme joitakin taulukoita.
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
Resurssien puhdistaminen
Vaihtoehtoisesti voit poistaa tietokannan myös REST-ohjelmointirajapinnan kutsulla.
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.'