Exercício - Implantar e configurar o Banco de Dados SQL do Azure
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, vais explorar o JSON e o apoio geoespacial em relação a apanhar o autocarro.
Implantar o Banco de Dados SQL do Azure usando o PowerShell
Para configurar a base de dados para o cenário de apanhar o autocarro, primeiro precisa implementar uma base de dados para utilizar. 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á solicitada uma senha para o novo banco de dados e seu endereço IP local para permitir que seu dispositivo se conecte ao banco de dados.
Esses scripts devem levar de três a cinco minutos para serem concluídos. Certifique-se de anotar sua senha, ID exclusivo e região, pois eles não serão mostrados novamente.
Dica
Você pode usar CTRL + Shift + V para colar comandos no Cloud Shell. CTRL + V não vai funcionar.
Comece por obter o seu endereço IP público local. Certifique-se de que está desligado de qualquer serviço VPN e abra um terminal PowerShell local no seu dispositivo. Execute o seguinte comando e anote o endereço IP resultante.
(Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content
Dica
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.co
.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.
Observação
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"
Produza e armazene em um arquivo de texto as informações necessárias em todo o módulo executando 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
Lembre-se de anotar sua senha, ID exclusivo e região. Você os usará durante todo o módulo.
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."
O roteiro levará vários minutos para ser concluído. 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 o banco de dados é pausado, você paga apenas pelo armazenamento. A camada de computação Serverless é uma ótima solução para o cenário de captação de autocarros, pois está em fase de desenvolvimento (não é usada 24 horas por dia, 7 dias por semana) e não se sabe quão popular será no lançamento (quanto processamento será necessário).
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.
Observação
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.
Abra o Azure Data Studio e confirme se a pasta do repositório de código está aberta selecionando o ícone Explorer na Barra de Atividades. Se você não vir os arquivos de código, retorne ao exercício anterior para configurar seu ambiente.
Selecione Conexões na Barra de Atividades. Todas as suas conexões de banco de dados podem ser criadas e armazenadas aqui.
Ao lado de Servidores, selecione o botão Nova Ligação (parece um servidor com um sinal de adição).
No painel Detalhes da Conexão que é aberto, preencha as seguintes informações:
Tipo de conexão: Microsoft SQL Server
Server: bus-server[uniqueID].database.windows.net
Tipo de autenticação: SQL Login
Nome de usuário: cloudadmin
Palavra-passe: a sua palavra-passe
Lembrar palavra-passe: caixa de seleção
Base de Dados: bus-db
Grupo de servidores: padrão
Nome (opcional): deixe em brancoSelecione Conectar.
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.
No Azure Data Studio, selecione o ícone do Explorer na Barra de Atividades.
Na pasta
database\notebooks
, abra01-set-up-database.ipynb
.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.
No Azure Data Studio, selecione o ícone do Explorer na Barra de Atividades.
Na pasta
database\notebooks
, abra02-json-geospatial-sql-db.ipynb
.Siga as etapas no bloco de anotações SQL para concluir o exercício e retorne aqui.