Cvičení – nasazení a konfigurace služby Azure SQL Database

Dokončeno

Azure SQL Database je skvělou volbou pro provozní, transakční a hybridní analytické úlohy.

Ve scénáři zachytávání sběrnice jsme vybrali Azure SQL Database, protože se jedná o podnikovou databázi s moderními funkcemi, jako je JSON a geoprostorová podpora.

Tady nasadíte Službu Azure SQL Database pomocí skriptů, připojíte se k ní v Nástroji Azure Data Studio a nastavíte databázi pro scénář pomocí T-SQL. Pak prozkoumáte podporu JSON a geoprostorové, jak souvisí s zachycením sběrnice.

Nasazení Služby Azure SQL Database pomocí PowerShellu

Abyste mohli nastavit databázi pro scénář zachytávání sběrnice, musíte nejprve nasadit databázi, se kterou chcete pracovat. K tomu použijete Azure Cloud Shell. Cloud Shell je k dispozici také prostřednictvím webu Azure Portal a umožňuje vytvářet a spravovat prostředky Azure. Dodává se předinstalovanými různými nástroji, včetně Azure CLI, Azure PowerShellu a sqlcmd. V tomto cvičení použijete Azure PowerShell, ale pomocí Azure CLI můžete provádět stejné úlohy. Skript zobrazí výzvu k zadání hesla nové databáze a vaší místní IP adresy, aby se vaše zařízení mohlo k této databázi připojovat.

Spuštění těchto skriptů by mělo trvat 3 až 5 minut. Nezapomeňte si poznamenat své heslo, jedinečné ID a oblast, protože tyto údaje se už znovu nezobrazí.

Tip

Příkazy můžete vložit do Cloud Shellu pomocí kombinace kláves CTRL + Shift + V. Ctrl + V nebude fungovat.

  1. Začněte získáním místní veřejné IP adresy. Ujistěte se, že jste odpojení od jakékoli služby VPN, a na svém zařízení otevřete místní terminál PowerShellu. Spusťte následující příkaz a poznamenejte si výslednou IP adresu.

    (Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content
    

    Tip

    Pokud nejste na zařízení s Windows, musíte ip adresu najít jinou metodou. V terminálu můžete spustit curl ifconfig.co.

  2. V Cloud Shellu spusťte následující příkazy. Zadejte složité heslo a na příkazovém řádku zadejte místní veřejnou IP adresu, kterou jste získali v předchozím kroku.

    Poznámka:

    Komplexní heslo se musí skládat z:

    • Maximálně 8 znaků a maximálně 16 znaků
    • Vyžaduje 3 z 4 z následujících možností:
      • Malá písmena
      • Velká písmena
      • Čísla ( 0-9 )
      • Symboly ( @ # $ % ^ & * - _  + = [ ] { } | \ : ' , . ? / ' ~ " ( ) ; )
    # 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"
    
  3. Spuštěním následujícího kódu v Cloud Shellu si vytvořte výstup a uložte si v textovém souboru informace, které budete potřebovat v průběhu tohoto modulu. Po vložení kódu budete pravděpodobně muset stisknout Enter , protože poslední řádek se ve výchozím nastavení nespustí.

    # 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
    

    Nezapomeňte si poznamenat heslo, jedinečné ID a oblast. Budete je používat v celém tomto modulu.

  4. Spuštěním následujícího skriptu nasaďte prázdnou instanci služby Azure SQL Database a logický server. Skript také přidá vaši IP adresu jako pravidlo brány firewall, abyste měli přístup k databázi.

    # 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."
    

    Dokončení skriptu trvá několik minut. V předchozím bloku jsou čtyři hlavní příkazy; Pojďme je rozdělit. První příkaz vytvoří logický server Azure SQL Database, který slouží jako instance pro připojení a jako způsob seskupení metadat a nastavení zásad pro všechny databáze přiřazené k danému serveru. Následující dva příkazy vytvoří dvě pravidla brány firewall: jedno, které umožní připojení IP adresy a druhý umožní připojení jiných služeb Azure. Toto nastavení bude zvlášť užitečné při nastavování kanálů CI/CD pomocí Azure DevOps a/nebo GitHub Actions.

    Poslední příkaz nasadí databázi na tento logický server. Z příkazů poznáte, že je databáze ve vrstvě služby Pro obecné účely se čtyřmi virtuálními jádry a v bezserverové výpočetní vrstvě s rozsahem virtuálních jader mezi 0,5 a 4. Bezserverová výpočetní úroveň je určená pro přerušované a nepředvídatelné využití s nižším průměrným využitím výpočetních prostředků v průběhu času. Bezserverová výpočetní úroveň poskytuje automatické škálování výpočetních prostředků pro zjednodušení správy výkonu a účtuje se pouze za využité množství výpočetních prostředků. Bezserverová výpočetní úroveň také podporuje automatické pozastavení a obnovení, které pomáhá s další optimalizací cen. Když je databáze pozastavená, platíte jenom za úložiště. Bezserverová výpočetní úroveň je skvělým řešením pro scénář zachytávání sběrnice, protože je ve fázi vývoje (nepoužívá se 24/7) a není známo, jak populární bude při spuštění (kolik výpočetních prostředků bude potřeba).

    Pokud máte nějaké problémy nebo chcete potvrdit, že se prostředky nasadily, můžete zkontrolovat na webu Azure Portal.

Připojení do Služby Azure SQL Database pomocí nástroje Azure Data Studio

Po nasazení databáze existuje mnoho způsobů, jak se s ní připojit a pracovat s ní: sqlcmd, Azure Data Studio, SSMS, editor dotazů na portálu atd. Tady se dozvíte, jak se připojit k databázi pomocí nástroje Azure Data Studio.

Poznámka:

V závislosti na vaší místní konfiguraci (například pokud používáte SÍŤ VPN) vás Azure Data Studio může vyzvat k přidání IP adresy do brány firewall serveru. Ip adresu můžete přidat do brány firewall serveru na webu Azure Portal podle kroků v tomto článku.

  1. Otevřete Azure Data Studio a potvrďte, že je otevřená složka úložiště kódu, a to výběrem ikony Průzkumníka na panelu aktivit. Pokud soubory kódu nevidíte, vraťte se do předchozího cvičení a nakonfigurujte prostředí.

  2. Na panelu aktivit vyberte Připojení iony. Všechna vaše databázová připojení se dají vytvořit a uložit tady.

  3. Vedle serverů vyberte tlačítko Nový Připojení ion (vypadá jako server se znaménkem plus).

  4. V podokně podrobností o Připojení, které se otevře, vyplňte následující informace:
    typ Připojení: Microsoft SQL Server
    Server: bus-server[uniqueID].database.windows.net
    Typ ověřování: Přihlášení SQL
    Uživatelské jméno: cloudadmin
    Heslo: vaše heslo
    Zapamatovat heslo: Zaškrtávací políčko
    Databáze: bus-db
    Skupina serverů: Výchozí
    Název (volitelné): ponechání prázdné

  5. Vyberte Připojit.

  6. Po úspěšném připojení byste měli být schopni procházet obsah databáze v podokně Připojení ions.

Nastavení schématu databáze pomocí T-SQL

Jakmile budete připojení k jakékoli databázi, budete obvykle muset nasadit schéma databáze a přizpůsobit databázi tak, aby splňovala požadavky vašeho scénáře vytvořením tabulek. Pomocí řady skriptů T-SQL v poznámkovém bloku SQL v Nástroji Azure Data Studio nakonfigurujete databázi tak, aby podporovala vaši aplikaci a načetla několik počátečních dat souvisejících se sběrnicemi.

  1. V Nástroji Azure Data Studio vyberte ikonu Průzkumníka na panelu aktivit.

  2. Pod složkou database\notebooksotevřete 01-set-up-database.ipynb.

  3. Postupujte podle kroků v poznámkovém bloku SQL a dokončete cvičení a pak se sem vraťte.

Zpracování dat sběrnice pomocí Azure SQL Database

Teď, když je vaše databáze nakonfigurovaná, je čas se podrobněji podívat, jak Azure SQL Database bude přijímat data JSON v reálném čase a ukládat je do databáze. Azure SQL Database naštěstí podporuje JSON, takže se dá snadno spravovat. Potom můžete pomocí geoprostorových funkcí ve službě Azure SQL Database najít vzdálenosti mezi autobusy, definovat a ukládat geofence a dokonce určit, jestli je sběrnice v dané geografické fence. Díky základu, jako je tento, se vývoj aplikací výrazně zjednoduší. Toto cvičení se dokončí v poznámkovém bloku SQL v Nástroji Azure Data Studio, podobně jako v předchozí aktivitě.

  1. V Nástroji Azure Data Studio vyberte ikonu Průzkumníka na panelu aktivit.

  2. Pod složkou database\notebooksotevřete 02-json-geospatial-sql-db.ipynb.

  3. Postupujte podle kroků v poznámkovém bloku SQL a dokončete cvičení a pak se sem vraťte.