Övning – Distribuera och konfigurera Azure SQL Database
Azure SQL Database är ett bra val för drifts-, transaktions- och hybridanalysarbetsbelastningar.
I bussfångstscenariot valde vi Azure SQL Database eftersom det är en företagsdatabas med moderna funktioner, till exempel JSON och geospatialt stöd.
Här distribuerar du Azure SQL Database med hjälp av skript, ansluter till den i Azure Data Studio och konfigurerar databasen för scenariot med hjälp av T-SQL. Du kommer sedan att utforska JSON och geospatialt stöd i samband med att ta bussen.
Distribuera Azure SQL Database med PowerShell
För att kunna konfigurera databasen för bussfångstscenariot måste du först distribuera en databas att arbeta med. För att göra detta använder du Azure Cloud Shell. Cloud Shell är också tillgängligt via Azure-portalen och gör att du kan skapa och hantera Azure-resurser. Den levereras förinstallerad med olika verktyg, inklusive Azure CLI, Azure PowerShell och sqlcmd. I den här övningen använder du Azure PowerShell, men du kan utföra samma uppgifter med Azure CLI. I skriptet uppmanas du att ange ett lösenord för den nya databasen och din lokala IP-adress så att enheten kan ansluta till databasen.
Dessa skript bör ta tre till fem minuter att slutföra. Observera lösenordet, det unika ID:t och regionen eftersom de inte visas igen.
Tips
Du kan använda CTRL + Skift + V för att klistra in kommandon i Cloud Shell. CTRL + V fungerar inte.
Börja med att hämta din lokala offentliga IP-adress. Se till att du är frånkopplad från alla VPN-tjänster och öppna en lokal PowerShell-terminal på enheten. Kör följande kommando och notera den resulterande IP-adressen.
(Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content
Tips
Om du inte är på en Windows-enhet måste du hitta din IP-adress med en annan metod. I terminalen kan du köra
curl ifconfig.co
.Kör följande kommandon i Cloud Shell. Ange ett komplext lösenord och ange i prompten din lokala offentliga IP-adress som du fick i föregående steg.
Notera
Ett komplext lösenord måste bestå av:
- Minst 8 tecken och högst 16 tecken
- Kräver 3 av 4 av följande:
- Gemener (små bokstäver)
- Versaler
- Tal ( 0-9 )
- Symboler ( @ # $ % ^ & * - _ + = [ ] { } | \ : ‘ , . ? / ` ~ “ ( ) ; )
# Collect password $adminSqlLogin = "cloudadmin" $password = Read-Host "Your username is 'cloudadmin'. Please enter a password for your Azure SQL Database server that meets the password requirements" # Prompt for local ip address $ipAddress = Read-Host "Disconnect your VPN, open PowerShell on your machine and run '(Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content'. Please enter the value (include periods) next to 'Address': " Write-Host "Password and IP Address stored"
Mata ut och lagra i en textfil den information du behöver i hela modulen genom att köra följande kod i Cloud Shell. Du måste förmodligen trycka på Retur när du har klistrat in koden, eftersom den sista raden inte körs som standard.
# Get resource group and location and random string $resourceGroupName = "<rgn>[sandbox resource group name]</rgn>" $resourceGroup = Get-AzResourceGroup | Where ResourceGroupName -like $resourceGroupName $uniqueID = Get-Random -Minimum 100000 -Maximum 1000000 $location = $resourceGroup.Location # The logical server name has to be unique in the system $serverName = "bus-server$($uniqueID)" # The sample database name $databaseName = "bus-db" Write-Host "Please note your unique ID for future exercises in this module:" Write-Host $uniqueID Write-Host "Your resource group name is:" Write-Host $resourceGroupName Write-Host "Your resources were deployed in the following region:" Write-Host $location Write-Host "Your server name is:" Write-Host $serverName
Kom ihåg att anteckna ditt lösenord, unika ID och region. Du använder dem i hela modulen.
Kör följande skript för att distribuera en tom Azure SQL Database-instans och logisk server. Skriptet lägger också till din IP-adress som en brandväggsregel så att du kan komma åt databasen.
# Create a new server with a system wide unique server name $server = New-AzSqlServer -ResourceGroupName $resourceGroupName ` -ServerName $serverName ` -Location $location ` -SqlAdministratorCredentials $(New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $adminSqlLogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force)) # Create a server firewall rule that allows access from the specified IP range and all Azure services $serverFirewallRule = New-AzSqlServerFirewallRule ` -ResourceGroupName $resourceGroupName ` -ServerName $serverName ` -FirewallRuleName "AllowedIPs" ` -StartIpAddress $ipAddress -EndIpAddress $ipAddress $allowAzureIpsRule = New-AzSqlServerFirewallRule ` -ResourceGroupName $resourceGroupName ` -ServerName $serverName ` -AllowAllAzureIPs # Create a database $database = New-AzSqlDatabase -ResourceGroupName $resourceGroupName ` -ServerName $serverName ` -DatabaseName $databaseName ` -Edition "GeneralPurpose" -Vcore 4 -ComputeGeneration "Gen5" ` -ComputeModel Serverless -MinimumCapacity 0.5 Write-Host "Database deployed."
Det tar flera minuter att slutföra skriptet. Det finns fyra huvudkommandon i föregående block. Låt oss dela upp dem. Det första kommandot skapar en logisk Azure SQL Database-server som fungerar som den instans som ska anslutas till och som ett sätt att gruppera metadata och principinställningar för alla databaser som har tilldelats den servern. De följande två kommandona skapar två brandväggsregler: en för att tillåta din IP-adress att ansluta och en för att tillåta att andra Azure-tjänster ansluter. Den här inställningen är särskilt användbar när du konfigurerar CI/CD-pipelines med Hjälp av Azure DevOps och/eller GitHub Actions.
Det sista kommandot distribuerar en databas till den logiska servern. Från kommandona kan du se att databasen finns på tjänstnivån Generell användning med fyra virtuella kärnor och på den serverlösa beräkningsnivån med ett intervall med virtuella kärnor mellan 0,5 och 4. Den serverlösa beräkningsnivån är avsedd för tillfällig, oförutsägbar användning med lägre genomsnittlig beräkningsanvändning över tid. Den serverlösa beräkningsnivån ger automatisk beräkningsskalning för att förenkla prestandahanteringen och debiteras endast för den mängd beräkning som används. Den serverlösa beräkningsnivån har också stöd för automatisk pausning och återupptagning för att hjälpa till med ytterligare prisoptimering. När databasen har pausats betalar du bara för lagring. Den serverlösa beräkningsnivån är en bra lösning för scenariot med bussfångst eftersom den är i utvecklingsfas (används inte dygnet runt) och det är osäkert hur populärt det blir när du lanserar det (hur mycket beräkningskapacitet det behöver).
Om du har problem eller vill bekräfta att resurserna har distribuerats kan du granska i Azure-portalen.
Ansluta till Azure SQL Database med Azure Data Studio
När databasen har distribuerats finns det många sätt att ansluta och interagera med den: sqlcmd, Azure Data Studio, SSMS, frågeredigeraren i portalen osv. Här får du lära dig hur du ansluter till databasen med Hjälp av Azure Data Studio.
Notera
Beroende på din lokala konfiguration (till exempel om du använder ett VPN) kan Azure Data Studio uppmana dig att lägga till din IP-adress i serverbrandväggen. Du kan lägga till din IP-adress i serverbrandväggen i Azure-portalen genom att följa stegen i den här artikeln.
Öppna Azure Data Studio och bekräfta att kodlagringsplatsens mapp är öppen genom att välja ikonen Explorer i aktivitetsfältet. Om du inte ser kodfilerna går du tillbaka till föregående övning för att konfigurera din miljö.
Välj Anslutningar från aktivitetsfältet. Alla dina databasanslutningar kan skapas och lagras här.
Bredvid Servrarväljer du knappen Ny anslutning (det ser ut som en server med plustecken).
Fyll i följande information i fönstret anslutningsinformation som öppnas:
Anslutningstyp: Microsoft SQL Server
Server: bus-server[uniqueID].database.windows.net
autentiseringstyp: SQL-inloggning
Användarnamn: cloudadmin
Lösenord: ditt lösenord
Kom ihåg lösenord: kryssruta
Database: bus-db
servergrupp: standard
Namn (valfritt): lämna tomtVälj Anslut.
När en lyckad anslutning har upprättats bör du kunna navigera i databasens innehåll i fönstret Anslutningar.
Konfigurera databasens schema med T-SQL
När du är ansluten till en databas behöver du vanligtvis distribuera databasschemat och skräddarsy databasen så att den uppfyller ditt scenarios krav genom att skapa tabeller. Med hjälp av en serie T-SQL-skript i en SQL-notebook-fil i Azure Data Studio konfigurerar du databasen så att den stöder ditt program och läser in inledande bussrelaterade data.
I Azure Data Studio väljer du ikonen Explorer i aktivitetsfältet.
Öppna
01-set-up-database.ipynb
under mappendatabase\notebooks
.Följ stegen i SQL Notebook för att slutföra övningen och gå sedan tillbaka hit.
Bearbeta bussdata med Azure SQL Database
Nu när databasen har konfigurerats är det dags att gå djupare in på hur Azure SQL Database tar emot JSON-data i realtid och lagrar dem i databasen. Som tur är har Azure SQL Database JSON-stöd så det är enkelt att hantera. Sedan kan du använda geospatiala funktioner i Azure SQL Database för att hitta avstånden mellan bussar, definiera och lagra geofences och även avgöra om en buss ligger inom en viss geofence. Med en grund som den här blir din programutveckling avsevärt förenklad. Den här övningen kommer att slutföras i en SQL-notebook-fil i Azure Data Studio, ungefär som föregående aktivitet.
I Azure Data Studio väljer du ikonen Explorer i aktivitetsfältet.
Öppna
02-json-geospatial-sql-db.ipynb
under mappendatabase\notebooks
.Följ stegen i SQL Notebook för att slutföra övningen och gå sedan tillbaka hit.