Δημιουργία βάσης δεδομένων SQL στο Microsoft Fabric μέσω API REST
Ισχύει για:✅Βάση δεδομένων SQL στο Microsoft Fabric
Η πλατφόρμα Fabric διαθέτει ένα πλούσιο σύνολο API REST που μπορούν να χρησιμοποιηθούν για την ανάπτυξη και τη διαχείριση πόρων. Αυτά τα API μπορούν να χρησιμοποιηθούν για την ανάπτυξη βάσεων δεδομένων SQL Fabric. Αυτό το άρθρο και δείγμα δέσμης ενεργειών παρουσιάζουν μια βασική δέσμη ενεργειών PowerShell που μπορεί να χρησιμοποιηθεί για την ανάπτυξη μιας βάσης δεδομένων SQL Fabric και την προσθήκη δεδομένων σε αυτήν.
Προαπαιτούμενα στοιχεία
- Χρειάζεστε ένα υπάρχον σύνολο εκχωρημένων πόρων Fabric. Εάν δεν το κάνετε, ξεκινήστε μια δοκιμαστική έκδοση Fabric.
- Βεβαιωθείτε ότι έχετε ενεργοποιήσει τη βάση δεδομένων SQL στο Fabric χρησιμοποιώντας τις ρυθμίσεις μισθωτή πύλης διαχείρισης.
- Δημιουργήστε έναν νέο χώρο εργασίας ή χρησιμοποιήστε έναν υπάρχοντα χώρο εργασίας Fabric.
- Πρέπει να είστε μέλος των ρόλων Διαχειριστής ή Μέλος για τον χώρο εργασίας, προκειμένου να δημιουργήσετε μια βάση δεδομένων SQL.
- Εγκαταστήστε την έκδοση golang του SQLCMD. Εκτελέστε σε
winget install sqlcmd
Windows για εγκατάσταση. Για άλλα λειτουργικά συστήματα, ανατρέξτε στο θέμα aka.ms/go-sqlcmd. - Η λειτουργική μονάδα Az PowerShell. Εκτελέστε το
Install-Module az
στο PowerShell για εγκατάσταση.
Δημιουργία νέας βάσης δεδομένων SQL μέσω API REST
Αυτό το παράδειγμα δέσμης Connect-AzAccount
ενεργειών χρησιμοποιεί το , ένα ψευδώνυμο για az login
την προτροπή για διαπιστευτήρια. Χρησιμοποιεί αυτά τα διαπιστευτήρια για να αποκτήσει ένα διακριτικό πρόσβασης για χρήση στις κλήσεις REST API. Η SQLCMD χρησιμοποιεί το περιβάλλον του λογαριασμού που δόθηκε στο Connect-AzAccount
.
Η δέσμη ενεργειών δημιουργεί μια βάση δεδομένων με το όνομα του συνδεδεμένου χρήστη και την ημερομηνία. Προς το παρόν, το REST API δεν επιστρέφει μια κατάσταση, επομένως πρέπει να κάνουμε βρόχο και να ελέγξουμε για τη δημιουργία της βάσης δεδομένων. Μετά τη δημιουργία της βάσης δεδομένων, χρησιμοποιείται η SQLCMD για τη δημιουργία ορισμένων αντικειμένων και, στη συνέχεια, το ερώτημα για την ύπαρξή τους. Τέλος, διαγράφουμε τη βάση δεδομένων.
Στην ακόλουθη δέσμη ενεργειών, αντικαταστήστε <your workspace id>
το με το αναγνωριστικό χώρου εργασίας Fabric σας. Μπορείτε να βρείτε εύκολα το αναγνωριστικό ενός χώρου εργασίας στη διεύθυνση URL, είναι η μοναδική συμβολοσειρά μέσα σε δύο /
χαρακτήρες μετά /groups/
από το παράθυρο του προγράμματος περιήγησης. Για παράδειγμα, 11aa111-a11a-1111-1abc-aa1111aaaa
στο https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/
.
Αυτή η δέσμη ενεργειών παρουσιάζει τα εξής:
- Ανακτήστε ένα διακριτικό πρόσβασης χρησιμοποιώντας Get-AzAccessToken και μετατρέψτε το από μια ασφαλή συμβολοσειρά. Εάν χρησιμοποιείτε το PowerShell 7, το ConvertFrom-SecureString είναι επίσης μια επιλογή.
- Δημιουργήστε μια νέα βάση δεδομένων SQL χρησιμοποιώντας το Items - Δημιουργία API στοιχείου.
- Παράθεση όλων των βάσεων δεδομένων SQL σε έναν χώρο εργασίας Fabric.
- Συνδεθείτε στη βάση δεδομένων με SQLCMD για να εκτελέσετε μια δέσμη ενεργειών για να δημιουργήσετε ένα αντικείμενο.
- Διαγράψτε τη βάση δεδομένων χρησιμοποιώντας το Items - Διαγραφή API στοιχείου.
Import-Module Az.Accounts
Connect-AzAccount
$workspaceid = '<your workspace id>'
$databaseid = $null
$headers = $null
$responseHeaders = $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
# 2. Create the database and wait for it to be created.
$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
}
# 3. List all SQL databases in a Fabric workspace
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)
#4. Connnect to the database and create a table
Write-Host 'Attempting to connect to the database.'
sqlcmd.exe -S $databaseProperties.ServerFqdn -d $databaseProperties.DatabaseName -G -Q 'create table test2
(
id int
)'
#5. Delete the 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 'Cleaned up:' $body.displayName
} finally {
# The following lines ensure that sensitive data is not left in memory.
$headers = [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
$parameters = [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
}