Implementar o SQL do Azure no Edge
Importante
O Azure SQL Edge não suporta mais a plataforma ARM64.
O Azure SQL Edge é um mecanismo de banco de dados relacional otimizado para implantações de IoT e Azure IoT Edge. Ele fornece recursos para criar uma camada de armazenamento e processamento de dados de alto desempenho para aplicativos e soluções de IoT. Este guia de início rápido mostra como começar a criar um módulo do Azure SQL Edge por meio do Azure IoT Edge usando o portal do Azure.
Antes de começar
- Se não tiver uma subscrição do Azure, crie uma conta gratuita.
- Inicie sessão no portal do Azure.
- Crie um Hub IoT do Azure.
- Crie um dispositivo Azure IoT Edge.
Nota
Para implantar uma VM Linux do Azure como um dispositivo IoT Edge, consulte este guia de início rápido.
Implantar o Módulo SQL Edge do Azure Marketplace
O Azure Marketplace é um mercado de aplicações e serviços online onde pode navegar através de uma vasta gama de aplicações e soluções empresariais certificadas e otimizadas para serem executadas no Azure, incluindo módulos IoT Edge. O Azure SQL Edge pode ser implantado em um dispositivo de borda por meio do marketplace.
Encontre o módulo SQL Edge do Azure no Azure Marketplace.
Escolha o plano de software que melhor corresponde aos seus requisitos e selecione Criar.
Na página Dispositivos de Destino para o Módulo IoT Edge, especifique os seguintes detalhes e selecione Criar.
Campo Descrição Subscrição A assinatura do Azure sob a qual o Hub IoT foi criado Hub IoT Nome do Hub IoT onde o dispositivo IoT Edge está registrado e, em seguida, selecione a opção "Implantar em um dispositivo" Nome do dispositivo IoT Edge Nome do dispositivo IoT Edge onde o SQL Edge seria implantado Na página Definir módulos no dispositivo:, selecione o módulo SQL Edge do Azure em Módulos do IoT Edge. O nome do módulo padrão é definido como AzureSQLEdge.
Na seção Configurações do Módulo do painel Atualizar Módulo IoT Edge, especifique os valores desejados para o Nome do Módulo IoT Edge, Política de Reinicialização e Status Desejado.
Importante
Não altere nem atualize as configurações de URI de imagem no módulo.
Na seção Variáveis de Ambiente do painel Atualizar Módulo de Borda da IoT, especifique os valores desejados para as variáveis de ambiente. Para obter uma lista completa das variáveis de ambiente do Azure SQL Edge, consulte Configurar usando variáveis de ambiente. As seguintes variáveis de ambiente padrão são definidas para o módulo.
Parâmetro Descrição MSSQL_SA_PASSWORD Altere o valor padrão para especificar uma senha forte para a conta de administrador do SQL Edge. MSSQL_LCID Altere o valor padrão para definir a ID de idioma desejada a ser usada para o SQL Edge. Por exemplo, 1036 é francês. MSSQL_COLLATION Altere o valor padrão para definir o agrupamento padrão para SQL Edge. Essa configuração substitui o mapeamento padrão de ID de idioma (LCID) para agrupamento. Importante
Não altere nem atualize a variável de
ACCEPT_EULA
ambiente para o módulo.Na seção Criar Opções de Contêiner do painel Atualizar Módulo IoT Edge, atualize as seguintes opções conforme requisito.
Porta anfitriã
Mapeie a porta de host especificada para a porta 1433 (porta SQL padrão) no contêiner.
Ligações e Montagens
Se você precisar implantar mais de um módulo SQL Edge, certifique-se de atualizar a opção mounts para criar um novo par de origem e destino para o volume persistente. Para obter mais informações sobre montagens e volume, consulte Usar volumes na documentação do Docker.
{ "HostConfig": { "CapAdd": [ "SYS_PTRACE" ], "Binds": [ "sqlvolume:/sqlvolume" ], "PortBindings": { "1433/tcp": [ { "HostPort": "1433" } ] }, "Mounts": [ { "Type": "volume", "Source": "sqlvolume", "Target": "/var/opt/mssql" } ] }, "Env": [ "MSSQL_AGENT_ENABLED=TRUE", "ClientTransportType=AMQP_TCP_Only", "PlanId=asde-developer-on-iot-edge" ] }
Importante
Não altere a
PlanId
variável de ambiente definida na configuração create config. Se esse valor for alterado, o contêiner do Azure SQL Edge não será iniciado.Aviso
Se você reinstalar o módulo, lembre-se de remover todas as ligações existentes primeiro, caso contrário, suas variáveis de ambiente não serão atualizadas.
No painel Atualizar Módulo IoT Edge, selecione Atualizar.
Na página Definir módulos no dispositivo, selecione Avançar: Rotas > se precisar definir rotas para sua implantação. Caso contrário, selecione Rever + Criar. Para obter mais informações sobre como configurar rotas, consulte Implantar módulos e estabelecer rotas no IoT Edge.
Na página Definir módulos no dispositivo, selecione Criar.
Conectar-se ao Azure SQL Edge
As etapas a seguir usam a ferramenta de linha de comando do Azure SQL Edge, sqlcmd, dentro do contêiner para se conectar ao Azure SQL Edge.
Nota
As ferramentas de linha de comando do SQL Server, incluindo sqlcmd, não estão disponíveis dentro da versão ARM64 dos contêineres do SQL Edge do Azure.
Use o comando para iniciar um shell bash interativo dentro do
docker exec -it
contêiner em execução. No exemplo a seguir,AzureSQLEdge
é oName
nome especificado pelo parâmetro do seu IoT Edge Module.sudo docker exec -it AzureSQLEdge "bash"
Uma vez dentro do contêiner, conecte-se localmente com a ferramenta sqlcmd . O sqlcmd não está no caminho por padrão, então você precisa especificar o caminho completo.
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
Gorjeta
Você pode omitir a senha na linha de comando para ser solicitado a inseri-la.
Se for bem-sucedido, você deve chegar a um prompt de comando sqlcmd :
1>
.
Criar e consultar dados
As seções a seguir orientam você pelo uso do sqlcmd e do Transact-SQL para criar um novo banco de dados, adicionar dados e executar uma consulta.
Criar uma nova base de dados
As etapas a seguir criam um novo banco de dados chamado TestDB
.
No prompt de comando sqlcmd, cole o seguinte comando Transact-SQL para criar um banco de dados de teste:
CREATE DATABASE TestDB; GO
Na próxima linha, escreva uma consulta para retornar o nome de todos os bancos de dados no servidor:
SELECT name from sys.databases; GO
Inserir dados
Em seguida, crie uma nova tabela chamada Inventory
, e insira duas novas linhas.
No prompt de comando sqlcmd, alterne o contexto para o novo
TestDB
banco de dados:USE TestDB;
Crie uma nova tabela com o nome
Inventory
:CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
Insira dados na nova tabela:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
Digite
GO
para executar os comandos anteriores:GO
Selecionar dados
Agora, execute uma consulta para retornar dados da Inventory
tabela.
No prompt de comando sqlcmd, insira uma consulta que retorne linhas da
Inventory
tabela em que a quantidade é maior que 152:SELECT * FROM Inventory WHERE quantity > 152;
Execute o comando:
GO
Saia do prompt de comando sqlcmd
Para encerrar sua sessão sqlcmd , digite
QUIT
:QUIT
Para sair do prompt de comando interativo no contêiner, digite
exit
. Seu contêiner continua a ser executado depois que você sai do shell bash interativo.
Conecte-se de fora do contêiner
Você pode se conectar e executar consultas SQL em sua instância do Azure SQL Edge a partir de qualquer ferramenta externa do Linux, Windows ou macOS que ofereça suporte a conexões SQL. Para obter mais informações sobre como se conectar a um contêiner do SQL Edge de fora, consulte Conectar e consultar o SQL Edge do Azure.
Neste início rápido, você implantou um Módulo SQL Edge em um dispositivo IoT Edge.