Exercício - Implantar e configurar o Banco de Dados SQL do Azure

Concluído

O Banco de Dados SQL do Azure é uma ótima opção para cargas de trabalho analíticas operacionais, transacionais e híbridas.

No cenário de captura de barramento, selecionamos o Banco de Dados SQL do Azure por ser um banco de dados corporativo com recursos modernos, como JSON e suporte geoespacial.

Aqui, você implantará o Banco de Dados SQL do Azure usando scripts, conectar-se-á a ele no Azure Data Studio e configurará o banco de dados para o cenário usando T-SQL. Em seguida, você explorará o JSON e o suporte geoespacial em relação à captura do ônibus.

Implantar o Banco de Dados SQL do Azure usando o PowerShell

Para configurar o banco de dados para o cenário de captura de barramento, primeiro você precisa implantar um banco de dados para trabalhar. Para fazer isso, você usará o Azure Cloud Shell. O Cloud Shell também está disponível através do portal do Azure e permite-lhe criar e gerir recursos do Azure. Ele vem pré-instalado com várias ferramentas, incluindo a CLI do Azure, o Azure PowerShell e o sqlcmd. Neste exercício, você usará o Azure PowerShell, mas poderá realizar as mesmas tarefas com a CLI do Azure. No script, ser-lhe-á pedido que forneça uma palavra-passe para a nova base de dados e o seu endereço IP local para permitir que o seu dispositivo se ligue à base de dados.

A conclusão destes scripts deve demorar entre 3 e 5 minutos. Certifique-se de que anota a palavra-passe, o ID exclusivo e a região, uma vez que não serão apresentados novamente.

Gorjeta

Você pode usar o CTRL + Shift + V para colar comandos no Cloud Shell. CTRL + V não funcionará.

  1. Comece por obter o seu endereço IP público local. Certifique-se de que está desligado de todos os serviços de VPN e abra um terminal do PowerShell local no seu dispositivo. Execute o seguinte comando e anote o endereço IP resultante.

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

    Gorjeta

    Se você não estiver em um dispositivo Windows, precisará localizar seu endereço IP com outro método. No seu terminal, você pode executar curl ifconfig.coo .

  2. Execute os seguintes comandos no Cloud Shell: Digite uma senha complexa e, no prompt, digite seu endereço IP público local, que você obteve na etapa anterior.

    Nota

    Uma senha complexa deve consistir em:

    • Mínimo de 8 caracteres e máximo de 16 caracteres
    • Requer 3 de 4 dos seguintes itens:
      • Caracteres minúsculos
      • Caracteres maiúsculos
      • Números ( 0-9 )
      • Símbolos ( @ # $ % ^ & * - _  + = [ ] { } | \ : ' , . ? / ' ~ " ( ) ; )
    # 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. Escreva e guarde num ficheiro de texto as informações que serão necessárias ao longo do módulo ao executar o seguinte código no Cloud Shell. Você provavelmente precisará pressionar Enter depois de colar o código, porque a última linha não será executada por padrão.

    # 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
    

    Não se esqueça de anotar a palavra-passe, o ID exclusivo e a região. Irá utilizá-los ao longo do módulo.

  4. Execute o script a seguir para implantar uma instância vazia do Banco de Dados SQL do Azure e um servidor lógico. O script também adicionará seu endereço IP como uma regra de firewall para que você possa acessar o banco de dados.

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

    A conclusão do script pode demorar vários minutos. Há quatro comandos principais no bloco anterior; vamos decompô-los. O primeiro comando cria um servidor lógico do Banco de Dados SQL do Azure, que serve como a instância para se conectar e como uma maneira de agrupar metadados e configurações de política para todos os bancos de dados atribuídos a esse servidor. Os próximos dois comandos criam duas regras de firewall: uma para permitir que seu endereço IP se conecte e outra para permitir que outros serviços do Azure se conectem. Essa configuração será especialmente útil quando você configurar pipelines de CI/CD usando o Azure DevOps e/ou Ações do GitHub.

    O comando final implanta um banco de dados nesse servidor lógico. A partir dos comandos, você pode dizer que o banco de dados está na camada de serviço de uso geral com quatro vCores e na camada de computação sem servidor com um intervalo de núcleos virtuais entre 0,5 e 4. A camada de computação sem servidor destina-se ao uso intermitente e imprevisível com menor utilização média de computação ao longo do tempo. A camada de computação sem servidor fornece dimensionamento automático de computação para simplificar o gerenciamento de desempenho e é cobrada apenas pela quantidade de computação usada. A camada de computação Serverless também suporta pausa e retomada automáticas para ajudar a otimizar ainda mais o preço. Quando a base de dados é colocada em pausa, só paga pelo armazenamento. A camada de computação Serverless é uma ótima solução para o cenário de captura de barramento, pois está em fase de desenvolvimento (não é usada 24 horas por dia, 7 dias por semana) e não se sabe o quão popular ela será quando você iniciar (quanta computação ela precisará).

    Se tiver algum problema ou quiser confirmar que os recursos foram implantados, você pode revisar no portal do Azure.

Conectar-se ao Banco de Dados SQL do Azure com o Azure Data Studio

Depois que seu banco de dados é implantado, há muitas maneiras de se conectar e interagir com ele: sqlcmd, Azure Data Studio, SSMS, o editor de consultas no portal, etc. Aqui, você aprenderá como se conectar ao banco de dados usando o Azure Data Studio.

Nota

Dependendo da sua configuração local (por exemplo, se você estiver em uma VPN), o Azure Data Studio pode solicitar que você adicione seu endereço IP ao firewall do servidor. Você pode adicionar seu endereço IP ao firewall do servidor no portal do Azure seguindo as etapas neste artigo.

  1. Abra o Azure Data Studio e confirme se a pasta do repositório de código está aberta selecionando o ícone do Explorer na Barra de atividades. Se você não vir os arquivos de código, retorne ao exercício anterior para configurar seu ambiente.

  2. Selecione Conexões na barra de atividades. Todas as suas conexões de banco de dados podem ser criadas e armazenadas aqui.

  3. Ao lado de Servidores, selecione o botão Nova conexão (parece um servidor com um sinal de adição).

  4. No painel Detalhes da Conexão que é aberto, preencha as seguintes informações:
    Tipo de conexão: Microsoft SQL Server
    Servidor: bus-server[uniqueID].database.windows.net
    Tipo de autenticação: SQL Login
    Nome de usuário: cloudadmin
    Palavra-passe: sua-palavra-passe
    Lembrar senha: caixa de seleção
    Banco de dados: bus-db
    Grupo de servidores: Padrão
    Nome (opcional): leave-blank

  5. Selecione Ligar.

  6. Depois que uma conexão bem-sucedida for feita, você deverá ser capaz de navegar pelo conteúdo do banco de dados no painel Conexões.

Configurar o esquema do banco de dados com T-SQL

Depois de se conectar a qualquer banco de dados, você geralmente precisará implantar o esquema de banco de dados e adaptá-lo para atender aos requisitos do seu cenário criando tabelas. Usando uma série de scripts T-SQL em um bloco de anotações SQL no Azure Data Studio, você configurará o banco de dados para dar suporte ao seu aplicativo e carregar alguns dados iniciais relacionados ao barramento.

  1. No Azure Data Studio, selecione o ícone do Explorer na Barra de Atividades.

  2. Na pasta database\notebooks, abra 01-set-up-database.ipynb.

  3. Siga as etapas no bloco de anotações SQL para concluir o exercício e retorne aqui.

Processar dados de barramento com o Banco de Dados SQL do Azure

Agora que seu banco de dados está configurado, é hora de se aprofundar em como o Banco de Dados SQL do Azure receberá os dados JSON em tempo real e os armazenará no banco de dados. Felizmente, o Banco de Dados SQL do Azure tem suporte a JSON para que isso seja facilmente gerenciado. Em seguida, você pode usar os recursos geoespaciais no Banco de Dados SQL do Azure para localizar as distâncias entre barramentos, definir e armazenar cercas geográficas e até mesmo determinar se um barramento está dentro de uma determinada cerca geográfica. Com uma base como esta, o desenvolvimento da sua aplicação torna-se muito simplificado. Este exercício será concluído em um bloco de anotações SQL no Azure Data Studio, semelhante à atividade anterior.

  1. No Azure Data Studio, selecione o ícone do Explorer na Barra de Atividades.

  2. Na pasta database\notebooks, abra 02-json-geospatial-sql-db.ipynb.

  3. Siga as etapas no bloco de anotações SQL para concluir o exercício e retorne aqui.